GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes #2965)

This commit is contained in:
Vicki Pfau 2023-06-29 01:23:58 -07:00
parent 72379168cb
commit 0d353a740f
2 changed files with 4 additions and 1 deletions

View File

@ -1,6 +1,7 @@
0.10.3: (Future)
Emulation fixes:
- GB Audio: Fix channels 1/2 staying muted if restarted after long silence
- GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes mgba.io/i/2965)
- GB I/O: Read back proper SVBK value after writing 0 (fixes mgba.io/i/2921)
- GB SIO: Disabling SIO should cancel pending transfers (fixes mgba.io/i/2537)
- GBA Audio: Fix sample timing drifting when changing sample interval

View File

@ -651,7 +651,9 @@ void GBAudioUpdateFrame(struct GBAudio* audio) {
if (audio->ch1.sweep.enable) {
--audio->ch1.sweep.step;
if (audio->ch1.sweep.step == 0) {
audio->playingCh1 = _updateSweep(&audio->ch1, false);
if (!_updateSweep(&audio->ch1, false)) {
audio->playingCh1 = false;
}
*audio->nr52 &= ~0x0001;
*audio->nr52 |= audio->playingCh1;
}