GBA: Fix timing advancing too quickly in rare cases

This commit is contained in:
Vicki Pfau 2020-05-30 17:00:07 -07:00
parent 00aa6476c8
commit d7ecdb5e4e
2 changed files with 2 additions and 1 deletions

View File

@ -11,6 +11,7 @@ Emulation fixes:
- GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716) - GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716)
- GB Video: Fix BGPS value after skipping BIOS (fixes mgba.io/i/1717) - GB Video: Fix BGPS value after skipping BIOS (fixes mgba.io/i/1717)
- GBA: Add missing RTC overrides for Legendz games - GBA: Add missing RTC overrides for Legendz games
- GBA: Fix timing advancing too quickly in rare cases
- GBA BIOS: Implement dummy sound driver calls - GBA BIOS: Implement dummy sound driver calls
- GBA BIOS: Improve HLE BIOS timing - GBA BIOS: Improve HLE BIOS timing
- GBA BIOS: Reset renderer when RegisterRamReset called (fixes mgba.io/i/1756) - GBA BIOS: Reset renderer when RegisterRamReset called (fixes mgba.io/i/1756)

View File

@ -282,7 +282,7 @@ static void GBAProcessEvents(struct ARMCore* cpu) {
mLOG(GBA, FATAL, "Negative cycles passed: %i", cycles); mLOG(GBA, FATAL, "Negative cycles passed: %i", cycles);
} }
#endif #endif
nextEvent = mTimingTick(&gba->timing, nextEvent + cycles); nextEvent = mTimingTick(&gba->timing, cycles < nextEvent ? nextEvent : cycles);
} while (gba->cpuBlocked); } while (gba->cpuBlocked);
cpu->nextEvent = nextEvent; cpu->nextEvent = nextEvent;