他のスクリプトにも問題があったり、 flash script のエラーが index error に吸われてわからないとかいろいろあるので更新できない... ので先に mmc1 だけ。
mmc1_slrom.af の cpu_transfer() を下記に変更してください。
function cpu_transfer(d, start, end, cpu_banksize) { local i = 0; for(i = start; i < end - 2; i += 2){ mmc1_write(d, 0x8000, 0x1c); mmc1_write(d, 0xe000, i | 0); cpu_program(d, 0x8000, cpu_banksize); mmc1_write(d, 0x8000, 0x18); mmc1_write(d, 0xe000, i | 1); cpu_program(d, 0xc000, cpu_banksize); } mmc1_write(d, 0x8000, 0x1c); mmc1_write(d, 0xe000, i); cpu_program(d, 0x8000, cpu_banksize); cpu_program(d, 0xc000, cpu_banksize); }
mmc1_surom.af も同様。
function cpu_transfer(d, start, end, cpu_banksize) { for(local k = 0; k < 0x20; k += 0x10){ mmc1_write(d, 0xa000, k); for(local i = 0; i < 0x10; i += 2){ //even page mmc1_write(d, 0x8000, 0x0c); mmc1_write(d, 0xe000, i); cpu_program(d, 0x8000, 0x4000); //odd page mmc1_write(d, 0x8000, 0x08); mmc1_write(d, 0xe000, i | 1); cpu_program(d, 0xc000, 0x4000); } } }
コマンドアドレスの定義が完全に蛇足でした... この間違いに1年間気づきませんでした。いままで mmc1 系はコマンドアドレス A10-A0 type でだけかけてました。確認しなくてごめんなさい。