EP−ROMの昔話・その3

メタル・アイ

2002年11月20日

 ゲームソフトの画像データを直接覗いてみたい、と思うことはないでしょうか? 現在ではsusieプラグインなどの存在によって、プラグインを探す手間さえ厭わなければそれほど難しいことではありません。誰もプラグインを作ってくれないようなマイナーなゲームの場合はまた別でしょうが。

 が、通信が一般化していなかった時代はそういったものを入手する機会というのはかなり限られていました。今回はそんな時代のお話です。

 時は1993年くらいだったと思いますが、私は書店でいわゆる美少女ゲームの画像ローダーを集めた本を見つけました。「へー、世の中にはこんなものもあったのか」と思った私はさっそく買い求め、家に戻ってから手元にあったソフトの画像を色々表示してみました。こういうものを使ってみると新たな発見があるもので、例えば「同級生」には大量の未使用CGデータがあります。ほとんどがマップ上のちびキャラのグラフィックで、見てそれほど面白いというものではありませんが、ゲームに登場していないキャラの立ちCGが2枚残されていました。これはいったい何だろう、と思ったのですが、のちにこのキャラはボツになったキャラであることがわかりました。ちなみにこのキャラはコンシューマー版の同級生ではメインヒロイン舞の妹として登場することになります。

 そんなある日のこと。エルフから「同級生」の次のソフトとしてタイトルの「メタル・アイ」が発売されました。これははっきり言って語るに値しないようなしょ〜もないゲームだったのですが、今回話題にするのはそのことではありません。

 それまでのエルフのゲームのCGデータというのは拡張子が“.PD8”になっていました。ところがこの「メタル・アイ」では拡張子が“.GP4”に変更されているのです。もしかしたら画像データの形式が変更になったのか、とPD8形式の画像ローダーに読み込ませてみましたが表示されません。確かに画像データの形式が変更されてしまったのです。

 ここで「それならば自分で作ってみるか」と思ったのが運命の分かれ道でありました。大げさに言えば私にとってはその後の人生が変わってしまったと言ってもいいでしょう。前述の本には画像ローダーの作り方も同じエルフの「ドラゴンナイト3」を題材にして解説されており、同じエルフのゲームなんだから何とかなるだろう、と安易に考えたのも理由の1つでした。

 ここで画像ローダーってどうやって作るのか、ということを簡単に解説しておきますと、ゲームの画像データというのは基本的に圧縮されていますから、その圧縮を解くプログラムが必ずどこかにあるはずです。(これを以下「展開ルーチン」と呼ぶことにします)

 そこでこれをデバッガで調べるなり逆アセンブルリストを調べるなりしてどこにあるか見つけます。見つかったらそれを切り出してきて、ファイルの入出力のルーチンなどを付け加えてやって単体のプログラムとして動くようにしてやれば完成です。

 本にはこの手順が簡単に書いてありました。しかしいざ実際にやってみると想像していた以上に大変な作業でありました。

 MS-DOSの拡張機能セットに入っているデバッガのSymdebを使い、展開ルーチンを見つけるべくひたすらプログラムをトレースします。まだ解析のノウハウがよくわかっていないこともあってひたすら根気のいる作業でした。大変な苦労の末、ようやく展開ルーチンのスタートアドレスが判明しましたがここで新たな問題が。どこからどこまでを切り出したらよいのでしょうか?

 ここで役に立ったのが逆アセンブラのSourcerです。これを使うと簡単に解析ができるというふれこみで購入したのですが、使い方が複雑すぎて使いこなせずにお蔵入りしていたものでした。(その2で書いた「やんやんのクイズいっちょまえ」の解析の時には逆アセンブルにはSymdebを使っていました)

 1本のプログラムというのは基本的に小さなルーチンの集合体なわけですが、これを使うとその小さなルーチンを綺麗に分離して逆アセンブルリストを出力してくれるので慣れれば大変便利なのです。これで展開ルーチンのスタートアドレスを見つけて、関係している範囲を見つけることができました。

 さてこれでファイルの入出力ルーチンを付け加えてやれば一丁上がり、と思ったのですが、そうは問屋が降ろしてくれませんでした。できあがったプログラムが非常に不安定なのです。うまくロードできる時もあればハングしてしまうこともあったりで、これでは実用になりません。

 なぜなのだろう、としばらく考え込むことになりましたが、もう1度逆アセンブルリストを読み直してみると、初期化していないメモリのデータをいきなり読み込んでいる箇所を発見しました。おそらく初期化は他の箇所で行われていたのでしょう。ここを毎回初期化してやるように書き直したら無事に動くようになりました。

 さてこの当時のこと、WESTSIDE社のバックアップツール(要するにプロテクトを外すツール)のWizard V3には、ファイラーというパラメータ集が毎月(正確には毎週)発売されていました。これはプロテクトを外すためにはプログラムを書き換える必要があるわけですが、どこをどのように書き換えたらいいのか、というデータはソフトごとに違いますから、新しいソフトが出るたびにこのデータを追加していく必要があります。このデータがファイラーと呼ばれるものでした。

 ところでこのデータ(正確に言うとWizard V3 Reportという名前)にはユーザーの投稿コーナーがあり、私も投稿したりしていたのですが、ここにこの画像ローダーを投稿してみました。これがきっかけとなって、これ以降画像ローダー作成に手を染めることになるのでした。

 ところで、このようなソフトを配布しようという場合、展開ルーチンを組み込んだ状態で配布したら完全に著作権法違反になってしまいます。そのため、ユーザーのソフトから展開ルーチンを切り出して、画像ローダーのプログラムを作成するような形式にしてやる必要があります。前述の本もそういう形式になっていました。しかし現在の著作権法ですと、こういう解析行為そのものが違法になってしまうかもしれませんねぇ。

 元々のソフトハウスとは関係なくパッチを作っていらっしゃる方もいますが、こういうのは著作権法的にはどうなんでしょうか?

 ともあれ、ゲームとしては評価に値しない「メタル・アイ」でありますが、私にとっては大げさに言えば人生の転機ともなったゲームなのでありました。

written by EP−ROM