From 5bcef4741ad8b0fe4310f1e0cc55064504b72c7a Mon Sep 17 00:00:00 2001 From: Luke Usher Date: Mon, 9 Dec 2024 13:34:43 +0000 Subject: [PATCH] ps1: invalidate single blocks rather than entire pools (recompiler) --- ares/ps1/cpu/cpu.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ares/ps1/cpu/cpu.hpp b/ares/ps1/cpu/cpu.hpp index ec9039ece0..014e93f11c 100644 --- a/ares/ps1/cpu/cpu.hpp +++ b/ares/ps1/cpu/cpu.hpp @@ -529,7 +529,11 @@ struct CPU : Thread { } auto invalidate(u32 address) -> void { - pools[address >> 8 & 0x1fffff] = nullptr; + auto pool = pools[address >> 8 & 0x1fffff]; + if(!pool) return; + memory::jitprotect(false); + pool->blocks[address >> 2 & 0x3f] = nullptr; + memory::jitprotect(true); } auto pool(u32 address) -> Pool*;