2006.02.05
No.002 サーチ環境をつくる

さて
当初はこの回でROM書き換えまで進行してしまおうかと思っていたのですが、
必要なソフトの準備を全くしていなかったので、こちらを優先したいと思います。

必要なもの一覧
とりあえず、以下のものを用意しておきましょう。
ジャンルソフト名備考
改造ツールProject-DipStar-前回用意したがな!と思いつつも念のため書く。
とりあえず改造ツールが無ければ話になりませんので…。
バイナリエディタStirling(Vector)などROMの内容を大まかに見たり、文字列テーブルを確認したり。
DSエミュで動作確認するために直接コードをいじったりもする。
逆アセンブラ拙作NDSDIS2などプログラム解析やマスターコードサーチに絶対必要。
他にもARM逆アセンブラはあるので併用するのも良い。
テキストエディタEmEditorなど逆アセンブルリストが10メガバイトを超えることもあるので、
メモ帳やワードパッドではとても作業できない。
NDSエミュレータDeSmuMEなどまだ遊ぶには実用とは言い難いものの、実験場としては十分OK。
デバッガはコード挙動を覚えるための勉強になる。
サーチツールhasteDS(DipStar付属)DipStarを落とせば勝手についてくるサーチツール。
実機ではなく上記DeSmuMEを対象にサーチしますが、
そこで見つけたコードはそのまま実機で利用できます。

解析手順
改造コードをサーチするわけでもなく、とりあえず大まかにやっておくことは…。

1.NDSDIS2を用いてNDSROMを逆アセンブル。
(コマンド例) >ndsdis2 AJSJ.NDS > AJSJ.ASM.TXT

2.逆アセリストのヘッダ領域を眺めてみたり、文字列 "9999" とか "99999999" を検索してみる。
(意外とパラメータ最大値比較処理がすんなり見つかったりする)。

3.DeSmuMEにNDSROMを読ませて動作するかをチェックしてみたり。
(もし良い感じに動くなら hasteDS でパラメータサーチしてアドレスを絞ったり)。

4.バイナリエディタでNDSROMを開いて、ゲーム中のメッセージが無いかダンプリストを見てみたり。
(ちなみにARM9領域はオフセット+0x01FFC000でリアルアドレスに変換可能)。

こんな感じでしょうか。
そうやって眺めているうちに「こういう改造コードは作れるかな?」と思いつく方は、
サーチの才能があるかもしれませんです。

さいごに
さて、序章は今回で終了です。
次回から本番スタートですよ〜。

>>次の講座へ進む