ニンテンドーDSのカセットからROMデータを抜き出す方法について紹介していきます。
エミュレータで遊ぶ場合の大原則は「ソフトの実物を所持していること」です。つまり、自分で入手したカセットからROMデータを抽出したもので遊ぶ分には問題ありませんが、ROMデータをどこかからダウンロードしたり他者から貰い受けたりして遊ぶのは違法行為となります。ご注意ください。
ニンテンドー3DS本体の改造
ROMデータの抽出にはニンテンドー3DSの本体とSDカード、WindowsOSが搭載されたPCを使用します。ニンテンドー3DS本体の改造が必要となるため、任天堂のサポートを受ける事は出来なくなる点に留意してください。
・以降の手順は完全に自己責任のもと実施してください
・Newがつかない古いニンテンドー3DS、3DSLL、および2DSを対象としています。以後の手順では3DSと表記します
・手順の途中でバッテリー切れを起こすと故障する可能性があるため電源アダプタを使用してください
改造のざっくりとした手順としては以下のようになります。
- 3DSの準備
- PCにPythonをインストール
- SDカードの用意
- 3DSへのCFWのインストール
3DSの準備
3DSを操作し、以下の項目を実施してください。
インターネット接続を有効化
本体設定>インターネット設定>インターネット接続設定
Wifiの設定を行い、インターネット接続が可能な状態にします。
本体の最新化
本体設定>その他の設定>本体の更新
インターネットに接続された状態で本体の更新を行い、バージョンを 11.17.0-50J にします。
バージョンは「本体設定」の上画面に表示されています。
ソフトの自動受信設定のオフ
本体設定>インターネット設定>いつの間に通信>ソフトの自動受信
受信しないに設定しておきます。
本体情報の送信設定のオフ
本体設定>インターネット設定>いつの間に通信>本体情報の送信
送信しないに設定しておきます。
PCにPythonをインストール
以降の手順の実行にはPythonと呼ばれるプログラミング言語の実行環境が必要となるため、PCにPythonのインストールを行います。
その手順についてはここでの説明は割愛します。こちらのページを参考に実施してください。
SDカードの用意
PCから3DSへのファイルの移動や、3DSで抽出したROMデータをPCに移動させる際などにSDカードを頻繁に使うことになります。
SDカード、および必要に応じてSDカードリーダーを用意しておくとよいでしょう。SDカードの容量は個々人の必要に応じた大きさを選択すればよいと思います。自分は32GBのものを購入しました。
まずはSDカードのフォーマットを行います。
SDカードリーダーをPCに接続し、SDカードを読み込むと上記のようにエクスプローラが開きます。SDカードを右クリックしてフォーマットを押下します。
上記1枚目のように設定します。ファイルシステムは「FAT32」、アロケーションユニットサイズは「標準のアロケーションサイズ」とします。ボリュームラベルは任意で好きな名前をつければOKです。自分は3DS用のSDカードという事がわかるような名前にしています。設定が出来たら開始ボタンを押下してフォーマットを実行します。警告ウィンドウが出てきますがOKボタンで進めていきます。
フォーマットが完了したら右クリックメニューから取り出しを選択後、SDカードリーダーから抜いて3DSに挿し込みます。3DSがSDカードを認識してからしばらく待って、3DSの電源を落としてSDカードを取り出します。
SDカードをPCで読み込みます。空だったフォルダ内にNintendo 3DSフォルダが自動的に作成されている事が確認できればOKです。
3DSへのCFWのインストール
CFWとは Custom FirmWareの略称で、ゲーム機の公式なソフトウェアを改造したものを指します。これを3DSに導入することで、改造前の3DSでは出来ないような操作が可能となります。
ゲーム機の公式のシステムソフトウェア(公式ファームウェア、あるいは単にFW(Firmware)やOFW(Official Firmware)などと呼ばれる)が改造されたものを指す
カスタムファームウェア(Wikipedia)
CFWのインストールに必要なファイルを取得します。こちらのページにアクセスし、上記画像の赤枠部分を押下して MSET9.zip をダウンロードします。本手順を実施するタイミングによって v2.1 の数字の部分は異なる場合があります。
ダウンロードした MSET9.zip を右クリックメニューからすべて展開を押下して解凍します。
解凍した MSET9.zip の中身を全てSDカードのルートフォルダにコピーします。
SDカードのルートフォルダにある MSET9-Windows.bat をダブルクリックして実行します。
このようなウィンドウが開きます。対象の端末の種類やバージョンを指定するように指示が出ています。今回の手順ではNewではない3DS/3DSLL/2DSを使用し、かつバージョンが最新化により 11.17.0-50J となっているはずなので1を入力し、エンターキーを押下します。
上記1枚目の状態になったら再度1を入力してエンターキーを押下します。すると上記2枚目の状態になるので、再度1を入力してエンターキーを押下します。
無事に処理が終了すると上記画像のように「Press Enter to exit...」と表示されます。この状態でエンターキーを押すとウィンドウが閉じられます。
SDカードを取り出して3DSに挿入し、電源を入れます。
Miiスタジオを起動し、何もせずに終了します。
本体設定>データ管理>NINTENDO3DSデータ管理>ソフト管理 と進むとSDカードのソフト管理情報が壊れている旨のメッセージが表示されます。ここで初期化するを選択します。処理が終わると「初期化しました」というメッセージが表示されます(撮影タイミングが悪くて見えづらくなってしまった)。
3DSの電源を落としてSDカードを取り出し、PCで読み込みます。
SDカードのルートフォルダにある MSET9-Windows.bat をダブルクリックして実行し、1を入力してエンターキーを押下します。
State が Ready となっていることが確認できたら、0を入力してエンターキーを押下します(ウィンドウが閉じられます)。
SDカードを取り出して3DSに挿入し、電源を入れます。
起動した時点で上記のように本体設定にカーソルがあたっている事を確認し、そのまま本体設定を起動します。
本体設定>データ管理>NINTENDO3DSデータ管理>追加データ管理 と進みます。上記画像の4枚目の状態で、3DSの画面やボタンに触らないようにしながらSDカードを取り出し、PCで読み込みます。
SDカードのルートフォルダにある MSET9-Windows.bat をダブルクリックして実行し、1を入力してエンターキーを押下します。
上記の画面になったら3を入力してエンターキーを押下します。
無事に処理が終了すると上記画像のように「Press Enter to exit...」と表示されます。この状態でエンターキーを押すとウィンドウが閉じられます。
SDカードを取り出し、3DSの画面やボタンに触らないようにしながらSDカードを3DSに挿入します。
上記画像のような表示になります。上の画面に十字キーやボタンを使ったコマンドが表示されているので、その通りに操作します。この画像では 左キー→下キー→右キー→上キー→Aボタン というコマンドになっています。
処理が進み、上の画面に「SigHaxed FIRM install success!」と表示されたらAボタンを押します。3DSの再起動が行われます。
上記画像のような表示になったらSTARTボタンを押します。3DSの再起動が行われます。再起動後、3DSの電源を落としてSDカードを取り出し、PCで読み込みます。
SDカードのルートフォルダにある MSET9-Windows.bat をダブルクリックして実行し、1を入力してエンターキーを押下します。
4を入力してエンターキーを押下します。
「Removed trigger file」と表示されています。続けて5を入力してエンターキーを押下します。
無事に処理が終了すると上記画像のように「Press Enter to exit...」と表示されます。この状態でエンターキーを押すとウィンドウが閉じられます。
こちらのページにアクセスし、上記画像の赤枠で示している2つのファイルを任意の場所にダウンロードします。
・finalize.romfs
・x_finalize_helper.firm
finalize.romfs をSDカードのルートフォルダにコピーします。
x_finalize_helper.firm をSDカードのルートフォルダにある /luma/payloads 内にコピーします。
SDカードを取り出して3DSに挿入し、Lボタン + 下キー + SELECTボタン を実行します。
上記のような画面になります。十字キーを使って「Miscellaneous options」を選択し、Aボタンを押します。
さらに十字キーを使って「Dump DSP firmware」を選択し、Aボタンを押します。
上記の画面になれば処理が完了しています。Bボタンを押してメニュー画面に戻ります。
十字キーを使って「Nullify user time offset」を選択し、Aボタンを押します。
上記の画面になれば処理が完了しています。Bボタンを2回押してメニュー画面に戻り、3DSの電源を落とします。
Xボタンを押しながら3DSの電源を入れると、上記画像の1枚目の状態になります。異常が発生した場合に備えてバックアップを取るため、Aボタンを押して yes を選択します。上記画像の2枚目の状態になったら再度Aボタンを押して処理を進めます。
本体の日時設定がズレている場合、設定を行うように求められます。Aボタンで yes を選択し、十字キーを使って年月日時分秒を設定してAボタンで決定します。上記画像の3枚目の状態になったらAボタンを押してコンティニューします。
上記の画面が表示されたら、HOMEボタンを押してメニューを呼び出します。
十字キーを使って「Scripts...」を選択してAボタンで進み、さらにAボタンを押して処理を開始します。
処理の進捗状況が表示されます。途中で確認を求められた場合はAボタンで yes を選択していきます。コマンドの入力が求められる場面もあります。
最後に大きく「Setup Complete!」と表示されたらAボタンを押します(3DSの電源が落ちます)。
3DSからSDカードを取り出し、PCで読み込みます。
SDカードのルートフォルダにある /gm9/backups/ 内にある3つのファイルをPCなどの任意の場所にコピーしてバックアップを取ります。
SDカードを取り出して3DSに挿入し、CFWのインストールは完了となります。
ROMデータを吸い出し保存する
ここからは実際にニンテンドーDSのカセットからROMデータを吸い出す手順の説明になります。先述の通り吸い出すにはCFWを導入した3DSおよびSDカードが必要となります。
3DSにSDカードと吸い出し対象のカセットを挿入し、STARTボタンを押しながら3DSの電源を入れます。
十字キーを使って「GAMECART ()」を選択し、Aボタンを押します。
末尾が xxxxx.nds となっているものを選択し、Aボタンを押します。 xxxxx.trim.nds となっているものはトリミングによりファイルサイズが少し削減されています。基本的にはこちらでも問題はないと思いますが大した容量差でもないので、自分は大事をとって xxxxx.nds を使用する事にします。
十字キーを使って「Copy to 0:/gm9/out」を選択し、Aボタンを押して吸い出し・保存を実行します。上記画像の2枚目のようになれば処理が完了しています。Aボタンを押してコンティニューします。
3DSの電源を落としてSDカードを取り出し、PCで読み込みます。
SDカードのルートフォルダにある /gm9/out/ 内に .nds ファイルが保存されています。これをエミュレータで読み込めばプレイする事が出来ます。


