git.y1.nz

SameBoy

Accurate GB/GBC emulator
download: https://git.y1.nz/archives/sameboy.tar.gz
README | Files | Log | Refs | LICENSE

commit a856566b54ffa92df66055e817dad83d7f174ba2
parent d31f34cab4309c627984494518c7314c407203a5
Author: Lior Halphon <LIJI32@gmail.com>
Date:   Mon, 18 Jul 2022 21:56:47 +0300

Fixed GB_audio_get_queue_length to actually be the length rather than size, fixed XAudio2.7 audio overflow crash, changed the maximum lag limit to 1/8s rather than 1/4s. Closes #473

Diffstat:
MSDL/audio/sdl.c2+-
MSDL/audio/xaudio2_7.c14+++++++-------
MSDL/main.c2+-
3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/SDL/audio/sdl.c b/SDL/audio/sdl.c @@ -52,7 +52,7 @@ static unsigned _audio_get_frequency(void) static size_t _audio_get_queue_length(void) { - return SDL_GetQueuedAudioSize(device_id); + return SDL_GetQueuedAudioSize(device_id) / sizeof(GB_sample_t); } static void _audio_queue_sample(GB_sample_t *sample) diff --git a/SDL/audio/xaudio2_7.c b/SDL/audio/xaudio2_7.c @@ -23,23 +23,23 @@ static WAVEFORMATEX wave_format = { .cbSize = 0 }; -static inline HRESULT XAudio2Create(IXAudio2 **ppXAudio2, +static inline HRESULT XAudio2Create(IXAudio2 **out, UINT32 Flags, XAUDIO2_PROCESSOR XAudio2Processor) { - IXAudio2 *pXAudio2; + IXAudio2 *xaudio2; LoadLibraryEx("xaudio2_7.dll", NULL, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS); - HRESULT hr = CoCreateInstance(&CLSID_XAudio2, NULL, CLSCTX_INPROC_SERVER, &IID_IXAudio2, (void**)&pXAudio2); + HRESULT hr = CoCreateInstance(&CLSID_XAudio2, NULL, CLSCTX_INPROC_SERVER, &IID_IXAudio2, (void **)&xaudio2); if (SUCCEEDED(hr)) { - hr = pXAudio2->lpVtbl->Initialize(pXAudio2, Flags, XAudio2Processor); + hr = xaudio2->lpVtbl->Initialize(xaudio2, Flags, XAudio2Processor); } if (SUCCEEDED(hr)) { - *ppXAudio2 = pXAudio2; + *out = xaudio2; } - else if (pXAudio2) { - pXAudio2->lpVtbl->Release(pXAudio2); + else if (xaudio2) { + xaudio2->lpVtbl->Release(xaudio2); } return hr; } diff --git a/SDL/main.c b/SDL/main.c @@ -523,7 +523,7 @@ static void gb_audio_callback(GB_gameboy_t *gb, GB_sample_t *sample) } } - if (GB_audio_get_queue_length() / sizeof(*sample) > GB_audio_get_frequency() / 4) { + if (GB_audio_get_queue_length() > GB_audio_get_frequency() / 8) { // Maximum lag of 0.125s return; }

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.