diff --git a/bsnes/sfc/coprocessor/superfx/memory.cpp b/bsnes/sfc/coprocessor/superfx/memory.cpp index 71b6f2e1..58a54df2 100644 --- a/bsnes/sfc/coprocessor/superfx/memory.cpp +++ b/bsnes/sfc/coprocessor/superfx/memory.cpp @@ -21,13 +21,12 @@ auto SuperFX::read(uint addr, uint8 data) -> uint8 { } if((addr & 0xe00000) == 0x600000) { //$60-7f:0000-ffff - addr = Bus::mirror(addr, ram.size()); while(!regs.scmr.ran) { step(6); synchronizeCPU(); if(synchronizing()) break; } - return ram.read(addr); + return ram.read(addr & ramMask); } return data; @@ -35,13 +34,12 @@ auto SuperFX::read(uint addr, uint8 data) -> uint8 { auto SuperFX::write(uint addr, uint8 data) -> void { if((addr & 0xe00000) == 0x600000) { //$60-7f:0000-ffff - addr = Bus::mirror(addr, ram.size()); while(!regs.scmr.ran) { step(6); synchronizeCPU(); if(synchronizing()) break; } - return ram.write(addr, data); + return ram.write(addr & ramMask, data); } }