From 179c49e5f4c13fe79e136f85989406307d1a2ddd Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Thu, 2 Aug 2018 23:11:14 -0700 Subject: [PATCH] GB Audio: Fix giving blip the wrong diff when blocking --- src/gb/audio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gb/audio.c b/src/gb/audio.c index d0b971cb6..daf479a26 100644 --- a/src/gb/audio.c +++ b/src/gb/audio.c @@ -647,6 +647,8 @@ static void _sample(struct mTiming* timing, void* user, uint32_t cyclesLate) { if ((size_t) blip_samples_avail(audio->left) < audio->samples) { blip_add_delta(audio->left, audio->clock, sampleLeft - audio->lastLeft); blip_add_delta(audio->right, audio->clock, sampleRight - audio->lastRight); + audio->lastLeft = sampleLeft; + audio->lastRight = sampleRight; audio->clock += audio->sampleInterval; if (audio->clock >= CLOCKS_PER_BLIP_FRAME) { blip_end_frame(audio->left, CLOCKS_PER_BLIP_FRAME); @@ -654,8 +656,6 @@ static void _sample(struct mTiming* timing, void* user, uint32_t cyclesLate) { audio->clock -= CLOCKS_PER_BLIP_FRAME; } } - audio->lastLeft = sampleLeft; - audio->lastRight = sampleRight; produced = blip_samples_avail(audio->left); if (audio->p->stream && audio->p->stream->postAudioFrame) { audio->p->stream->postAudioFrame(audio->p->stream, sampleLeft, sampleRight);