FF I&II のセーブデータ

件名の問題は手元では一部改善してアクセスできております。問題は下記です。

  • エミュレータによって事実と異なる実装がされている
  • スクリプトの不備 / mmc1_surom.ae, dumpcore.nut 両方
  • GUI の未実装 / dump mode にある x1, x2 の選択肢を付けてない

エミュレータによって事実と異なる実装がされている

SXROM (FF I&II, best play pro yakyu special) RAM の容量は 32KB だが、FF I&II が実際に使ってる容量は 16KB。野球の方についてはもってないので不明。

Virtua NES は 16KB で実装されており事実と異なる。 Nestopia は 32KB で実装されている。

スクリプトの不備

下記に修正。 dumpcore.nut

function workram_rw(d, script, increase_cpu)
{
	dofile(script);
	local cpu_dumpsize = dumpsize_get(board.cpu_ram, increase_cpu);
	memory_new(d, cpu_dumpsize, 0);
	cpu_ram_access(d, cpu_dumpsize / board.cpu_ram.banksize, board.cpu_ram.banksize);
	memory_finalize(d);
}

mmc1_surom.ae (どちらを使うかでコメントを外してください)

function cpu_ram_access(d, pagesize, banksize)
{
	local sxrom_page = [0, 2 << 2, 1 << 2, 3 << 2];
	cpu_write(d, 0x8000, 0x80); //serial count reset
	mmc1_write(d, 0x8000, 1 << 3);
	mmc1_write(d, 0xe000, 0);
	for(local i = 0; i < pagesize; i += 1){
		//nestopia (事実)
		//mmc1_write(d, 0xa000, (i & 0x03) << 2);
		//virtua NES (偽実装)
		//mmc1_write(d, 0xa000, sxrom_page[i]);
		cpu_ramrw(d, 0x6000, banksize);
	}
	mmc1_write(d, 0xe000, 0xff);
}

GUI の不備

次回以降修正します。CUI については下記でいけます。

(VirtuaNES 連携, read)
anago.exe r2 mmc1_surom.ae hoge.sav
(VirtuaNES 連携, write)
anago.exe w2 mmc1_surom.ae hoge.sav

(Nestopia 連携, read)
anago.exe r4 mmc1_surom.ae hoge.sav
(Nestopia 連携, write)
anago.exe w4 mmc1_surom.ae hoge.sav

以上です。