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:
| M | SDL/audio/sdl.c | 2 | +- |
| M | SDL/audio/xaudio2_7.c | 14 | +++++++------- |
| M | SDL/main.c | 2 | +- |
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.