From df915330e76e7ae15f74c0fb5a5eb39cc6eaa117 Mon Sep 17 00:00:00 2001 From: normmatt234 Date: Sun, 5 Apr 2009 22:50:03 +0000 Subject: [PATCH] Fix card reads below 0x8000 --- desmume/src/MMU.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/desmume/src/MMU.cpp b/desmume/src/MMU.cpp index f1d23b949..12300cc77 100644 --- a/desmume/src/MMU.cpp +++ b/desmume/src/MMU.cpp @@ -3121,6 +3121,11 @@ u32 FASTCALL _MMU_ARM9_read32(u32 adr) case 0xB7: { /* TODO: prevent read if the address is out of range */ + /* Make sure any reads below 0x8000 redirect to 0x8000+(adr%0x1FF) as on real cart */ + if(MMU.dscard[ARMCPU_ARM9].address < 0x8000) + { + MMU.dscard[ARMCPU_ARM9].address = (0x8000 + (MMU.dscard[ARMCPU_ARM9].address&0x1FF)); + } val = T1ReadLong(MMU.CART_ROM, MMU.dscard[ARMCPU_ARM9].address); } break;