From 4f23b39bb354c9957b869563554ee5ef1110cc7e Mon Sep 17 00:00:00 2001 From: KrimtonZ Date: Mon, 16 Dec 2019 15:19:01 -0600 Subject: [PATCH] remove incorrect assumption that all of Cartridge Domain 2 Address 2 is for save data --- .../N64System/Mips/MemoryVirtualMem.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Source/Project64-core/N64System/Mips/MemoryVirtualMem.cpp b/Source/Project64-core/N64System/Mips/MemoryVirtualMem.cpp index d0451fe63..d1bcc4228 100644 --- a/Source/Project64-core/N64System/Mips/MemoryVirtualMem.cpp +++ b/Source/Project64-core/N64System/Mips/MemoryVirtualMem.cpp @@ -1507,6 +1507,12 @@ void CMipsMemoryVM::Load32CartridgeDomain2Address1(void) void CMipsMemoryVM::Load32CartridgeDomain2Address2(void) { + uint32_t PAddr = m_MemLookupAddress & 0x1FFFFFFF; + if (PAddr >= 0x10000) + { + m_MemLookupValue.UW[0] = 0; + return; + } if (g_System->m_SaveUsing == SaveChip_Auto) { g_System->m_SaveUsing = SaveChip_FlashRam; @@ -2178,7 +2184,8 @@ void CMipsMemoryVM::Write32CartridgeDomain2Address1(void) void CMipsMemoryVM::Write32CartridgeDomain2Address2(void) { - if (g_System->m_SaveUsing == SaveChip_Sram) + uint32_t PAddr = m_MemLookupAddress & 0x1FFFFFFF; + if (g_System->m_SaveUsing == SaveChip_Sram && PAddr < 0x8000) { //Store Sram uint8_t tmp[4] = ""; @@ -2196,6 +2203,10 @@ void CMipsMemoryVM::Write32CartridgeDomain2Address2(void) g_Notify->BreakPoint(__FILE__, __LINE__); } }*/ + if (PAddr != 0x10000) + { + return; + } if (g_System->m_SaveUsing == SaveChip_Auto) { g_System->m_SaveUsing = SaveChip_FlashRam;