From 1cfd9c6a5da380386f7947e82a21ff4e1b221ad6 Mon Sep 17 00:00:00 2001 From: jbo-85 <1428333+jbo-85@users.noreply.github.com> Date: Tue, 31 May 2022 02:00:16 +0200 Subject: [PATCH] sfc: Fix regression with several SuperFX games like Doom --- bsnes/sfc/coprocessor/superfx/memory.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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