From 8b4b63498923c80d52454fb0dbb9f3f7263866d0 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sun, 9 Jul 2017 11:07:22 -0700 Subject: [PATCH] GBA Timer: Fix count-up timing overflowing timer 3 --- CHANGES | 3 ++- src/gba/timer.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 8244d08f8..9d10876db 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,5 @@ 0.7.0: (Future) Bugfixes: - - GB Audio: Fix zombie mode bit masking - GB Audio: Make audio unsigned with bias (fixes mgba.io/i/749) Misc: - GBA Timer: Use global cycles for timers @@ -177,6 +176,8 @@ Bugfixes: - Qt: Fix shader selector on Ubuntu (fixes mgba.io/i/767) - GB Serialize: Fix timer serialization - GB Audio: Fix incorrect channel 4 iteration + - GB Audio: Fix zombie mode bit masking + - GBA Timer: Fix count-up timing overflowing timer 3 Misc: - Qt: Add language selector - GBA Timer: Improve accuracy of timers diff --git a/src/gba/timer.c b/src/gba/timer.c index 305660aa9..985ef0744 100644 --- a/src/gba/timer.c +++ b/src/gba/timer.c @@ -70,7 +70,7 @@ static void GBATimerUpdate(struct GBA* gba, int timerId, uint32_t cyclesLate) { } } - if (timerId < 4) { + if (timerId < 3) { struct GBATimer* nextTimer = &gba->timers[timerId + 1]; if (GBATimerFlagsIsCountUp(nextTimer->flags)) { // TODO: Does this increment while disabled? ++gba->memory.io[(REG_TM1CNT_LO >> 1) + (timerId << 1)];