From 95381170d8946f99be9fff4d5555a27cd0f5d396 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 26 Mar 2024 20:14:54 +0100 Subject: [PATCH] Add optimization for >>1k fps scenarios --- src/BizHawk.Client.EmuHawk/MainForm.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 5edfb35aed..e004816a1f 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -2375,9 +2375,20 @@ namespace BizHawk.Client.EmuHawk } } + private DateTime _lastMessageCheck = DateTime.MinValue; + private void CheckMessages() { - Application.DoEvents(); + var currentTime = DateTime.Now; + // only check window messages a maximum of once per millisecond + // this check is irrelvant for the 99% of cases where fps are <1k + // but gives a slight fps boost in those scenarios + if ((currentTime - _lastMessageCheck).Milliseconds > 0) + { + _lastMessageCheck = currentTime; + Application.DoEvents(); + } + if (ActiveForm != null) { ScreenSaver.ResetTimerPeriodically();