From dfbf39c768bbd080708772b518e663ae7a6c72a5 Mon Sep 17 00:00:00 2001 From: Pokechu22 Date: Tue, 12 Aug 2025 15:38:49 -0700 Subject: [PATCH] Mention enable MMU in the DSI Exception message (Invalid read from ###/Invalid write to ###) This has been possible for a long time now (see https://dolphin-emu.org/blog/2016/09/06/booting-the-final-gc-game/#side-effects-of-a-hardcode-rewrite), but it seems like people still aren't aware of it. --- Source/Core/Core/PowerPC/MMU.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index 7cb9b9ac52..17f42e9d90 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -1273,8 +1273,20 @@ void MMU::GenerateDSIException(u32 effective_address, bool write) // DSI exceptions are only supported in MMU mode. if (!m_system.IsMMUMode()) { - PanicAlertFmt("Invalid {} {:#010x}, PC = {:#010x}", write ? "write to" : "read from", - effective_address, m_ppc_state.pc); + if (write) + { + PanicAlertFmtT( + "Invalid write to {0:#010x}, PC = {1:#010x}; the game probably would have crashed on " + "real hardware.\n\nFor accurate emulation, enable MMU in advanced settings.", + effective_address, m_ppc_state.pc); + } + else + { + PanicAlertFmtT( + "Invalid read from {0:#010x}, PC = {1:#010x}; the game probably would have crashed on " + "real hardware.\n\nFor accurate emulation, enable MMU in advanced settings.", + effective_address, m_ppc_state.pc); + } if (m_system.IsPauseOnPanicMode()) { m_system.GetCPU().Break();