diff --git a/CHANGES b/CHANGES index 2a84e18c9..39f7d22b2 100644 --- a/CHANGES +++ b/CHANGES @@ -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 diff --git a/src/gb/audio.c b/src/gb/audio.c index a90d5531a..1a728b6f0 100644 --- a/src/gb/audio.c +++ b/src/gb/audio.c @@ -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; }