mirror of https://github.com/AxioDL/metaforce.git
fixNES timing fixes
This commit is contained in:
parent
93fc2d8072
commit
c42fe06233
|
@ -336,6 +336,8 @@ CNESEmulator::~CNESEmulator()
|
||||||
|
|
||||||
int CNESEmulator::audioUpdate()
|
int CNESEmulator::audioUpdate()
|
||||||
{
|
{
|
||||||
|
int origProcBufs = m_procBufs;
|
||||||
|
|
||||||
uint8_t *data = apuGetBuf();
|
uint8_t *data = apuGetBuf();
|
||||||
if(data != NULL && m_procBufs)
|
if(data != NULL && m_procBufs)
|
||||||
{
|
{
|
||||||
|
@ -347,13 +349,13 @@ int CNESEmulator::audioUpdate()
|
||||||
m_headBuf = 0;
|
m_headBuf = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (!m_procBufs)
|
//if (!origProcBufs)
|
||||||
//printf("OVERRUN\n");
|
//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)
|
size_t CNESEmulator::supplyAudio(boo::IAudioVoice& voice, size_t frames, int16_t* data)
|
||||||
{
|
{
|
||||||
|
@ -397,7 +399,7 @@ void CNESEmulator::NesEmuMainLoop()
|
||||||
int loopCount = 0;
|
int loopCount = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if((!emuSkipVsync && emuRenderFrame) || nesPause)
|
if(emuRenderFrame || nesPause)
|
||||||
{
|
{
|
||||||
#if (WINDOWS_BUILD && DEBUG_MAIN_CALLS)
|
#if (WINDOWS_BUILD && DEBUG_MAIN_CALLS)
|
||||||
emuMainTimesSkipped++;
|
emuMainTimesSkipped++;
|
||||||
|
@ -496,6 +498,7 @@ void CNESEmulator::NesEmuMainLoop()
|
||||||
vrc7Clock++;
|
vrc7Clock++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 1
|
||||||
if ((loopCount % 5000) == 0 && GetTickCount() - start >= 14)
|
if ((loopCount % 5000) == 0 && GetTickCount() - start >= 14)
|
||||||
{
|
{
|
||||||
#if CATCHUP_SKIP
|
#if CATCHUP_SKIP
|
||||||
|
@ -504,11 +507,14 @@ void CNESEmulator::NesEmuMainLoop()
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
while(true);
|
while(true);
|
||||||
|
|
||||||
|
#if 0
|
||||||
int end = GetTickCount();
|
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)
|
#if (WINDOWS_BUILD && DEBUG_MAIN_CALLS)
|
||||||
emuMainTimesCalled++;
|
emuMainTimesCalled++;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 25527a513dc635fa87014970618fbfb7dfe3e5c6
|
Subproject commit c0a679921ddb0e104aa35202bc9cdf0be82850b8
|
Loading…
Reference in New Issue