From bd1665c1d3602a3d7f6b327ddb0ecf0982340047 Mon Sep 17 00:00:00 2001 From: Jaklyy <102590697+Jaklyy@users.noreply.github.com> Date: Thu, 4 Jul 2024 11:15:37 -0400 Subject: [PATCH] minor timing tweaks --- src/ARM.cpp | 2 +- src/ARM.h | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ARM.cpp b/src/ARM.cpp index 3ecae2c8..f667e0f6 100644 --- a/src/ARM.cpp +++ b/src/ARM.cpp @@ -647,7 +647,7 @@ void ARMv5::Execute() R[15] += 2; CurInstr = NextInstr[0]; NextInstr[0] = NextInstr[1]; - if (R[15] & 0x2) { NextInstr[1] >>= 16; CodeCycles = 0; } + if (R[15] & 0x2) { NextInstr[1] >>= 16; CodeCycles = 1; } else NextInstr[1] = CodeRead32(R[15], false); // actually execute diff --git a/src/ARM.h b/src/ARM.h index 8efb8fa6..20d11ad2 100644 --- a/src/ARM.h +++ b/src/ARM.h @@ -317,15 +317,16 @@ public: void AddCycles_C() override { // code only. always nonseq 32-bit for ARM9. - s32 numC = (R[15] & 0x2) ? 0 : CodeCycles; + s32 numC = CodeCycles; Cycles += numC; } void AddCycles_CI(s32 numI) override { // code+internal - s32 numC = (R[15] & 0x2) ? 0 : CodeCycles; - Cycles += numC + numI; + s32 numC = CodeCycles; + numI += 1; + Cycles += std::max(numC, numI); } void AddCycles_CDI_LDR() override;