From 44997183686a7c92db4eb10b219f86f4c342ec31 Mon Sep 17 00:00:00 2001 From: Sketch <75850871+SketchMaster2001@users.noreply.github.com> Date: Sun, 2 Feb 2025 17:27:16 -0500 Subject: [PATCH] Core: Check if msr.DR or msr.IR are valid at ApplyStartupPatches --- Source/Core/Core/PatchEngine.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Source/Core/Core/PatchEngine.cpp b/Source/Core/Core/PatchEngine.cpp index 0a46a60051..b69368336b 100644 --- a/Source/Core/Core/PatchEngine.cpp +++ b/Source/Core/Core/PatchEngine.cpp @@ -293,6 +293,17 @@ static void ApplyStartupPatches(Core::System& system) { ASSERT(Core::IsCPUThread()); Core::CPUThreadGuard guard(system); + + const auto& ppc_state = system.GetPPCState(); + if (!ppc_state.msr.DR || !ppc_state.msr.IR) + { + DEBUG_LOG_FMT(ACTIONREPLAY, + "Need to retry later. CPU configuration is currently incorrect. PC = {:#010x}, " + "MSR = {:#010x}", + ppc_state.pc, ppc_state.msr.Hex); + return; + } + ApplyPatches(guard, s_on_frame); }