すべてのゲームを改造しよう! MSX [いつでもメモリーエディター]


お知らせ

シリアル通信を使ったMSXturboR専用「いつでもメモリーエディターSR」はこちら

http://tinyyarou.sakura.ne.jp/kaizoumsx_itsmemo_sr.html

きっかけ

ROM版のゲームであっても、実行中に変化するデータは、すべて本体のRAM上にあります。

そこには、自機の数、ステージ番号、ヒットポイント、所持アイテムなど、ゲームによって様々な情報が保存されていますし、それらをちょっとだけいじることで、普段はできないような遊びもできてしまいます。

現役稼働中のオンラインゲームでこのような行為は御法度ですが、MSXはもう30年前のマシンですし、完全オフラインなので誰にも迷惑をかけるわけでもありませんし、もう皆さん散々遊び尽くしたと思いますし、たまにはこういう遊び方もいいんじゃないかなーと思って、やってみました。

もちろん、エミュレーターなどを使えば簡単にできるのですが、実機でやれるのは、ちょっと楽しいです(^_^)

作り方

以下のような方針で作ってみました。

ダウンロード

いつでもメモリーエディター(ITSUDEMO MEMORY EDITOR)

itsmemo.zip【2017/1/30 update】

使用準備

ファイルの説明

zipファイルの中には、以下の4つ(+おまけ2つ)のファイルがあります。

ITSMEMTR.ROM … MSXturboR専用・ROMイメージ

ITSMEM64.ROM … MSX(RAM64KB)/MSX2/MSX2+用・ROMイメージ

ITSMEMTR.BIN … MSXturboR専用・bloadファイル

ITSMEM64.BIN … MSX(RAM64KB)/MSX2/MSX2+用・bloadファイル

おまけ【2017/1/30追加】

ITSMEM6X.ROM … MSX2/MSX2+用・SUB-ROMコール対応ROMイメージ

ITSMEM6X.BIN … MSX2/MSX2+用・SUB-ROMコール対応bloadファイル

ROM版

DISK版

操作方法

エディタ起動

ゲーム中に以下のコマンドで「いつでもメモリーエディター」が起動します。

※通常起動で画面が壊れてしまうようなゲームタイトルの場合、シャドウモードを試してみてください。画面は見えませんが、裏ではエディターが起動しているので、コマンド等は有効になります

コマンド

エディターで使えるコマンドは6種類です。

アドレスやデータは、すべて16進数で入力してください。アドレスは4桁、データは2桁固定です。

入力を途中でキャンセルする場合は、ESC または BS を押してください。

バージョンごとの違い

ITSMEM64(MSX/MSX2/MSX2+版)

ITSMEMTR(turboR専用版)

最後に

アイデアの段階では、どこまでできるか全く分からなかったのですが、予想よりもいい感じになりました。

同じ方法で、完全に別のアプリ(きちんとしたデバッガーとか)を起動することもできますが、実際は割り込みのタイミングでしか止められませんし、本格的なデバッグをするのは難しいと思います。

ちなみに、エディターからゲームに復帰する時、VDPを元の状態に戻しているのですが、VDPの値はリードすることができないので、RAMに保存してある値を見ています。そのため、RAMに値をバックアップせずにVDPを変更しているタイトルは、エディターからゲームに戻ると画面が乱れてしまいます(ハイドライド3の周辺色とか)。そういうタイトルのために「シャドウモード」を入れました。画面を見なくてもなんとなくわかるように、音を変えたりしています。ただ、本当に苦肉の策です(^_^;)

また、目指したのは「コナミの10倍カートリッジ」なので、データをサーチしたりレジスタを見たりといったコア向けな機能は実装していません。その辺りをガンガンいじりたい人は、エミュレーターでということで…

あと、MSXでの開発の約束事は完全に無視しているので、環境によって動いたり動かなかったりするのはご了承ください!

ご意見・ご質問は twitter で @tiny_yarou まで、よろしくお願いします。