From 66d1091330dd13fdbc99c5b8f18897b06e94b7d2 Mon Sep 17 00:00:00 2001 From: Jakly <102590697+Jaklyy@users.noreply.github.com> Date: Wed, 25 Dec 2024 10:34:30 -0500 Subject: [PATCH] improve audio handling at non-60 fps targets (#2246) --- src/frontend/qt_sdl/EmuInstanceAudio.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/frontend/qt_sdl/EmuInstanceAudio.cpp b/src/frontend/qt_sdl/EmuInstanceAudio.cpp index a4ac9394..21e573f9 100644 --- a/src/frontend/qt_sdl/EmuInstanceAudio.cpp +++ b/src/frontend/qt_sdl/EmuInstanceAudio.cpp @@ -29,7 +29,7 @@ using namespace melonDS; int EmuInstance::audioGetNumSamplesOut(int outlen) { - float f_len_in = (outlen * 32823.6328125) / (float)audioFreq; + float f_len_in = (outlen * 32823.6328125 * (curFPS/60.0)) / (float)audioFreq; f_len_in += audioSampleFrac; int len_in = (int)floor(f_len_in); audioSampleFrac = f_len_in - len_in; @@ -73,6 +73,7 @@ void EmuInstance::audioCallback(void* data, Uint8* stream, int len) // resample incoming audio to match the output sample rate int len_in = inst->audioGetNumSamplesOut(len); + if (len_in > 1024) len_in = 1024; s16 buf_in[1024*2]; int num_in;