diff --git a/NESEmulator/CNESEmulator.cpp b/NESEmulator/CNESEmulator.cpp index 061e349f6..2398902e4 100644 --- a/NESEmulator/CNESEmulator.cpp +++ b/NESEmulator/CNESEmulator.cpp @@ -336,6 +336,8 @@ CNESEmulator::~CNESEmulator() int CNESEmulator::audioUpdate() { + int origProcBufs = m_procBufs; + uint8_t *data = apuGetBuf(); if(data != NULL && m_procBufs) { @@ -347,13 +349,13 @@ int CNESEmulator::audioUpdate() m_headBuf = 0; } - //if (!m_procBufs) + //if (!origProcBufs) //printf("OVERRUN\n"); - return m_procBufs; + return origProcBufs; } -static const size_t AudioFrameSz = 2 * sizeof(int16_t); +static constexpr size_t AudioFrameSz = 2 * sizeof(int16_t); size_t CNESEmulator::supplyAudio(boo::IAudioVoice& voice, size_t frames, int16_t* data) { @@ -397,7 +399,7 @@ void CNESEmulator::NesEmuMainLoop() int loopCount = 0; do { - if((!emuSkipVsync && emuRenderFrame) || nesPause) + if(emuRenderFrame || nesPause) { #if (WINDOWS_BUILD && DEBUG_MAIN_CALLS) emuMainTimesSkipped++; @@ -496,6 +498,7 @@ void CNESEmulator::NesEmuMainLoop() vrc7Clock++; } +#if 1 if ((loopCount % 5000) == 0 && GetTickCount() - start >= 14) { #if CATCHUP_SKIP @@ -504,11 +507,14 @@ void CNESEmulator::NesEmuMainLoop() #endif break; } +#endif } while(true); +#if 0 int end = GetTickCount(); - printf("%dms\n", end - start); + printf("%dms %d %d\n", end - start, loopCount, m_procBufs); +#endif #if (WINDOWS_BUILD && DEBUG_MAIN_CALLS) emuMainTimesCalled++; diff --git a/NESEmulator/fixNES b/NESEmulator/fixNES index 25527a513..c0a679921 160000 --- a/NESEmulator/fixNES +++ b/NESEmulator/fixNES @@ -1 +1 @@ -Subproject commit 25527a513dc635fa87014970618fbfb7dfe3e5c6 +Subproject commit c0a679921ddb0e104aa35202bc9cdf0be82850b8