From 97652b7460d413ed97a48eb6e106937a3286e070 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Wed, 29 Dec 2021 16:53:28 +0200 Subject: [PATCH] Cocoa audio bugfix --- Cocoa/Document.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Cocoa/Document.m b/Cocoa/Document.m index 90ce260..e6b6599 100644 --- a/Cocoa/Document.m +++ b/Cocoa/Document.m @@ -399,7 +399,13 @@ static void infraredStateChanged(GB_gameboy_t *gb, bool on) return; } - if (audioBufferPosition >= nFrames && audioBufferPosition < nFrames + 4800) { + if (audioBufferPosition < nFrames) { + // Not enough audio + memset(buffer, 0, (nFrames - audioBufferPosition) * sizeof(*buffer)); + memcpy(buffer, audioBuffer, audioBufferPosition * sizeof(*buffer)); + audioBufferPosition = 0; + } + else if (audioBufferPosition < nFrames + 4800) { memcpy(buffer, audioBuffer, nFrames * sizeof(*buffer)); memmove(audioBuffer, audioBuffer + nFrames, (audioBufferPosition - nFrames) * sizeof(*buffer)); audioBufferPosition = audioBufferPosition - nFrames;