diff --git a/desmume/src/frontend/cocoa/cocoa_core.mm b/desmume/src/frontend/cocoa/cocoa_core.mm index 36a7a3c0e..7d34d9037 100644 --- a/desmume/src/frontend/cocoa/cocoa_core.mm +++ b/desmume/src/frontend/cocoa/cocoa_core.mm @@ -1292,7 +1292,10 @@ static void* RunCoreThread(void *arg) else { // If there is any time left in the loop, go ahead and pad it. - execControl->WaitUntilAbsoluteTime(startTime + frameTime); + if ( (execControl->GetCurrentAbsoluteTime() - startTime) < frameTime ) + { + execControl->WaitUntilAbsoluteTime(startTime + frameTime); + } } const double currentExecutionSpeed = standardNDSFrameTime / (execControl->GetCurrentAbsoluteTime() - startTime);