ゲームばっかりな日記だったやつ

半分跡地みたいなもの。書くネタは無い。

触発されてランドストーカーのデバッグに挑戦

音楽集の動画(っていうかヒwiヒヒerフォロワーさんのツイート)に触発されて、自分もデバッグモードを試したくなったため、実際にやってみたというお話です。

この動画ですね。で、

ちなみにソース元はこちらのURLなど。
http://tcrf.net/Landstalker
http://www.gamefaqs.com/boards/563330-landstalker/42234626

ここの記述を参考にさせていただいて(動画と同じ方です)、デバッグモードに入ることができ申した。ばんじゃーい。
後日改めてお書きになるとのことで、ここで詳しく書いてもしょうがないので、私は適当にしか書きません(めんどいので画像もつけません)。
まあ、このソース元をたどれば分かるので書くけど、

000210:0000

このコードこそが重要なわけですね。とりあえず、これについて気づいた点をいくつか。
このコード、PAR向けのアドレス表記なのだけど、アドレスが「00」0210とあるのでROM領域を指定してます。また、4桁のコードであり、基本的には2バイトのコードであると思われます。
元は海外版のチートコードですが、メモリ領域からするとごくごく最初の部分のバイナリなので、言語による差異が発生していないのでしょう。なぜなら、ローカライズのときに言語が変わる事(台詞データ長の違いにより、アドレスが変わる等)が一番の問題と思われるので、手前にあるデータには影響してないんじゃないでしょうか、と。
ROM部分のコード。つまり、この部分を書き換えた(エミュレータ側のアドレス000210と000211に相当する部分を調べ、00に書き換えた)ROMデータを作って自分で焼いて、ちゃんとしたカートリッジに乗せたら、たぶん実機でも動くんじゃないかな。チェックサムやセーブRAM云々の問題もあるので、それだけで動作するかは保障できませんが。とりあえず、動きさえすれば実機の音で録音できます、とだけ書いておきましょう。
最初やったとき、デバッグメニュー以外の現象(マップ変更やその場セーブなど)は出せたのだけど、どうやってもメニューが出なかった。それで隣のアドレスの中身を見たら「FF」になってたので、ああこれは怪しいと思い同じく00に固定してやったら、何の問題もなくメニューも出せました。これぞチート。
ここで躓いた原因として、コード自体が2バイトな事に気づいたのが後からでして。4桁って時点で気づくべきなんだけど、いつも動画作るのに使っているツールだと、2バイト表記の末尾二文字(つまり1バイト)しか扱われないので、この事をすっかり忘れていたわけです。
まあ、そんなわけで成功。おしまい。
欠番になってるミュージック番号を再生したかったが、私の実力では無理でした。どうせデータが存在せずフリーズとかなるだろうし、あまり執着はしてないけど。