2.1. ゲーム機エミュレータ

2.1.1. Snes9X - Geiger's Snes9x Debugger
2.1.2. ePSXe
2.1.3. cep
2.1.4. YAME

本節では Windows アプリとして動作するゲーム機エミュレータのうち、 とりあえず記者が利用しているものをごく簡単に紹介していく。 なにしろスーファミとプレステしか知らない人間が書き手なので、 読者の方がずっと詳しいということがあり得る。 その場合は、失望感を抱いたまま次のページに行っていただく。

2.1.1. Snes9X - Geiger's Snes9x Debugger

図 2.1 GSD Breakpoints ダイアログ

GSD Breakpoints ダイアログ

スーファミのエミュレータ。すなわち、スーファミのロムイメージファイルを読み込んで、 ゲームを Windows 環境上に再現するアプリケーションの一つである。以下 GSD と呼ぶ。 これは伝統的な Snes9x というエミュレータを デバッグ機能を強化するべく改良したものである。 入手先は http://geigercount.net/crypt/ のようだ。 エミュレータの起動には、MFC の DLL が必要となる。 フリー DLL のダウンロードサイトを適当に探せば、入手は容易いだろう。 ちなみに記者は .NET 2003 をインストール済みの環境で作業をしているため、 DLL のインストールを必要としなかった。

元祖 Snes9x の機能に加え、次のような機能を提供する。 このほかにも、記者が説明できないような専門的な機能 [2] を豊富に有する。

最重要コマンドを以下に示す。

デバッガ機能

基本的なステップ実行機能や、現在のプログラムカウンタの命令のスキップ。

逆アセンブル機能

アドレス範囲を指定して逆アセンブルコードを見ることができる。

トレース機能

実行パスの逆アセンブルコードをテキストファイルとして出力する。

RAM ダンプ

RAM のメモリイメージをバイナリファイルとして出力する。

メモリビュー

プログラムのメモリ空間の内容を、バイナリエディタ風の表示で確認できる。

ドラクエ命の活動では、「ステップ実行」「トレース」「メモリビュー」機能をフル活用する。 これにより、各種データアドレスやアルゴリズムの解読を達成することが可能となる。 改造コードの知識があれば、メモリビューの $7E0000-$7FFFFF の見方はすぐに理解できる。 しかし、逆アセンブルコードの解読には、65816 マシン語の知識が必要となる。

記者がこれを知ったのは、某ドラクエ解析系秘密サイトである。 そこには解析目的の必須・推奨ツールおよびドキュメントが紹介されており、 情報源として極めて価値が高い。 そこが公開サイトになれば、本節は不要となる。

2.1.2. ePSXe

図 2.2 ePSXe

ePSXe

プレステのエミュレータである。最近使っていないので迂闊に説明できない。 入手先は http://www.epsxe.com/ と思われる。 なお、ゲームをプレイするには、ゲームの他にプレステの BIOS イメージが必要となる。 入手困難と思われるが、何とか入手していただきたい。 さらに(現在ではどうか知らないが)PS 版ドラクエ 7 や PS 版ドラクエ 4 をまともに動作させるためには、 また特別なプラグイン DLL を必要とする筈だ。

ヘルプドキュメントを一通り読んでから動作させることを強くお勧めする。 かなり力を入れて制作されたエミュレータであることが窺える。

2.1.3. cep

図 2.3 Cep

Cep

Windows アプリ、特にプレステエミュレータ用のチートツールである。 要するにプロセスの使用メモリにアクセスするアプリである。 README によれば、入手先は http://members.tripod.co.jp/DrHell/ だそうだ。

記者は PS 版ドラクエ 7 のデバッグモードを有効にする目的で本ツールを用いている (6.1 デバッグモード参照)。

2.1.4. YAME

図 2.4 YAME030 設定ダイアログ

YAME030 設定ダイアログ

YAME はゲームボーイ・ファミコンおよび PC エンジンのエミュレータである。 本書では GBC 版ドラクエ 3 のモンスターメダルデータの格納位置を、 セーブデータファイルから特定するのに用いる(5.33.1 セーブデータ改造によるメダル採取参照)。

この節を執筆するために、ファイルシステムの奥深くにあるフォルダから YAME を引っ張り出してみたのだが、 どういうわけか、存在するはずのドキュメントが行方不明になってしまっていた。 従って、ここに入手先を記すことができない。 申し訳ない。



[2] http://www.geocities.jp/to_546/intro/intro.html に各コマンドのリストが掲載されている。