From f36b458bbf8e4bc986fb0f7eddac782bca45fe8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 20 Oct 2026 13:45:15 +0200 Subject: [PATCH] Crashfix in the framedump recorder --- GPU/Debugger/Record.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/GPU/Debugger/Record.cpp b/GPU/Debugger/Record.cpp index a2c42e6bbc..bad8a66980 100644 --- a/GPU/Debugger/Record.cpp +++ b/GPU/Debugger/Record.cpp @@ -527,10 +527,19 @@ void Recorder::FlushPrimState(int vcount) { } } - const void *verts = Memory::GetPointerOrException(gstate_c.vertexAddr); + if (!Memory::IsValidAddress(gstate_c.vertexAddr)) { + ERROR_LOG(Log::G3D, "Recorder: Invalid vertex address: 0x%08X", gstate_c.vertexAddr); + return; + } + + const void *verts = Memory::GetPointerUnchecked(gstate_c.vertexAddr); const void *indices = nullptr; if ((gstate.vertType & GE_VTYPE_IDX_MASK) != GE_VTYPE_IDX_NONE) { - indices = Memory::GetPointerOrException(gstate_c.indexAddr); + if (Memory::IsValidAddress(gstate_c.indexAddr)) { + ERROR_LOG(Log::G3D, "Recorder: Invalid index address: 0x%08X", gstate_c.indexAddr); + return; + } + indices = Memory::GetPointerUnchecked(gstate_c.indexAddr); } u32 ibytes = 0;