diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp index 5caf025da5..7b546e474b 100644 --- a/Source/Core/Core/Boot/Boot.cpp +++ b/Source/Core/Core/Boot/Boot.cpp @@ -393,6 +393,8 @@ bool CBoot::BootUp() if (!Boot_ELF(_StartupPara.m_strFilename)) return false; + // Note: Boot_ELF calls HLE::PatchFunctions() + UpdateDebugger_MapLoaded(); Dolphin_Debugger::AddAutoBreakpoints(); break; diff --git a/Source/Core/Core/Boot/Boot_ELF.cpp b/Source/Core/Core/Boot/Boot_ELF.cpp index 4dc9cd18d5..9130fafdfc 100644 --- a/Source/Core/Core/Boot/Boot_ELF.cpp +++ b/Source/Core/Core/Boot/Boot_ELF.cpp @@ -67,28 +67,10 @@ bool CBoot::Boot_ELF(const std::string& filename) if (!reader.LoadIntoMemory()) return false; - // Set up MSR and the BAT SPR registers. - UReg_MSR& m_MSR = ((UReg_MSR&)PowerPC::ppcState.msr); - m_MSR.FP = 1; - m_MSR.DR = 1; - m_MSR.IR = 1; - m_MSR.EE = 1; - PowerPC::ppcState.spr[SPR_IBAT0U] = 0x80001fff; - PowerPC::ppcState.spr[SPR_IBAT0L] = 0x00000002; - PowerPC::ppcState.spr[SPR_IBAT4U] = 0x90001fff; - PowerPC::ppcState.spr[SPR_IBAT4L] = 0x10000002; - PowerPC::ppcState.spr[SPR_DBAT0U] = 0x80001fff; - PowerPC::ppcState.spr[SPR_DBAT0L] = 0x00000002; - PowerPC::ppcState.spr[SPR_DBAT1U] = 0xc0001fff; - PowerPC::ppcState.spr[SPR_DBAT1L] = 0x0000002a; - PowerPC::ppcState.spr[SPR_DBAT4U] = 0x90001fff; - PowerPC::ppcState.spr[SPR_DBAT4L] = 0x10000002; - PowerPC::ppcState.spr[SPR_DBAT5U] = 0xd0001fff; - PowerPC::ppcState.spr[SPR_DBAT5L] = 0x1000002a; - if (IsElfWii(filename)) + const bool is_wii = IsElfWii(filename); + if (is_wii) HID4.SBE = 1; - PowerPC::DBATUpdated(); - PowerPC::IBATUpdated(); + SetupBAT(is_wii); if (!reader.LoadSymbols()) {