From 826f10239ce69b573dba83e5c70d866a292434b5 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 6 Mar 2025 22:38:01 +1000 Subject: [PATCH] CPU/Recompiler: Flush GTE completion cycle on load without fastmem --- src/core/cpu_recompiler.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/cpu_recompiler.cpp b/src/core/cpu_recompiler.cpp index 0983a2939..f6f7e2bdb 100644 --- a/src/core/cpu_recompiler.cpp +++ b/src/core/cpu_recompiler.cpp @@ -1703,6 +1703,12 @@ void CPU::Recompiler::Recompiler::CompileLoadStoreTemplate( } } + // when not using fastmem, flush GTE completion cycle + // otherwise we end up consuming more cycles, because we're only counting a single cycle for loads + // and ram loads would have normally used up all the cycles the GTE was busy for + if (!use_fastmem && !store) + Flush(FLUSH_GTE_DONE_CYCLE); + (this->*func)(cf, size, sign, use_fastmem, addr); if (store && !m_block_ended && !m_current_instruction_branch_delay_slot && spec_addr.has_value() &&