From e783e778eb4135f7d80ab51c797084cc29d4ac9a Mon Sep 17 00:00:00 2001 From: Jaklyy <102590697+Jaklyy@users.noreply.github.com> Date: Fri, 25 Oct 2024 19:35:58 -0400 Subject: [PATCH] fix an oopsie 3-2 (unsigned) equals "oh no" --- src/CP15.cpp | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/src/CP15.cpp b/src/CP15.cpp index 463208d0..c9b809d5 100644 --- a/src/CP15.cpp +++ b/src/CP15.cpp @@ -330,8 +330,6 @@ void ARMv5::UpdateRegionTimings(u32 addrstart, u32 addrend) { u8* bustimings = NDS.ARM9MemTimings[i]; - // checkme: should these be (bus timings shifted) - 1 or ((bustimings - 1) shifted) + 1 - // should the last cycle be halved...? if (NDS.ARM9ClockShift == 1) { MemTimings[i][0] = (bustimings[0] << NDS.ARM9ClockShift) - 1; @@ -2053,13 +2051,13 @@ bool ARMv5::DataRead8(u32 addr, u32* val) if (PU_Map[addr>>12] & 0x30) WriteBufferDrain(); - NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<> 14][0]; if ((addr >> 24) == 0x02) { - if (NDS.ARM9Timestamp < MainRAMTimestamp) NDS.ARM9Timestamp = MainRAMTimestamp + ((1<>12] & 0x30) WriteBufferDrain(); - NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<> 14][0]; if ((addr >> 24) == 0x02) { - if (NDS.ARM9Timestamp < MainRAMTimestamp) NDS.ARM9Timestamp = MainRAMTimestamp + ((1<>12] & 0x30) WriteBufferDrain(); - NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<> 14][1]; if ((addr >> 24) == 0x02) { - if (NDS.ARM9Timestamp < MainRAMTimestamp) NDS.ARM9Timestamp = MainRAMTimestamp + ((1<> 12][2]; //s else DataCycles = MemTimings[addr >> 12][1]; // ns - DataCycles += (((NDS.ARM9Timestamp + DataCycles) + ((1<> 24) == 0x02) { - if ((NDS.ARM9Timestamp + DataCycles) < MainRAMTimestamp) DataCycles = (MainRAMTimestamp - NDS.ARM9Timestamp) + ((1<>12] & (0x30))) { - NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<> 14][0]; if ((addr >> 24) == 0x02) { - if (NDS.ARM9Timestamp < MainRAMTimestamp) NDS.ARM9Timestamp = MainRAMTimestamp + ((1<>12] & 0x30)) { - NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<> 14][0]; if ((addr >> 24) == 0x02) { - if (NDS.ARM9Timestamp < MainRAMTimestamp) NDS.ARM9Timestamp = MainRAMTimestamp + ((1<>12] & 0x30)) { - NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<> 14][1]; if ((addr >> 24) == 0x02) { - if (NDS.ARM9Timestamp < MainRAMTimestamp) NDS.ARM9Timestamp = MainRAMTimestamp + ((1<>12] & 0x30)) { - DataCycles += (((NDS.ARM9Timestamp + DataCycles) + ((1<> 24) == 0x02) { - if ((NDS.ARM9Timestamp + DataCycles) < MainRAMTimestamp) DataCycles = (MainRAMTimestamp - NDS.ARM9Timestamp) + ((1<> 24) == 0x02) { - cycles = (cycles - 3) | 0x80; + cycles = (cycles - 2) | 0x80; } WriteBufferWrite(val, 2, cycles, addr);