From eaa1975ac99a21e059366125debe6865d36eb5bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 20 Jun 2023 22:39:08 +0200 Subject: [PATCH] Improve logging on bad memory access from RA --- UI/RetroAchievements.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/UI/RetroAchievements.cpp b/UI/RetroAchievements.cpp index 5f30cff379..c09209ed8b 100644 --- a/UI/RetroAchievements.cpp +++ b/UI/RetroAchievements.cpp @@ -2039,10 +2039,15 @@ unsigned Achievements::PeekMemory(unsigned address, unsigned num_bytes, void *ud // Unclear why achievements are defined with this offset, but they are and it can't be changed now, so we roll with it. address += 0x08000000; + if (!Memory::IsValidAddress(address)) { + WARN_LOG(G3D, "RetroAchievements PeekMemory: Bad address %08x (%d bytes)", address, num_bytes); + return 0; + } + switch (num_bytes) { - case 1: return Memory::Read_U8(address); - case 2: return Memory::Read_U16(address); - case 4: return Memory::Read_U32(address); + case 1: return Memory::ReadUnchecked_U8(address); + case 2: return Memory::ReadUnchecked_U16(address); + case 4: return Memory::ReadUnchecked_U32(address); default: return 0; }