改造コードサーチの基礎


DS改造コードを探す際は、主に以下のツールを利用する。

DS実機 + Datelトレーナーツールキット

Datelトレーナーツールキットを利用し、DSとPCをリンクすることで、
専用のツールを用いて改造コードをサーチ可能。
サーチ速度は遅いが、環境に左右されずに確実にサーチ作業を行うことができ、
プレイ中にリアルタイムで改造コードをチェックすることもできる。

DSエミュレータ + メモリエディタ

当初はデモプログラム程度しか動かなかったDSエミュレータも、
現在では市販ソフトが動作するレベルに達しており、それに伴って、
DSエミュレータを利用したコードサーチが主流となっている。

メモリエディタは汎用的なものを使っても一応はサーチできるが、
DSエミュレータ対応(実機と同じアドレス表記)のものもあるので、
そちらを用いると良い。 ※詳細は後述

逆アセンブラ

DISARM・ndsdis2などの逆アセンブラを用いてプログラムコードを直接解析する。
使いこなせば、通常の改造コードではありえない効果を得ることができるが、
サーチ前に最低限のARMプログラミングの知識はほしいところ。
と言っても、これを書いてる当人は中級者程度の技量しかないので、
ちょっと頑張れば誰でも挑める程度のものだったりする。
詳細は逆アセンブラを用いたコードサーチで解説しているのでご一読を。



DS改造コードサーチには以下のメモリエディタを使用する。

メモリエディタ "hasteDS" (Irregular Child)

DSエミュレータ専用に特化したサーチツール。
no$gba、iDeaS、DeSmuMe、NeeDS、NeonDSに対応しており、
キャラクターステータスMAX・アイテム全取得・所持金MAXといった
一般的な改造コードであれば、このツールだけで十分サーチが可能。
ただし、このプログラムそのものは「dipstar補助ソフト」として作られているため、
改造コード書式がDSアクションリプレイと異なるので注意するべし。
  • DipStar
0XXXXXXX 000000YY ... アドレスXXXXXXXに1バイトYYを書込
1XXXXXXX 0000YYYY ... アドレスXXXXXXXに2バイトYYYYを書込
2XXXXXXX YYYYYYYY ... アドレスXXXXXXXに4バイトYYYYYYYYを書込
  • ACTION REPLAY DS
2XXXXXXX 000000YY ... アドレスXXXXXXXに1バイトYYを書込
1XXXXXXX 0000YYYY ... アドレスXXXXXXXに2バイトYYYYを書込
0XXXXXXX YYYYYYYY ... アドレスXXXXXXXに4バイトYYYYYYYYを書込
※DS改造コードWikiより抜粋

メモリエディタ "emuhaste" (Irregular Child)

hasteDSの後継で、DSエミュレータだけでなく、PS2やDreamCastのコードサーチも可能。
DSエミュレータはNo$gba、iDeaS、DeSmuMEの3種類のみの対応となっているが、
ユーザ自身で「コンフィグファイル」を作成し、追加してやることで対応可能。
(ユーザ自身で対応エミュレータを増やせることがemuhaste最大の利点)。

また「0-2コード効果反転」を有効にすることでコード書式がDSアクションリプレイ互換になり、
可変式アドレスを採用しているゲームに必要な「オフセット変更(Bコード)」を実装しているので、
汎用と謳いつつもDSコードサーチに適した仕様となっている。
レイアウトが若干hasteDSと異なるが、サーチ方法はほとんど変わっていない。

emuhasteサーチ手順と動画(DivX)

(その1)パラメータサーチ emuhaste01.avi
「直感ヒトフデ」でスコア99999999化する改造コードをサーチする手順。
数値入力のエディトボックスに L0 とか L720 と打っているが、このLは32bit(0~4294967295)の意味。
マリオのコインみたいに小さな値であれば S = 8bit(0~255) 、
キャラのステータスのようにほどほどの値であれば M = 16bit(0~65535) を使うと良い。

(その2)増減サーチ emuhaste02.avi
「Newスーパーマリオブラザーズ」で本来選べないカーソル位置をムリヤリ選択する動画。
カーソル位置だけでなくエネルギーゲージのように、目に数値として見えない値は
こうやって探す必要があり、動画のようにサーチ候補がいくつも該当することがあるが、
その場合は、それっぽいものを勘で適当に試してみるしかない。
なお、上のパラメータサーチ項で説明した S / M / L は
emuhaste左下にあるBYTE WORD DWORDラジオボタンがその効果をもつ。
(大抵のカーソル位置は1バイトでも表現できるので BYTE を用いた)。
最終更新:2009年10月11日 10:59