Merge branch 'less-ambitious-timing-rework' into chemical-x

This commit is contained in:
Jaklyy 2024-10-15 20:25:16 -04:00
commit bb2727b786
2 changed files with 18 additions and 10 deletions

View File

@ -607,8 +607,11 @@ void ARMv5::Execute()
Halted = 0; Halted = 0;
if (NDS.IME[0] & 0x1) if (NDS.IME[0] & 0x1)
{ {
#ifdef JIT_ENABLED
if constexpr (mode == CPUExecuteMode::JIT) TriggerIRQ<mode>(); if constexpr (mode == CPUExecuteMode::JIT) TriggerIRQ<mode>();
else IRQ = 1; else
#endif
IRQ = 1;
} }
} }
else else

View File

@ -1813,8 +1813,9 @@ u32 ARMv5::CodeRead32(u32 addr, bool branch)
} }
CodeCycles = MemTimings[addr >> 12][1]; CodeCycles = MemTimings[addr >> 12][1];
WriteBufferDrain(); if (PU_Map[addr>>12] & 0x30)
WriteBufferDrain();
NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<<NDS.ARM9ClockShift)-1) & ~((1<<NDS.ARM9ClockShift)-1); NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<<NDS.ARM9ClockShift)-1) & ~((1<<NDS.ARM9ClockShift)-1);
@ -1874,7 +1875,8 @@ bool ARMv5::DataRead8(u32 addr, u32* val)
} }
#endif #endif
WriteBufferDrain(); if (PU_Map[addr>>12] & 0x30)
WriteBufferDrain();
NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<<NDS.ARM9ClockShift)-1) & ~((1<<NDS.ARM9ClockShift)-1); NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<<NDS.ARM9ClockShift)-1) & ~((1<<NDS.ARM9ClockShift)-1);
@ -1934,8 +1936,9 @@ bool ARMv5::DataRead16(u32 addr, u32* val)
} }
} }
#endif #endif
WriteBufferDrain(); if (PU_Map[addr>>12] & 0x30)
WriteBufferDrain();
NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<<NDS.ARM9ClockShift)-1) & ~((1<<NDS.ARM9ClockShift)-1); NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<<NDS.ARM9ClockShift)-1) & ~((1<<NDS.ARM9ClockShift)-1);
@ -1995,8 +1998,9 @@ bool ARMv5::DataRead32(u32 addr, u32* val)
} }
} }
#endif #endif
WriteBufferDrain(); if (PU_Map[addr>>12] & 0x30)
WriteBufferDrain();
NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<<NDS.ARM9ClockShift)-1) & ~((1<<NDS.ARM9ClockShift)-1); NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<<NDS.ARM9ClockShift)-1) & ~((1<<NDS.ARM9ClockShift)-1);
@ -2054,8 +2058,9 @@ bool ARMv5::DataRead32S(u32 addr, u32* val)
} }
} }
#endif #endif
WriteBufferDrain(); if (PU_Map[addr>>12] & 0x30)
WriteBufferDrain();
NDS.ARM9Timestamp += DataCycles; NDS.ARM9Timestamp += DataCycles;