値札やポップに使われているフォント、メインがHG丸ゴシックM-PRO、そして目立たせたいところが創英角ポップ体とIMPACTという欧文フォントの数字です。
要するに、WindowsやOfficeに入っているフォント。ダイレックスって、フォントを気にしないスタイルなのね(・・;
これがサンドラッグとかコープならニィスのJTCウィン丸ゴシック・角ゴシック・明朝、サンディやドンキならWissenという値札作成ソフトの専用フォント(ゴナやナールのパチモン)だったりするのですが、ダイレックスにはそういうコダワリが無いのね(、、; 上に掲示している、棚の分類なんかも丸ゴシックPROであります。細い気はするけど、そこに何が売られているか分かればいいってなもんですか(’’;
ワシ、Officeのフォントなんてアンインストールしてますわ、丸ゴPRO使うぐらいなら素直にリョービシリウス使いますし…ってなもんですが。逆に言えば、こういうところにこだわらない分、安くできる…ってなものなのかいなと。
2025年2月17日月曜日
ダイレックスはフォントを気にしない。
2025年2月15日土曜日
MSX版ザ・キャッスルのステージデータ圧縮方法を解析・その7。
今回はアイテムの指定について。種類と位置ですね。
前にスタート地点にマルガリータ姫がお出迎え…なんてことをしましたが、あれは近くの黄色い鍵をマルガリータ姫に変えました。
【アイテムA(2バイト目が 80h~92h)】
00 壺 10 ブロック 20 金庫 30 樽
40 ゴンドラの上下スイッチ 50 ロウソク 60 食獣植物 70 炎
80 戦士(猫) 90 魔法使い A0 司教 B0 騎士
【アイテムB(2バイト目が C0h~D2h)】
00 マルガリータ姫 10 フェアリー 20 マップ 30 無敵光線
40 ボンベ 50 チェリー 60 命の水 70 金塊
80 リング 90 十字架 A0 青鍵 B0 赤鍵
C0 紫鍵 D0 緑鍵 E0 水色鍵 F0 黄鍵
こんな感じ。ちょっと変な仕様ですが、難しくはありません。
今のところ、バイナリちまちまで分かっているのはここまでです。
2025年2月13日木曜日
MSX版ザ・キャッスルのステージデータ圧縮方法を解析・その6。
横ランレングスの部分について、今のところ分かっているところまで。
もう、図の上にバイナリデータを書いたものと、実際のバイナリデータを見てもらえれば一発かと。城の一番左上(データ番号00)のステージです。
ランレングス(Run Length)というデータ圧縮方法は「どのデータを何個」という形で書いています。
で、キャッスルの横ランレングス部分のキャラクタは、手書きの図(ちゃんと作りたかったけど、面倒くさいので手書き)のように「2文字」で作られています。
で、バイトの上4ビットがキャラクタの種類、下4ビットが横に置く数(0なら1個、Fなら16個)ということになります。なもので、4Cと指定するだけで一番上のガタガタ部分の1行が書けてしまえると。ただ、並べられるのは横に13個分(26文字)なので、14~16個を指定した場合は次の行にもその余り部分が書かれる…というようになっているかと。
そうして見ていくと、ほぼそのルール通りのデータになっているかと。
城の作りで、斜めにカットされている部分は後で書きますので、ここでは無視します。
しかし、その中で( )で書いた(08)は、白ブロックが敷き詰められているので、本来は18にならなければいけないのでは?(・・? というのが今の疑問です。でも、今は後回しにして他のステージ例なども見ていこうかなと。
2025年2月10日月曜日
MSX版ザ・キャッスルのステージデータ圧縮方法を解析・その5。
書きたいことはあるけども、ちょっと今は体調不良で体がえらいのと、まだまだ解析が甘いのとで。
簡単に、こういうことはできます。マルガリータ姫は、別に妖精とかを助けなくても触れればクリアです。
77f6 f2 cf ⇒ 02 d1
で、お姫様は玄関先まで迎えに来てくれます。こんな感じで改造すれば、エクセレントでチェリーを取るなんてこともできますね。
2025年2月9日日曜日
2025年2月8日土曜日
MSX版ザ・キャッスルのステージデータ圧縮方法を解析・その4。
プログラムレベルで解析を試みるのは最終手段だ…ということで。
チマチマとバイナリデータをいらってみて今のところ分かっているのはこんな感じです。…ほお、縦にもランレングスするのですか(・・;
自分がプログラマーなら、ロードランナーのステージデータの圧縮で、ハシゴなど縦に使われるものは縦にランレングスした方がいいよなぁ…と思っていましたが、そういう方法でデータを作っているバージョンは無い…かな? アーケードの面データがそれに近く、ベーシックのライン文みたいな圧縮方法なのですが(斜めに指定したら、四角く塗りつぶされるボックス文形式ではないのかな?)。アーケードのロードランナーのステージデータの圧縮方法は、解析しているサイトがありましたので、興味があったら調べてみてください。でも、メモリが無いなどで無制限にオブジェクトを配置できないのですよね。
2025年2月5日水曜日
MSX版ザ・キャッスルのステージデータ圧縮方法を解析・その3。
まだまだ解析が甘いので、もっとちゃんとしたところまで突き止めたい。
キャッスル、ステージの真ん中のブロック配置などはランレングスです。ちょっと数字をいらってみたら、こういう作りなのね…というのが簡単に分かります。しかし、左右の部分やアイテム配置と思われる部分をちょっといらっただけでも、画面全体に悪影響を及ぼすことに。特に、中央ブロック配置後のデータをいらってみると、画面写真のように豪快にバグります。
なので、普通の圧縮方法ではないのかな…?(・・? という感じがします。いらって解析するにはお手上げです。もう、プログラムレベルで解析を試みないといけないような。
これは私に分かるかな? いずれは自分でステージを作成するアプリ「MSXザ・キャッスルすてーじめーかー桜」(仮称)を作るところまでやってみたいものですが。
2025年2月4日火曜日
MSX版ザ・キャッスルのステージデータ圧縮方法を解析・その2。
ネットでいくら調べても、誰もこういったことをやっていなかったので、しゃぁないな自分で解析してみるかと。
ザ・キャッスルを吸い出して(バッ活とか懐かしいですな)、デバッガのあるエミュレータで動作させてみると、E320Hがラファエル君のいるマップの位置であることが分かります。左上が00H、右の部屋にいくごとに01Hが足されていきます。そして、下の部屋に行くごとに10Hずつ足されていきます。ということで、スタート地点は70Hということになります。
プログラムを解析するのならば、これを取っ掛かりに「LD (E320H),A」「LD A,(E320H)」とかで検索をかけて、その周りを逆アセンブル…でしょうが、自分の場合はバイナリデータでだいたいのアタリをつけて、適当にいらってみる方式で。アーケードやファミコンのソロモンの鍵、ファミコンやMSXのフラッピーなんかは、そんなやり方でステージデータを解析できました。イシターの復活に至っては、ステージの形が2値ベタで入っていたりします。MSXフェアリーランドストーリーなんかもちょこっと圧縮はされていますが、ほぼ2値ベタです。
簡単に見たところ、前半はプログラムデータで(雰囲気で分かりますし、あれなら逆汗してみればいいかと)。そして、4000H~6300Hあたりはキャラクタデータです。キャラデータはyy-chrとかで見てみれば分かりますね。なら、ステージデータは6300H~7FFFHのところかなーと。で、このあたりを色々といらってみると…、ホラもうこういうことねと。
ちなみに、セガSG-1000版(MSX版のベタ移植)のザ・キャッスルもステージデータは同じ形式で同じように入っています。
個人的には、ファミコン版のキャッスルエクセレントを解析して、ステージデータを「ザ・キャッスル」にしたものを作りたいような気もしないではないですが、スクロールするパズルゲームはやりにくいと感じるので、あまり食指が動きません。
そして、オリジナルの広さでMSX版の仕様のキャッスルを遊びたい気もしますが、そうなるともう自力で移植するしかありません。それはファミコンやアーケードのロードランナーなんかにも言えるのですが、なぜDS版のロードランナーはチャンピオンシップの広さでエディットできないのか不満でありますな。CLR6000はスゴイと思いますが、やっぱり固定画面でやりたいのよパズルゲームは。
ログイン版X1ザ・キャッスルでは、マシン語のプログラムリストを見ると、ステージデータは1面あたり200H(512バイト)あります。もし製品版もこのデータ形式なら、100面で51200バイト必要となり、MSXのロムでは不可能です。
~~
圧縮方法でいえば、解析はしていませんが、ドラゴンバスターとかマドゥーラの翼なんかはブロック圧縮(大きなエリアを組み合わせている)でしょうね。ワンパターンな景色が続くでしょう? こういうのは分かりやすくていいのよ。
~~
つか、こんな話の続きを知りたいですか? ワシは自分とこのブログなので、好き勝手に書いてもいいのですが。どうせ誰も見ていないでしょうし、自分の備忘録として。
2025年2月3日月曜日
MSX版ザ・キャッスルのステージデータ圧縮方法を簡単に解析してみる。
MSX版「ザ・キャッスル」(と「キャッスルエクセレント」)、名作です。よくぞMSXでコレを作ってくれたと思っています。とても素晴らしい出来です。ハードを知っている人間からすれば、奇跡の移植度であります。
メモリ8キロのMSXでも動きます…という触れ込みで、プログラム容量は8000H(32,768バイト)でできています。驚きの少なさです。たったの32キロバイトです。
Mマガ永久保存版にプログラマーの人が「少ないワークメモリで100面を動作させる工夫」と書かれているので、どんな面データの持たせ方をしているのだろう? と興味が昔からあったのはあったのですが、今になってちょいと調べてみようと思い立つ。ぶっちゃけ、自分でキャッスルのステージを作成したいとも思っていたりしたもので。ロードランナーみたいなコンストラクション機能が欲しかった。
「ひょっとして、特殊な圧縮がかかっていたり、ハフマン符号みたいな圧縮をしているの? ならお手上げだよ、プログラムを解析するしかないよ?」と思いつつ、簡単に調べたところ、どうやら
ランレングス
ですね。これなら、ステージを画面キャプチャして印刷して、バイナリも印刷して見比べながら検証できます。工夫については良く分かりました。今のところ、細かい部分は全然分かっていませんが。
…この記事の続き、書くかねぇ?φ(・・?
2025年2月1日土曜日
2025年1月のゲームプレイ記は無し。
なんにもやっていないから、なんにも書いていませーん…ってなもので。
2月は何かゲームをしようという気になるかな…?
最近、疲れてダメダメになってきております。ちょっとどうにかしたいです。
今日でも、眠れずに1日ボーッとしております。