エミュレーターで起動したポケットモンスター 緑の画面。「つづきからはじめる」のメニューが出ていて、周りに緑色の枠がある

3DSのポケモンVCからセーブデータを吸い出してパソコンのエミュレーターで続きを遊ぶ(その逆も)

前提条件:Luma3DSというカスタムファームウェア(CFW)を導入済みの3DSを持っていること

私の3DSについて

私のNew2DSLLにはCFWのLuma3DSを導入済みだ。

3DSやNDSのROMを吸い出す方法は知っていたが、バーチャルコンソール版のゲームボーイ・ゲームボーイカラーソフト(例えばポケモンとか)の場合はどうするの?と思ったので調べた。

まずROMの吸い出しから。これに関してはもうまとめてあるブログがあったのでそちらに説明を任せる。

ここで気になる問題が2つ。

  1. 吸い出したROMにはバーチャルコンソール版で修正された内容が反映されていないらしい

  2. パソコンのエミュレーターで読み込める形式のセーブデータを3DSのVCから吸い出してパソコンで続きを遊んだり、エミュレーターのセーブデータを3DSのVCで読み込める形式のセーブデータに書き戻したりできるのか?

まず 1. について。

吸い出したROMにはバーチャルコンソール版で修正された、ポケモンシリーズなら技エフェクトの激しい点滅などがそのまま残っているようだ。まだ手元で確認してはいない。

例えばポケモン緑なら、romfsの中身を見るとこんな感じ。*.patch というファイルが後ろの方にずらっと並んでいる。

3DS用ツール「GodMode9」の画面。romfsの中に、フォルダー(lang、rom、sndなど)と、agb.bin、config.ini、「Dmgapad0.h35.patch」など、拡張子が .patch のファイルが並んでいる

この中の「Dmgapad0.h35.patch」をテキストビューワーで表示すると中身はこう。

3DSの画面に表示されたテキスト。「;no151 mega punch」「[FPA 001 Begin]」で始まり、Mode、Type、Address、MotionBlur などの設定項目と、16進数の並びが続いている

とりあえずこの辺に技No.151「mega punch」(おそらくメガトンパンチ)のエフェクトを修正するようなデータが書かれてることまでは推測できる。でも、どんな形式で書かれてるのか、どうやってパッチを当てているのか全く分からない。

ググっても情報が出てこないし自力で解読するのもキツいので、これについては諦める。発売当時と同じ状態のROMで遊べると考えたらそれはそれでアツい。でも部屋を明るくして遊ばないとね。

次に 2. について。自分なりに試してみたら今のところ上手く動いている方法を書いてみる。特定の条件で上手くいかなかったりセーブデータがぶっ壊れたりとかあるかもしれないので、試すときは自己責任で。

3DSのVCからセーブデータを吸い出す

ポケモン緑の場合で説明する。セーブデータの中身はこんな感じ。

ポケットモンスター 緑の「つづきからはじめる」画面。主人公「ツムンテマ」、バッジ8こ、ポケモンずかん81ひき、プレイ時間41:05

手持ちポケモンの一覧。ギャラドスL50、ユンゲラーL47、ダグトリオL45、ニドリーノL42、パラセクトL64の5匹

「いまのボックス 8」のポケモン一覧。オムナイトL30、サワムラーL30、ラプラスL16、プテラL30

同じボックス8の続き。カビゴンL30が2匹、パラセクトL29、ゴーストL28

同じボックス8の続き。ニョロゾL43、ファイヤーL50、フリーザーL53、リザードンL46

同じボックス8の最後。ミュウツーL70と、おしょうL34の2匹と、「やめる」の項目

HOMEメニューからセーブデータ管理のHomebrewアプリ「Checkpoint」を起動。水色の旗のアイコンが目印。

3DSのHOMEメニュー。フォルダーを開いて、アプリのアイコンが並んでいる。左下の水色の旗のアイコン(Checkpoint)が選ばれている

入ってないよ!って場合は新しくインストールする。

ciaのインストール方法

起動したら、ポケモン緑のアイコンにカーソルを持ってくる。

3DSの2画面を写した写真。上の画面にゲームのアイコンが並び、下の画面にCheckpointの「ポケットモンスター 緑」の情報と、「New...」「Backup」「Restore」「Cheats」の項目が出ている

New… を選択してバックアップする。
Backup selected title? で Yes を選択。

3DSの画面に、「Backup selected title?」(選択したタイトルをバックアップしますか?)と表示され、「Yes」「No」の選択肢がある

バックアップのフォルダー名を入れる。後から自分で分かるならデフォルトでいいと思う。

