DQMJプログラム解析研究 (1) 試しにNDS FF3を解析してみる




件名 : 試しにNDS FF3を解析してみる

投稿日時 : 2006.12/20.6:43




 こんにちは、butyoです。

 私はDQM2くらいから、初歩的なゲーム解析の真似事をはじめまして、最近ではDQ8のモンスターステータスを発表したりしていました。


 解析を邪道な攻略法として嫌う方もいるかもしれません。プログラム解析やコンピュータ上での動作に関する私の考え方としては、「購入した本物のソフトをより深く楽しむ目的ならOK」だと思っています。

 もちろん、本物のソフトのデータを改造したりしたことはありませんし、するつもりもありませんが、大会に出たりせず純粋にゲームをバグらせて楽しむ目的ならば、改造ツールなどで遊ぶのもその人の自由ではないかと考えています。


 なぜそういう考えを持っているかと言うと、ドラクエの生みの親である堀井雄二氏が、「学生時代にゲーム(当時のパソゲー)のデータを改造したりして遊んでいた」と何かのインタビューで語っていたからです。


 ネ申がやっていたのだから、OKに決まってますね(笑)



 さて、そういうわけなので、若き日の堀井雄二氏に習って、私もDQMJを解析したいと思います。


 しかし、これまでゲームボーイやアドバンスのソフトに関しては色々中身を見てきて、解析も慣れてきた感がありますが(自己流のしょぼいレベルで)、まだNintendo DSソフトに関しては経験がありません。


 そこで、DQMJを解析できるかどうかの判断をするため、試しに同じNintendo DSソフトである「FF3」を試しに解析してみることにしました。

 ちなみに「FF3」の正式タイトルは Final Fight かもしれませんし Fire Fox かもしれません。もしくはまるっきりデタラメなタイトルかもしれません。限定はしませんので、ご自由にご想像ください。


 さっそく「FF3」のプログラムの中身を読んでみましょう。


 特殊なツールを用いて中身を表示させると、最初に次のような文字列が並んでいるはずです。


 「46 46 33 00 00 00 00 00 ・・・・・ 」


 ゲームのプログラムの内部は16進法で表現されていることが多いです。この文字列を一般に馴染み深い10進法に変換すると、こうなります。


 「70 70 51 0 0 0 0 0 ・・・・・ 」


 0というのはプログラム内ではデータがない「空白」みたいな意味合いで使われる場合が多々あります。この場合、連続して何個も現れているので、意味がない文字列だと判断してもよいでしょう。


 そうすると残るのは・・・

 「70 70 51 」


 この「70 70 51 」には一体どういう意味があるのでしょうか?


 実はこの3つの数字は人間には理解しにくい、コンピューターの Character コードで書かれたものです。

 Character コードというのは数字と文字とが対応する一種の暗号のようなものだと思ってもらって構いません。(ちなみにゲームボーイなどのソフトであれば、それぞれのソフトごとに独自の Character コードがあります。)



 ここでは、ある Character コードの変換表を用いることで、この3つの数字の本来の意味を明らかにすることができます。



【変換に用いた Character コードの変換表】




48  0
49  1
50  2
51  3
52  4
53  5
54  6
55  7
56  8
57  9
58  :
59  ;
60  <
61  =
62  >
63  ?
64  @
65  A
66  B
67  C
68  D
69  E
70  F
71  G





 上記のコードは「AS Code for Information Interchange」という、比較的フリークエントに用いられる Character コードです。


 これに従って、さっきの数字を変換してみましょう。



 「70 70 51 」


 70 → F

 70 → F

 51 → 3



 な、何ぃぃいいいいい!!! こ、これはッ!!!


 F F 3 ! ?


 「70 70 51 」という一見意味のない数字は、「 F F 3 」を表していたのか!?




 というわけで、早いですが、今回の試し解析は終了です。


 というのも、もう時間がないのです。


 読み込みソフトの起動時間を含めると、この解析に用いたトータルのコンピューター処理時間は500万μsにも達します。

 また、今回の記事の構想だけで、セシウム133原子の超微細準位の間の遷移に対応する放射の周期に換算して、実に275億7789万5310倍に相当する莫大な時間を費やしました。


 そのため、DQMJ発売まで残された時間が少ない今となっては、これ以上、試し解析を行っている余裕はありません。


 しかし、ここまでで、私としては「Nintendo DS用ソフトの解析も可能」だという結論に達しました。つまり、「DQMJも解析可能」だと言うことです。



 DQMJが発売してしばらく経ったら解析してみます。隠しモンスターの名前などは簡単にわかると思いますので、そのうち「速報」する予定です!!


 お楽しみに♪



 さて、少しでも詳しい人は、今回の内容がほとんど意味のないことに気付くだろう。

 それどころか簡単にわかることをわざわざ複雑怪奇に遠まわしに解読し、いかにも何か一仕事やったかのように書いているのがわかるはずだ。

 まぁ、本格的にやるのが面倒だったから、ちょこっと中身を見て、表現を膨らませたわけだ。


 何!?ズルイ?? 今そう思った???


 いいか!?よく聞けよ。 「ホームページ作成者」ってのはなぁ、見に来てくれた人に夢を売るのが仕事なんだよッ!!

 だから面白けりゃ、なんだっていいのさ! ぐひゃはや!! ふはははははh・・・!!!!!(嘘)


 しかし、「夢を売る」のはいいが、WEBサイトは全て非営利でやってるし、俺は何を得ているのだろうか。失ったものなら色々あるが…。ふと疑問になった。






速報DQMJ