diff --git a/bsnes/sfc/coprocessor/superfx/memory.cpp b/bsnes/sfc/coprocessor/superfx/memory.cpp index f002a9cf..71b6f2e1 100644 --- a/bsnes/sfc/coprocessor/superfx/memory.cpp +++ b/bsnes/sfc/coprocessor/superfx/memory.cpp @@ -1,12 +1,13 @@ auto SuperFX::read(uint addr, uint8 data) -> uint8 { if((addr & 0xc00000) == 0x000000) { //$00-3f:0000-7fff,:8000-ffff - addr = Bus::mirror(addr, rom.size()); while(!regs.scmr.ron) { step(6); synchronizeCPU(); if(synchronizing()) break; } - return rom.read((((addr & 0x3f0000) >> 1) | (addr & 0x7fff))); + addr = (((addr & 0x3f0000) >> 1) | (addr & 0x7fff)); + addr = Bus::mirror(addr, rom.size()); + return rom.read(addr); } if((addr & 0xe00000) == 0x400000) { //$40-5f:0000-ffff