diff --git a/src/GPU3D.cpp b/src/GPU3D.cpp index 4a1426aaa6..953a234364 100644 --- a/src/GPU3D.cpp +++ b/src/GPU3D.cpp @@ -2378,13 +2378,13 @@ void GPU3D::Run() noexcept if (!GeometryEnabled || FlushRequest || (CmdPIPE.IsEmpty() && !(GXStat & (1<<27)))) { - Timestamp = NDS.ARM9Timestamp >> NDS.ARM9ClockShift; + Timestamp = std::max(NDS.ARM9Timestamp, NDS.DMA9Timestamp) >> NDS.ARM9ClockShift; return; } - s32 cycles = (NDS.ARM9Timestamp >> NDS.ARM9ClockShift) - Timestamp; + s32 cycles = (std::max(NDS.ARM9Timestamp, NDS.DMA9Timestamp) >> NDS.ARM9ClockShift) - Timestamp; CycleCount -= cycles; - Timestamp = NDS.ARM9Timestamp >> NDS.ARM9ClockShift; + Timestamp = std::max(NDS.ARM9Timestamp, NDS.DMA9Timestamp) >> NDS.ARM9ClockShift; if (CycleCount <= 0) {