2006.01.25
No.001 基本概念と環境づくり

NDSゲーム改造の基本概念
現時点でのニンテンドーDSのゲーム改造には2パターンの方法が考えられます。

・ROMイメージをバイナリエディタで書き換える
M3-PerFectやSuperCardなどのマジコンがニンテンドーDSソフトのバックアップROMの起動に対応したので、
バックアップROMをバイナリエディタで直接編集し、これを書き込むことによって実機で改造結果を得ることが可能です。
セーブ先を製品カードかフラッシュメモリカードかを選ぶことができるマジコン(SuperCardなど)を用いれば、
「DSに製品カードとマジコンをセット→改造ROMから起動→セーブ・ロードは製品カードに対して行う」
といったこともできます。
難点としては「サーチするにも改造するにも面倒すぎる」という点が挙げられます。
たった1個の改造コードを探すために、
ROM書き換え→フラッシュメモリカードに書き込み→マジコンにセット→実機で動作テスト→成功するまで繰り返し…
この手順が必要になります。

・リアルタイムでメモリ内容を書き換える
いわゆる「プロアクションリプレイ(PAR)」と同じ方式ですね。
DSゲームが起動する前に自作プログラムを割り込ませ、プログラムコードを書き換えたり、
メモリに改造プログラムを常駐させてリアルタイムに書き換えたりする手法です。
現時点(2006/01/25)ではDS用PARは未発表なため、拙作の改造ツールProject-DipStar-を用います。
これを用いれば、先ほどの長い手順が、
実機で改造コードの入力→DSゲームの起動→動作テスト→成功するまで繰り返し
だけで済むようになります。

・・・

というわけで、説明するまでも無いですが、当コンテンツでは後者の「メモリ書き換え」を重点的に扱います。
(アドレス→オフセット変換も不要なので、実はバイナリエディタでいじるより難易度も低めなのですよ〜)。

環境づくり
さて、そのメモリ書き換えに用いるProject-DipStar-ですが、最低限以下の機材が必要になります。

※Project-DipStar-マニュアルより抜粋 最新情報は=こちらをご覧ください
機器名動作確認済み製品(参考用)
・NintendoDS初期型シルバー(ロットNJF/ファーム改造無し)
新型レッド(ロットNJH/FlashMeV5適用済)
・PassMe(動作可能)PASSKEY / NDS MAGIC KEY MK2
(動作不可)SPRITEKEY / EZ-PASS / SuperKey / PassMe2
・GBAフラッシュカートSRAMを自由に読み書きできるもの。
EZ-FLASH(128M) EasyUSB (256M/Line型) など

ニンテンドーDSは初期型なら何も考えなくても良いのですが、新型では対策が強化されているため、
「PassMe2を使って起動後、FlashMeを実行してファームウェアを書き換えて制限を外す」必要があります。
ぐぐる先生でFlashMeと検索するだけでいくらでも詳細は出ますので、そちらをご覧くださいまし。
ちなみにFlashMeを適用してもDipStarを起動する際にPassMeが絶対に必要なので注意してください。
(恐らく、今から新規に環境を作る方は、PassMeとPassMe2の両方を購入しないといけませんねぇ)。
PassKey2(M3/G6系PassMe2)はスイッチ切替でPassMe1/2を変更できますので1つでOK♪

さて、GBAフラッシュカートですが、素直にEZ-FLASHあたりを買っておけば良いです。
DipStar開発時にテストで使用したマジコンなので、確実です。

必要機材の購入が可能なリンクは以下を参照です(DSくらいは最寄のゲームショップでどうぞ…)。

・PCショップ クレバリー パソコンパーツ店ですが、M3-PerFect国内正式契約店ですので、PassKey/PassKey2の購入が可能です。
これらはPassMe/PassMe2の互換カードですし「無難」を好むならば、こちらで購入するのが無難でしょう。
・ゲームバンク 怪しいグッズ専門店。当然のごとくNDSツール関連も扱っています。
ここで販売している「NDS MagicKey2(PassMe互換)」はDipStarで動作確認済みで、
なおかつ最近はこれを用いたDSゲーム吸出しも可能になったのでなかなか魅力的。
PassKey2(PassMe2互換)もありますので、ここで揃えるのも良いかもしれません。

(追記)DipStarをフラッシュカートに書き込むには?
フラッシュカートごとに異なるので詳細説明は省きますが、以下の条件さえ守れば起動できます。
・dipstar.ds.gbaにセーブパッチを当てたりしない。純粋にそのまま書き込む。
・ローダー(複数ROM選択)は使わない。EZ-FLASH系はUse Loaderのチェックを外す。
・SRAM領域にちゃんと dipstar.ds.sav を書き込んでやる。

これで、フラッシュカートのみで立ち上げてメニュー画面が出れば成功です。
適当にコードを入力してみて、ちゃんとコードをセーブできれば完璧。
また、PassMeを挿入した状態で立ち上げて、真っ白な画面が約8秒出た後にゲームが起動すれば、
「この環境はProject-DipStar-をちゃんと使える」と確定します。

さいごに
今回は第一歩、とったところでおしまいです。
次回は、Project-DipStar-を立ち上げて実際にゲームを書き換えてみます。
はーい、予定変更です(ぉ
そういえばソフト周りを全く準備してなかったですからねぇ…

>>次の講座へ進む