From e2dc5575b9f878c4e823f648903f30745b85f17a Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 12 Jun 2017 07:26:33 -0700 Subject: [PATCH] GB Audio: Fix channel 3 freeze --- src/gb/audio.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gb/audio.c b/src/gb/audio.c index 8fbca6d9b..c8f1338fb 100644 --- a/src/gb/audio.c +++ b/src/gb/audio.c @@ -337,6 +337,7 @@ void GBAudioWriteNR34(struct GBAudio* audio, uint8_t value) { } audio->ch3.window = 0; } + mTimingDeschedule(audio->timing, &audio->ch3Fade); mTimingDeschedule(audio->timing, &audio->ch3Event); if (audio->playingCh3) { audio->ch3.readable = audio->style != GB_AUDIO_DMG; @@ -863,6 +864,7 @@ static void _updateChannel3(struct mTiming* timing, void* user, uint32_t cyclesL ch->sample *= volume * 4; audio->ch3.readable = true; if (audio->style == GB_AUDIO_DMG) { + mTimingDeschedule(audio->timing, &audio->ch3Fade); mTimingSchedule(timing, &audio->ch3Fade, 2 - cyclesLate); } int cycles = 2 * (2048 - ch->rate);