diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index bfd18e4d76..48f1b9fa02 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -626,6 +626,12 @@ void VideoThrottle() { // Make the limiter a bit loose u32 frametime = ((SConfig::GetInstance().b_UseFPS)? Common::AtomicLoad(DrawnFrame) : DrawnVideo) * 1000 / TargetVPS; + + u32 timeDifference = (u32)Timer.GetTimeDifference(); + if (timeDifference < frametime) { + Common::SleepCurrentThread(frametime - timeDifference - 1); + } + while ((u32)Timer.GetTimeDifference() < frametime) Common::YieldCPU(); //Common::SleepCurrentThread(1);