OpenEmuと他のエミュレーターでセーブデータをやり取りするには
エミュレーターにはゲーム内のセーブと、エミュレータ独自の「オートセーブ」とか「セーブステート」と色々ややこしいですが、異なるエミュレーター間でセーブデータをやり取りする場合は、ゲーム内セーブのデータを対象にするのが自然なのではないかと思います。
いくつか調べてみました。
OpenEmu
- オートセーブとセーブステートが入っているディレクトリ
- ~/Library/Application Support/OpenEmu/Save States/(コア)/(ROM名)/
この中にオートセーブとセーブステートが一緒に入っていて、それぞれファイル名が以下のような感じ。スロットがあるわけではなくて、セーブステートはプレイ中に取るたびに履歴のように増えていきます。
・オートセーブステート.oesavestate
・セーブ-ゲーム-1 2021-06-28 190856 +0900.oesavestate
- ゲーム内セーブが入っているディレクトリ
- ~/Library/Application Support/OpenEmu/(コア)/Battery Saves/
この中にROM名のついたセーブデータがあります。DSのゲームを例にするとOpenEmuのDSエミュレーターDeSmuMEでは「(ROM名).dsv」という名前で保存されていました。
PlayStationエミュレーター「Mednafen」では「(ROM名+32バイトの文字列).0.mcr」「 (ROM名+32バイトの文字列).1.mcr」という2つのファイルが1セットになっているようです。
RG351PのDSエミュレーターDraStic
RG351PのセーブデータはROMイメージと同じディレクトリが基本のように思うのですが、DSのエミュレーターDrasTicの場合は違っていて下記にありました。
- セーブステートが入っているディレクトリ
- /storage/roms/gamedata/drastic/aarch64/drastic/savestates
この中に「(ROM名).dss」で入っていました。
- ゲーム内セーブが入っているディレクトリ
- /storage/roms/gamedata/drastic/aarch64/drastic/backup
この中にの中に「(ROM名).dsv」で入っていました。
DeSmuMEとDraSticの場合はdsvファイルを取り出して、そのまま他方の対象ディレクトリーに保存すればセーブデータを引き継ぐことができました。
R4の場合
ゲーム内セーブはROMファイルと同じ場所に「(ROM).sav」という名前で入っていました。これがちょっとややこしかった。
ゲーム内で保存しているデータなんだから、中身は同じはずだと思い込んで拡張子を「.sav」から「.dsv」に変更しただけで、上のエミュレーターとやり取りしてもうまくいかず、セーブデータを読み込んでいる気配がなく毎回初期状態からスタートしてしまいます。
色々と調べていくうちに、セーブ形式を変換してくれるWebサイトに行き当たり「これかあ!」と思って試してみたら、うまくいきました。
↓こちら
DSセーブデータ変換ツール
ひと手間増えますが、dsvとsavを相互に変換してやり取りすれば大丈夫です。