mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-17 16:30:30 +02:00
Show the crash screen whenever the core stops with a runtime error
EmuScreen only draws the crash info when an exception was recorded, and showed just the Resume/Reset/Back buttons otherwise. Several ways of stopping the core with CORE_RUNTIME_ERROR recorded nothing: - A bad memory access in JIT code that MemFault can't skip, either because it can't decode the host instruction or because ignoring is only configured through the exception action, went to the crash handler, while Core_MemoryException returned early under the default Ignore action. A halting access is now always recorded. - HLEReturnFromMipsCall on a corrupt stack, and a failed LoadExec, set the state directly. They now go through Core_HLEError, which records a new HLE exception type with a message that the crash screen shows. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
da4d6eda8a
commit
b13945d9e5
7 files changed
+36
-11
No files matched your search
@@ -419,6 +419,13 @@ PC: %08x
|
||||
)", info.pc);
|
||||
ctx->Draw()->DrawTextShadow(ubuntu24, statbuf, x, y, 0xFFFFFFFF);
|
||||
y += 180;
|
||||
} else if (info.type == MIPSExceptionType::HLE) {
|
||||
snprintf(statbuf, sizeof(statbuf), R"(
|
||||
%s
|
||||
PC: %08x
|
||||
RA: %08x)", info.info.c_str(), info.pc, info.ra);
|
||||
ctx->Draw()->DrawTextShadow(ubuntu24, statbuf, x, y, 0xFFFFFFFF);
|
||||
y += 180;
|
||||
} else {
|
||||
snprintf(statbuf, sizeof(statbuf), R"(
|
||||
Invalid / Unknown (%d)
|
||||
|
||||
Reference in new issue
Block a user