From e95bdf420314918eb7294fbd213697cbb4cfa3f5 Mon Sep 17 00:00:00 2001 From: Sour Date: Wed, 13 Nov 2019 20:52:12 -0500 Subject: [PATCH] Core: Make pause/fast forward/save state/etc more responsive when running emulation at low speeds --- Core/Console.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Core/Console.cpp b/Core/Console.cpp index b29afb9f..2076026e 100644 --- a/Core/Console.cpp +++ b/Core/Console.cpp @@ -786,6 +786,15 @@ void Console::Run() } } + //When sleeping for a long time (e.g <= 25% speed), sleep in small chunks and check to see if we need to stop sleeping between each sleep call + while(targetTime - clockTimer.GetElapsedMS() > 50) { + clockTimer.WaitUntil(clockTimer.GetElapsedMS() + 40); + if(delay != GetFrameDelay() || _stop || _settings->NeedsPause() || _pauseCounter > 0) { + targetTime = 0; + break; + } + } + //Sleep until we're ready to start the next frame clockTimer.WaitUntil(targetTime);