2006/08/15 Text=Imaha486

ニンテンドーDSのBIOSの吸出し


とりあえず、どのマジコンを使う場合もflubba氏のサイトからNDS Bios Dumperをダウンロードしておいてください。

EZ-FLASHなどGBAマジコンを使用する場合

BiosDumper.ds.gbaをGBAフラッシュカートにローダー無しで書き込んでください。
NDS実機+PassMeで起動すれば、一瞬でBIOS内容がSRAMに吸い出されます。
続いて、GBAフラッシュカートとPCをリンクし、SRAMもしくはSRAMファイルをPCに転送。
あとはバイナリエディタでSRAMファイルを開き、0x0000-0x3FFFをBIOSNDS7.ROM、
0x4000-0x4FFFをBIOSNDS9.ROMとして保存。

GBAフラッシュカートでの実行が一番簡単ですね。

M3-PerFectで吸い出す場合

1.M3 game managerで[Write NDS]ボタンでBiosDumper.ds.gbaをCF/SDカードに転送。
2.さらに[Write GBA]ボタンで同じようにCF/SDカードに転送する。
 (つまりBiosDumper.ds.ndsとBiosDumper.ds.gbaの2個のファイルがCF/SDカードに転送される)。
3.M3-PerFectのNDSモードからBiosDumper.ds.gba→BiosDumper.ds.ndsの順に選んで起動。
4.一瞬でBIOS吸い出しが完了するのでDSの電源を落とす。
5.再びM3-PerFectを起動してオートセーブでDATファイルにSRAM内容を保存。
6.PCのカードリーダにCF/SDカードを挿入し GAMESAVE フォルダの BiosDumper.ds.dat をバイナリエディタで開く。
7.マニュアル通りに0x0000-0x3FFFをBIOSNDS7.ROM、0x4000-0x4FFFをBIOSNDS9.ROMとして保存。

1-2の手順でわざわざ2回転送していますが、ダブル読み込みの副産物でSRAM内容が保存されるようになります。
(こうしなければ00000...で埋まったファイルが作られるだけでした)。

G6Flashで吸い出す場合

1.G6FlashをPCに接続し、G6 U-DISK Managerを起動します。
2.[NDS]タブの[Write]ボタンを押し、BiosDumper.ds.gbaを転送しますが、
 デフォルトで転送可能なファイルの種類が *.nds *.zip になっているので、*.*に変更し、
 ファイルを表示させてから選択して転送します。
3.G6FlashをNDSモードで起動し、BiosDumper.ds.gbaを起動すれば一瞬で吸い出しが完了します。
4.念のため電源を落として再び起動し、NDSモード画面まで進行してから電源を落とします。
5.PCにリンクして NDS フォルダの BiosDumper.ds.0 をバイナリエディタで開き、
 0x0000-0x3FFFをBIOSNDS7.ROM、0x4000-0x4FFFをBIOSNDS9.ROMとして保存。

これも簡単ですね。

SuperCardで吸い出す場合 ※ノーマルSDカードVerでのみ動作確認

1.BiosDumper.ds.gbaをBiosDumper.ndsにファイル名を変更してSDカードに直接書き込み。
2.64キロバイトのダミーファイルを作成して BiosDumper.sav の名称でSDカードに書き込み。
3.SuperCardをNDSモードで起動してBiosDumper.ndsを実行。
4.BIOSの吸い出しが完了したら素早く電源をOFF/ONし、再びSuperCardを立ち上げる。
5.[SAVER]ボタンでBiosDumper.savにセーブ内容を書き込む。
6.DSの電源を落とし、SDカードをPCのカードリーダに挿入。
7.BiosDumper.savの0x0000-0x3FFFをBIOSNDS7.ROM、0x4000-0x4FFFをBIOSNDS9.ROMとして保存。

高速電源OFF/ONと[SAVER]は必要かどうかはわかりませんが、とりあえず念のため。


おまけ NO$GBAでNDSゲームソフトを動かす

GBAエミュレータNO$GBAは現在、実験的にNDSエミュレーション機能がサポートされています。
さらに、実機BIOSファイル BIOSNDS7.ROM と BIOSNDS9.ROM を同一フォルダに置いたまま実行することで、
ヘッダ暗号化済みNDSROMを実行することが可能です。
(もしBIOSイメージが無い状態で実行しても警告が出て停止します)。

〜追記〜
※No$gba v2.4aの段階で暗号化やBIOS無しでの起動が可能になりました。

@必要なもの
No$gba Gameboy Advance Emulator Homepage : NO$GBA v2.3以降(エミュレータ本体)
darkfader.net : NDSTOOL (NDSROMヘッダ暗号化)

@手順
1.NDSTOOLを C:\WINDOWS\ などのパスの通ったフォルダにコピー。
 (ちゃんとディレクトリの概念が分かっている人は好きなようにどうぞ)。
2.以下のコマンドを実行してNDSROMのヘッダを暗号化(例)直感ヒトフデ
 >ndstool -se hitofude.nds
3.no$gba.exeを実行し、先ほどのNDSROMを読み込ませて動作確認。
4.プレイ終了後はヘッダを元に戻しておく。
 >ndstool -sd hitofude.nds

さて、毎回コマンドを実行するのは面倒なので以下の内容のバッチファイルを作ると良いでしょう。
(no$gbaもndstoolも全て E:\GAME\EMU\NDS\NO$GBA\ にあると仮定。異なる場合は各自で書き換えてください)。
E:\GAME\EMU\NDS\NO$GBA\ndstool -se %1
E:\GAME\EMU\NDS\NO$GBA\no$gba.exe %1
E:\GAME\EMU\NDS\NO$GBA\ndstool -sd %1
上記の内容のテキストファイルを no$gba_encrypt.bat のように拡張子.BATで保存し、
後はNDSROMをバッチファイルにドロップしてやれば「ヘッダ暗号化→プレイ→NO$GBA終了後に復号化」を
全て自動化することができます。