diff --git a/src/BizHawk.Client.Common/config/Binding.cs b/src/BizHawk.Client.Common/config/Binding.cs index e13b724db1..4ce4fc919d 100644 --- a/src/BizHawk.Client.Common/config/Binding.cs +++ b/src/BizHawk.Client.Common/config/Binding.cs @@ -137,6 +137,7 @@ namespace BizHawk.Client.Common Bind("General", "Smaller Window", "Alt+Down"), Bind("General", "Increase Speed", "Plus"), Bind("General", "Decrease Speed", "Minus"), + Bind("General", "Reset Speed", "Shift+Plus"), Bind("General", "Reboot Core", "Ctrl+R"), Bind("General", "Toggle Sound"), Bind("General", "Exit Program"), diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs b/src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs index 4e8efe4d48..2b3ea753b5 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs @@ -120,6 +120,9 @@ namespace BizHawk.Client.EmuHawk case "Increase Speed": IncreaseSpeed(); break; + case "Reset Speed": + ResetSpeed(); + break; case "Decrease Speed": DecreaseSpeed(); break; diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 0a33501adc..b039b2b8fc 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -2498,13 +2498,27 @@ namespace BizHawk.Client.EmuHawk private static readonly int[] SpeedPercents = { 1, 3, 6, 12, 25, 50, 75, 100, 150, 200, 300, 400, 800, 1600, 3200, 6400 }; + private bool CheckCanSetSpeed() + { + if (Config.ClockThrottle) + return true; + + AddOnScreenMessage("Unable to change speed, please switch to clock throttle"); + return false; + } + + private void ResetSpeed() + { + if (!CheckCanSetSpeed()) + return; + + SetSpeedPercent(100); + } + private void IncreaseSpeed() { - if (!Config.ClockThrottle) - { - AddOnScreenMessage("Unable to change speed, please switch to clock throttle"); + if (!CheckCanSetSpeed()) return; - } var oldPercent = Config.SpeedPercent; int newPercent; @@ -2522,11 +2536,8 @@ namespace BizHawk.Client.EmuHawk private void DecreaseSpeed() { - if (!Config.ClockThrottle) - { - AddOnScreenMessage("Unable to change speed, please switch to clock throttle"); + if (!CheckCanSetSpeed()) return; - } var oldPercent = Config.SpeedPercent; int newPercent;