mirror of https://github.com/mgba-emu/mgba.git
GBA Timers: Cascading timers don't tick when disabled (fixes #2812)
This commit is contained in:
parent
e95bd06321
commit
e470795258
1
CHANGES
1
CHANGES
|
@ -7,6 +7,7 @@ Emulation fixes:
|
||||||
- GBA Audio: Fix improperly deserializing GB audio registers (fixes mgba.io/i/2793)
|
- GBA Audio: Fix improperly deserializing GB audio registers (fixes mgba.io/i/2793)
|
||||||
- GBA Memory: Make VRAM access stalls only apply to BG RAM
|
- GBA Memory: Make VRAM access stalls only apply to BG RAM
|
||||||
- GBA SIO: Fix SIOCNT SI pin value after attaching player 2 (fixes mgba.io/i/2805)
|
- GBA SIO: Fix SIOCNT SI pin value after attaching player 2 (fixes mgba.io/i/2805)
|
||||||
|
- GBA Timers: Cascading timers don't tick when disabled (fixes mgba.io/i/2812)
|
||||||
- GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722)
|
- GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722)
|
||||||
Other fixes:
|
Other fixes:
|
||||||
- Core: Allow sending thread requests to a crashed core (fixes mgba.io/i/2784)
|
- Core: Allow sending thread requests to a crashed core (fixes mgba.io/i/2784)
|
||||||
|
|
|
@ -34,7 +34,7 @@ static void GBATimerUpdate(struct GBA* gba, int timerId, uint32_t cyclesLate) {
|
||||||
|
|
||||||
if (timerId < 3) {
|
if (timerId < 3) {
|
||||||
struct GBATimer* nextTimer = &gba->timers[timerId + 1];
|
struct GBATimer* nextTimer = &gba->timers[timerId + 1];
|
||||||
if (GBATimerFlagsIsCountUp(nextTimer->flags)) { // TODO: Does this increment while disabled?
|
if (GBATimerFlagsIsCountUp(nextTimer->flags) && GBATimerFlagsIsEnable(nextTimer->flags)) {
|
||||||
++gba->memory.io[REG_TMCNT_LO(timerId + 1) >> 1];
|
++gba->memory.io[REG_TMCNT_LO(timerId + 1) >> 1];
|
||||||
if (!gba->memory.io[REG_TMCNT_LO(timerId + 1) >> 1] && GBATimerFlagsIsEnable(nextTimer->flags)) {
|
if (!gba->memory.io[REG_TMCNT_LO(timerId + 1) >> 1] && GBATimerFlagsIsEnable(nextTimer->flags)) {
|
||||||
GBATimerUpdate(gba, timerId + 1, cyclesLate);
|
GBATimerUpdate(gba, timerId + 1, cyclesLate);
|
||||||
|
|
Loading…
Reference in New Issue