2025年2月3日月曜日

MSX版ザ・キャッスルのステージデータ圧縮方法を簡単に解析してみる。

 MSX版「ザ・キャッスル」(と「キャッスルエクセレント」)、名作です。よくぞMSXでコレを作ってくれたと思っています。とても素晴らしい出来です。ハードを知っている人間からすれば、奇跡の移植度であります。

メモリ8キロのMSXでも動きます…という触れ込みで、プログラム容量は8000H(32,768バイト)でできています。驚きの少なさです。たったの32キロバイトです。

Mマガ永久保存版にプログラマーの人が「少ないワークメモリで100面を動作させる工夫」と書かれているので、どんな面データの持たせ方をしているのだろう? と興味が昔からあったのはあったのですが、今になってちょいと調べてみようと思い立つ。ぶっちゃけ、自分でキャッスルのステージを作成したいとも思っていたりしたもので。ロードランナーみたいなコンストラクション機能が欲しかった。

「ひょっとして、特殊な圧縮がかかっていたり、ハフマン符号みたいな圧縮をしているの? ならお手上げだよ、プログラムを解析するしかないよ?」と思いつつ、簡単に調べたところ、どうやら

 ランレングス

ですね。これなら、ステージを画面キャプチャして印刷して、バイナリも印刷して見比べながら検証できます。工夫については良く分かりました。今のところ、細かい部分は全然分かっていませんが。

…この記事の続き、書くかねぇ?φ(・・?

0 件のコメント:

コメントを投稿