From 5f49036c2a725964f2feb33b1fb526834744ce61 Mon Sep 17 00:00:00 2001 From: mtabachenko Date: Thu, 21 Jan 2010 15:00:50 +0000 Subject: [PATCH] core: - add PU for ARM7 BIOS region (fixed #2598209, #2596062); --- desmume/src/MMU.cpp | 6 ++++++ desmume/src/NDSSystem.cpp | 18 +++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/desmume/src/MMU.cpp b/desmume/src/MMU.cpp index f7df944d2..56150e44e 100644 --- a/desmume/src/MMU.cpp +++ b/desmume/src/MMU.cpp @@ -3536,6 +3536,8 @@ void FASTCALL _MMU_ARM7_write08(u32 adr, u8 val) adr &= 0x0FFFFFFF; + if (adr < 0x4001) return; // PU BIOS + if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) { addon.write08(adr, val); @@ -3600,6 +3602,8 @@ void FASTCALL _MMU_ARM7_write16(u32 adr, u16 val) mmu_log_debug_ARM7(adr, "(write16) 0x%04X", val); adr &= 0x0FFFFFFE; + + if (adr < 0x4001) return; // PU BIOS if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) { @@ -3910,6 +3914,8 @@ void FASTCALL _MMU_ARM7_write32(u32 adr, u32 val) adr &= 0x0FFFFFFC; + if (adr < 0x4001) return; // PU BIOS + if ( (adr >= 0x08000000) && (adr < 0x0A010000) ) { addon.write32(adr, val); diff --git a/desmume/src/NDSSystem.cpp b/desmume/src/NDSSystem.cpp index ae8ad9275..786b223d9 100644 --- a/desmume/src/NDSSystem.cpp +++ b/desmume/src/NDSSystem.cpp @@ -1964,15 +1964,15 @@ void NDS_Reset() for (int t = 0; t < 16384; t++) MMU.ARM7_BIOS[t] = 0xFF; - _MMU_write32(0x00, 0xE25EF002); - _MMU_write32(0x04, 0xEAFFFFFE); - _MMU_write32(0x18, 0xEA000000); - _MMU_write32(0x20, 0xE92D500F); - _MMU_write32(0x24, 0xE3A00301); - _MMU_write32(0x28, 0xE28FE000); - _MMU_write32(0x2C, 0xE510F004); - _MMU_write32(0x30, 0xE8BD500F); - _MMU_write32(0x34, 0xE25EF004); + T1WriteLong(MMU.ARM7_BIOS,0x00, 0xE25EF002); + T1WriteLong(MMU.ARM7_BIOS,0x04, 0xEAFFFFFE); + T1WriteLong(MMU.ARM7_BIOS,0x18, 0xEA000000); + T1WriteLong(MMU.ARM7_BIOS,0x20, 0xE92D500F); + T1WriteLong(MMU.ARM7_BIOS,0x24, 0xE3A00301); + T1WriteLong(MMU.ARM7_BIOS,0x28, 0xE28FE000); + T1WriteLong(MMU.ARM7_BIOS,0x2C, 0xE510F004); + T1WriteLong(MMU.ARM7_BIOS,0x30, 0xE8BD500F); + T1WriteLong(MMU.ARM7_BIOS,0x34, 0xE25EF004); } //ARM9 BIOS IRQ HANDLER