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);