GBA: Timing cleanup

This commit is contained in:
Vicki Pfau 2018-01-04 21:34:07 -08:00
parent 16131c9702
commit 69aa7ac3ae
1 changed files with 6 additions and 13 deletions

View File

@ -243,24 +243,17 @@ static void GBAProcessEvents(struct ARMCore* cpu) {
int32_t nextEvent = cpu->nextEvent;
while (cpu->cycles >= nextEvent) {
int32_t cycles = cpu->cycles;
cpu->cycles = 0;
cpu->nextEvent = INT_MAX;
#ifndef NDEBUG
if (cycles < 0) {
mLOG(GBA, FATAL, "Negative cycles passed: %i", cycles);
}
#endif
nextEvent = cycles;
nextEvent = 0;
do {
int32_t cycles = cpu->cycles;
cpu->cycles = 0;
#ifndef NDEBUG
if (cpu->cycles) {
mLOG(GBA, FATAL, "Cycles passed inexplicably: %i", cpu->cycles);
if (cycles < 0) {
mLOG(GBA, FATAL, "Negative cycles passed: %i", cycles);
}
#endif
nextEvent = mTimingTick(&gba->timing, nextEvent);
nextEvent = mTimingTick(&gba->timing, nextEvent + cycles);
} while (gba->cpuBlocked);
cpu->nextEvent = nextEvent;