3DSの文字入力画面。入力欄に「20220818-232002」と入力されている。下にひらがなのキーボードがある

書き出しが終わった旨の表示が出るのでOKを押す。

3DSの画面に、「Progress correctly saved to disk.」(保存が完了しました)と表示され、「OK」ボタンがある

しっかり書き出せていることを確認したら START でHOMEメニューに戻り電源を切る。

Checkpointの「ポケットモンスター 緑」の画面。バックアップの一覧に、「New...」の下に「20220818-232002」の1件が追加されている

SDカードを取り出してパソコンで開き、以下のパスまで行く。
sdmc:\3ds\Checkpoint\saves\0x0170D ポケットモンスター 緑\<バックアップ名>

私の場合は
G:\3ds\Checkpoint\saves\0x0170D ポケットモンスター 緑\20220818-232002

sav.dat がセーブデータ本体なので、それをパソコンの自分で分かる場所にコピーする。終わったらSDカードを外して3DS本体に戻す。

エクスプローラーで、SDカード(G:)のバックアップフォルダー「20220818-232002」を開いた画面。中に sav.dat(32KB)と SecureValue(1KB)の2つのファイルがある

吸い出したセーブデータをエミュレーターで読み込む

私が使っているmGBAというエミュレーターで説明していく。

パス設定がこうなっている前提で話を進める。この設定は人によって違う。

mGBAの設定画面の「Paths」タブ。「Save games」は「/saves」、「Save states」は「/states」、「Screenshots」は「/screenshots」など、各フォルダーの設定が並んでいる(英語)

先ほど吸い出したポケモン緑の sav.dat を、エミュレーターのセーブデータが置かれているフォルダーに移動する。

私の場合は
D:\Emulators\mGBA-0.9.3-win64\saves

エクスプローラーで、mGBAのsavesフォルダー(D:\Emulators\mGBA-0.9.3-win64\saves)を開いた画面。移動してきた sav.dat(32KB)が選択されている。ほかのファイル名は黒く隠されている

移動したらファイル名を以下のように変更する。
<ポケモン緑のROMのファイル名>.sav

私の場合は
DMGAPBJ1.sav

同じsavesフォルダーの画面。sav.dat の名前が「DMGAPBJ1.sav」に変わっている(32KB)

注意:既に同じファイル名が存在する場合は、エミュレーターで既にROMを起動して遊んでいるということ。既にあるセーブデータを取っておきたい場合は別の場所にコピーしてバックアップしておく。

あとはmGBAを起動してポケモン緑のROMを読み込めば、3DSのVCで遊んだ続きからできる。

ちゃんと読み込めていることを確認する。

mGBAで起動したポケットモンスター 緑の「つづきからはじめる」画面。主人公「ツムンテマ」、バッジ8こ、ポケモンずかん81ひき、プレイ時間41:05。周りにスーパーゲームボーイ風の緑色の枠がある

mGBAの画面。手持ちポケモンの一覧で、ギャラドスL50、ユンゲラーL47、ダグトリオL45、ニドリーノL42、パラセクトL64の5匹

mGBAの画面。「いまのボックス 8」のポケモン一覧で、オムナイトL30、サワムラーL30、ラプラスL16、プテラL30

mGBAの画面。同じボックス8の続きで、カビゴンL30が2匹、パラセクトL29、ゴーストL28

mGBAの画面。同じボックス8の続きで、ニョロゾL43、ファイヤーL50、フリーザーL53、リザードンL46

mGBAの画面。同じボックス8の最後で、ミュウツーL70と、おしょうL34の2匹と、「やめる」の項目

エミュレーターで起動するとスーパーゲームボーイで遊ぶときと同じ仕様になるの、いいよね。

mGBAで起動したポケットモンスター 緑のタイトル画面。「ポケットモンスター」「Pocket Monsters Green Version」の文字と、主人公とポケモンの絵がある。周りに緑色の模様の枠がある

エミュレーターで遊んだセーブデータを3DSのVCに書き戻す

さっきと逆のことを行えばよい。

まず電源を切った3DSからSDカードを取り出して、パソコンで開く。Checkpointでバックアップしたセーブデータがあるフォルダーまで移動。さっきとは1階層上の場所。

私の場合は
G:\3ds\Checkpoint\saves\0x0170D ポケットモンスター 緑

エクスプローラーで、SDカード(G:)の「0x0170D ポケットモンスター 緑」フォルダーを開いた画面。中にバックアップのフォルダー「20220818-232002」が1つだけある

適当なバックアップのフォルダーを丸ごと同じ場所にコピーペーストする。
私の場合は 20220818-232002
Windows 10ならCtrl+C→Ctrl+Vで勝手に別名の複製が作られる。

