From 9f0ff3e5da53b568b933fa1ee2004449b1ee241a Mon Sep 17 00:00:00 2001 From: MohammadSaad2000 Date: Sun, 21 Jan 2024 04:08:00 -0500 Subject: [PATCH] Update nvnflinger.cpp --- src/core/hle/service/nvnflinger/nvnflinger.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/core/hle/service/nvnflinger/nvnflinger.cpp b/src/core/hle/service/nvnflinger/nvnflinger.cpp index af65913700..85a490609a 100644 --- a/src/core/hle/service/nvnflinger/nvnflinger.cpp +++ b/src/core/hle/service/nvnflinger/nvnflinger.cpp @@ -329,9 +329,17 @@ s64 Nvnflinger::GetNextTicks() const { speed_scale = 1.f; } - // As an extension, treat nonpositive swap interval as framerate multiplier. - const f32 effective_fps = swap_interval <= 0 ? 120.f * static_cast(1 - swap_interval) - : 60.f / static_cast(swap_interval); + f32 effective_fps; + if (swap_interval >= 5) { + // As an extension, treat high swap intervals as speed limit override + speed_scale = 100.f / swap_interval; + effective_fps = 60.f; + } else if (swap_interval <= 0) { + // As an extension, treat nonpositive swap interval as framerate multiplier. + effective_fps = 120.f * static_cast(1 - swap_interval); + } else { + effective_fps = 60.f / static_cast(swap_interval); + } return static_cast(speed_scale * (1000000000.f / effective_fps)); }