マルチエミュ BizHawkに他のエミュレータからセーブデータを移行する

BizHawk 正式版のAbout

レトロな機種は全てマルチエミュのBizHawkかRetroArchに移行してもよさそうかなと思う今日この頃ですが、とりあえず単体エミュからセーブデータでもコピーしてガッツリ遊んでみますか!と思ったら一つ問題が…セーブデータのサイズが全然違うコアがあるんですよね、これはうっかりしてました。

そんなわけで、他のエミュレータからBizHawkにそのままセーブデータが持ってこれるものと、何か特別な作業が必要なものを調べてみる事にしました。

他のエミュレータのセーブデータをBizHawkに移行

とは言ったものの、一度に全てやろうとするとなかなか大変なので、ひとまず何機種か確認して残りはおいおい当エントリーに追記していく形にしようと思います。

まぁほとんどが長期間プレイしていないゲームですし、一体何がどこまで進んでてどういうストーリーだったかも覚えてなかったりするんで、最初からやり直した方が早いんじゃね?と思わなくもないですが、出来るか出来ないかだけでもおさえておけばいつか役に立つ事もあるでしょう、たぶん。

コアによってはリネームだけでOK

基本的にBizHawkで利用しているコアと同じ、またはそのエミュレータとセーブデータの互換性があるエミュレータならそのままコピってきてリネームするだけでいけそうです。

コピー&リネームでOKだった例

数本試した程度なので例外が無いとは言い切れませんが

  • Nestopia(FC | NES | ファミコン)
  • Snes9x(SFC | SNES | スーパーファミコン)
  • VBA-M(GBA | ゲームボーイアドバンス)
    セーブデータのサイズが違いますが問題無さげでした
  • NeoPop(NGPC | ネオジオポケットカラー)
    てかゲーム毎にセーブデータのサイズがバラバラなんですが…

ある程度情報がまとまってきたらテーブルにでもまとめて見易くしたいですが、なにぶん思いつきで書き始めたエントリーなので…手が空いた時にでも修正しよう、そうしよう。

バイナリエディタで編集が必要な場合

BizHawk側でヘッダか何かデータを付加しているような場合は、バイナリエディタで編集する必要があります。編集といっても元データの内容をまるっとコピーして、アドレスを少しズラして貼り付けてやる程度なのでそこまで難しく考える必要は無いです。

バイナリエディタで編集が必要な例

こちらも各2~3本程度の確認なのでオールオッケーとは言い難いですが

  • Project64(N64 | ニンテンドー64)
  • Oswan(WSC | ワンダースワンカラー)

Project64からのセーブデータ移行

それではProject64のセーブデータを例に作業してみたいと思います。ゲームはスーパーロボット大戦64で、まずは空のセーブデータ作成も兼ねてデータの中身が無い事を確認してみました。

BizHawk N64 セーブデータ無し状態

編集作業に必要なもの

バイナリエディタと元になるセーブデータ以外に必要なものはありません。エディタは好きなものを使ってもらって結構ですが、ここでは定番と言われているStirlingを使って説明します。

BizHawkの空セーブデータを用意

BizHawkでセーブデータを移行したいN64のゲームを一旦起動して、すぐに閉じるか本体を終了させると中身が空のセーブデータが出来ます。

尚、機種によってセーブデータの作成タイミングが違うようなので、起動するだけでは作成されない機種の場合、ゲームの中でセーブが出来るところまで進める必要がありそうです。その場合はファイルさえ作成されればいいので、中断セーブ的なものでもOKです。

セーブデータの編集手順

まずはコピー元のセーブデータをバイナリエディタで開いて、編集 > 全て選択

バイナリエディタ コピー元のセーブデータを全選択

その状態から、編集 > コピーします。

バイナリエディタ 全選択したらそのままコピー

元のセーブデータは開いたままでも構いませんが、紛らわしいので閉じておいた方が間違いが無いかも。ファイルを閉じても他のものをコピーするかクリップボードをクリアしない限りコピー内容は失われないので大丈夫ですが、バイナリエディタ本体はまだ使うので落とさなくていいです、てか落とさないで下さいね?

次に先ほど作成したBizHawkの空セーブデータをドラッグ&ドロップで開いて、検索・移動 > 指定アドレスへ移動

バイナリエディタ 指定アドレスへ移動

アドレスの欄に40800と入力してOKをクリックします。

バイナリエディタ アドレスの指定

移動した先で、編集 > 貼り付け

バイナリエディタ コピーしたセーブデータの内容を貼り付け

上書き保存したらバイナリエディタを閉じて終了です。

バイナリエディタ 保存して終了

エディタの設定によっては貼り付け時に上書きで無く挿入になるので、セーブデータが元のサイズより大きくなる場合がありますが、BizHawkで起動した時に余剰分はカットされるので実害は無さそうです。

これが気になるようなら、設定 > 環境設定を開いて「上書きモード時の貼り付けは上書き処理する」にチェックを入れておきます。

バイナリエディタ 貼り付け時の上書き設定

それではBizHawkを起動して確認します、ちゃんとコピー出来てますね?

BizHawk N64 セーブデータのコピーを確認

資金が何だかちょっぴりアレなのは見なかった事にしてやって下さい…

Project64からは以下の2本で確認しましたが、恐らく他のゲームでも大丈夫ではないかと思います。

  • スーパーロボット大戦64
  • オウガバトル64

Oswanからのセーブデータ移行

Oswanからセーブデータを移行する場合もProject64と手順は全く同じで、違う部分は指定アドレスへ移動する際に400と入力する事だけなので、恐らく他のエミュレータのセーブデータで編集が必要な場合もこの貼り付け先のアドレスが変わってくるだけでは無いかと思っています。

ちなみにOswanでは以下の3本で確認しました。

  • 機動戦士ガンダム ギレンの野望 特別編 蒼き星の覇者
  • ナムコスーパーウォーズ
  • ウィザードリィ シナリオ1 狂王の試練場

セーブデータの移行が出来ない機種

現状ではまだそこまで確認出来ていませんが、セーブデータの構造が全く違うエミュレータの場合は潔く諦めて、セーブデータを保管したエミュレータで最後までやるしか無さそうです。1回プレイしたら終わり的なゲームならともかく、周回要素があるとちょっと残念ではありますけど。

他のエミュレータはまた後ほど

RetroArchやMednafenへセーブデータを移行する場合や、他のエミュレータからのセーブデータ移行に関してもおいおい調べていきたいとは思ってますが、まだまだやりたい事に全く手が追いついていない状態なのでそこは気長にやっていこうと思います。