「0x0170D ポケットモンスター 緑」フォルダーに、「20220818-232002」と、複製された「20220818-232002 - コピー」の2つのフォルダーが並び、コピーのほうが選択されている

これを、エミュレーターで遊んだセーブデータを置いておくフォルダーにする。「エミュレーターで遊んだセーブデータだ」と分かるような名前に変更し、中を開く。

同じフォルダーの画面。コピーの名前が「mGBA」に変わり、「20220818-232002」と「mGBA」の2つのフォルダーが並んでいる

このフォルダーに、エミュレーターで遊んだセーブデータを入れる。

「mGBA」フォルダーの中身。sav.dat(32KB)と SecureValue(1KB)の2つのファイルがある。どちらも更新日時は2022/08/18 23:20

私は動作確認のためにエミュレーターで、手持ちのポケモンと今いる場所を変えてセーブしてみる。手持ちをカモネギのおしょうだけにして、そらをとぶで今いる場所と違う場所に飛んで外にいる状態でレポートした。

mGBAの画面。手持ちの「おしょう」(L34、HP 92/92)を選び、「いあいぎり」「そらをとぶ」「つよさをみる」「ならびかえ」「キャンセル」のメニューが出ている。「そらをとぶ」が選ばれている

mGBAの画面。そらをとぶの行き先を選ぶ地図が表示され、上に「セキエイへ」と行き先の名前が出ている

mGBAの画面。レポートの確認で、「しゅじんこう ツムンテマ」「もっているバッジ 8こ」「ポケモンずかん 81ひき」「プレイじかん 41:07」と、「ここまでの かつやくを ポケモンレポートに かきこみますか?」の文。「はい」が選ばれている

同じレポートの画面で、「ツムンテマは レポートに しっかり かきのこした!」と表示されている

エミュレーターのセーブデータがあるフォルダーからセーブデータをコピー。

エクスプローラーで、mGBAのsavesフォルダー(D:\Emulators\mGBA-0.9.3-win64\saves)を開いた画面。DMGAPBJ1.sav(32KB、更新日時 2022/08/19 1:12)が選択されている。ほかのファイル名は黒く隠されている

「mGBA」フォルダーに、sav.dat(2022/08/18 23:20)、SecureValue、貼り付けたDMGAPBJ1.sav(2022/08/19 1:12、32KB)の3つのファイルが並び、DMGAPBJ1.sav が選択されている

上の状態から以下を行う。

  • 今ある sav.dat を削除

  • エミュレーターから持ってきたセーブデータ(私の場合は DMGAPBJ1.sav)を sav.dat にリネーム

下の画像のようになったらOK。

「mGBA」フォルダーに、sav.dat(32KB、更新日時 2022/08/19 1:12)と SecureValue(1KB)の2つのファイルだけがある。DMGAPBJ1.sav は無くなり、sav.dat の更新日時が新しくなっている

SDカードをパソコンから取り外し、3DSに挿入して電源を入れる。Checkpointを起動して、エミュレーターから戻したセーブデータをリストアすれば完了!

Checkpointの「ポケットモンスター 緑」の画面。バックアップの一覧に、「New...」の下に「mGBA」と「20220818-232002」の2件があり、「mGBA」が選ばれている。右に「Backup」「Restore」「Cheats」の項目がある

3DSの画面に、「Restore selected title?」(選択したタイトルをリストアしますか?)と表示され、「Yes」「No」の選択肢がある

3DSの画面に、「mGBA has been restored successfully.」(mGBAのリストアが完了しました)と表示され、「OK」ボタンがある

バーチャルコンソールを起動して、正しくセーブデータがリストアされているか確認。

3DSのバーチャルコンソールで起動したポケットモンスター 緑の「つづきからはじめる」画面。主人公「ツムンテマ」、バッジ8こ、ポケモンずかん81ひき、プレイ時間41:07

ちゃんとセキエイの外にいる。

ポケットモンスター 緑のフィールド画面。主人公が、大きな建物の入り口に向かう道の上に立っている。道の両側に、像の載った石柱が並んでいる(セキエイの外)

手持ちもおしょう一匹だけ。

ポケットモンスター 緑の手持ちポケモンの画面。「おしょう」L34(HP 92/92)の1匹だけが表示され、「ポケモンを えらんで ください」の文がある

ゲーム配信をするときだけパソコンのエミュレーターで起動して画面キャプチャーを可能にし、終わったらそのセーブデータを3DSのVCに戻して3DSで遊ぶ。またゲーム配信するときにそのセーブデータをパソコンのエミュレーターに戻して……という用途がこれで実現する。