--- nono/vm/vm_x68k.cpp 2026/04/29 17:05:17 1.1.1.10 +++ nono/vm/vm_x68k.cpp 2026/04/29 17:05:20 1.1.1.11 @@ -81,32 +81,18 @@ VM_X68030::Init() auto extram = dynamic_cast(pExtRAM.get()); int extsize = extram->GetSizeMB(); - if (extsize == 0) { - // 拡張メモリがない場合は、上位8ビット全域がミラーになる。 - for (int i = 0; i < mainbus->devtable.size(); i++) { - mainbus->SetDevice(i, xiospace); - } - } else if (extsize == 16) { + // 上位8ビット全域を一旦全部ミラーで埋めてから + for (int i = 0; i < mainbus->devtable.size(); i++) { + mainbus->SetDevice(i, xiospace); + } + if (extsize == 16) { // TS-6BE16 互換 (16MB) なら、 - // $00: X68kIO // $01: ExtRAM - // で、その後ろは? - mainbus->SetDevice(0, xiospace); mainbus->SetDevice(1, extram); - for (int i = 2; i < mainbus->devtable.size(); i++) { - mainbus->SetDevice(i, pBusErr.get()); - } } else { // 060turbo 互換。とりあえず 128MB/256MB のみ。この場合は - // $00: X68kIO - // $01..$0f: BusErr? // $10..$17: ExtRAM (128MB) // $18..$1f: ExtRAM (256MB) - // で、その後ろは? - mainbus->SetDevice(0, xiospace); - for (int i = 1; i < mainbus->devtable.size(); i++) { - mainbus->SetDevice(i, pBusErr.get()); - } for (int i = 0x10, end = i + (extsize / 16); i < end; i++) { mainbus->SetDevice(i, extram); }