From 45eb9cfcee1512afae13df55512fd2adf1103952 Mon Sep 17 00:00:00 2001 From: crueter Date: Mon, 23 Feb 2026 02:52:12 +0100 Subject: [PATCH] [desktop] Reset speed mode on game shutdown (#3613) Closes #3602 Signed-off-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3613 Reviewed-by: CamilleLaVey Reviewed-by: Lizzie Reviewed-by: MaranBr --- src/yuzu/main_window.cpp | 28 +++++++++++++++++++++------- src/yuzu/main_window.h | 1 + 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/yuzu/main_window.cpp b/src/yuzu/main_window.cpp index d8b7f1adbc..e1a94632f9 100644 --- a/src/yuzu/main_window.cpp +++ b/src/yuzu/main_window.cpp @@ -1446,20 +1446,17 @@ void MainWindow::InitializeHotkeys() { connect_shortcut(QStringLiteral("Toggle Framerate Limit"), [this] { Settings::ToggleStandardMode(); - const bool limited = Settings::values.use_speed_limit.GetValue(); - m_fpsSuffix = limited ? QString{} : tr("Unlocked"); + SetFPSSuffix(); }); connect_shortcut(QStringLiteral("Toggle Turbo Speed"), [this] { Settings::ToggleTurboMode(); - const bool turbo = Settings::values.current_speed_mode.GetValue() == Settings::SpeedMode::Turbo; - m_fpsSuffix = turbo ? tr("Turbo") : QString{}; + SetFPSSuffix(); }); connect_shortcut(QStringLiteral("Toggle Slow Speed"), [this] { Settings::ToggleSlowMode(); - const bool slow = Settings::values.current_speed_mode.GetValue() == Settings::SpeedMode::Slow; - m_fpsSuffix = slow ? tr("Slow") : QString{}; + SetFPSSuffix(); }); connect_shortcut(QStringLiteral("Toggle Renderdoc Capture"), [] { @@ -2145,6 +2142,7 @@ void MainWindow::BootGame(const QString& filename, Service::AM::FrontendAppletPa status_bar_update_timer.start(500); renderer_status_button->setDisabled(true); refresh_button->setDisabled(true); + SetFPSSuffix(); if (UISettings::values.hide_mouse || Settings::values.mouse_panning) { render_window->installEventFilter(render_window); @@ -2209,8 +2207,9 @@ bool MainWindow::OnShutdownBegin() { AllowOSSleep(); - // Disable unlimited frame rate + // Disable unlimited frame rate and turbo/slow modes Settings::values.use_speed_limit.SetValue(true); + Settings::values.current_speed_mode = Settings::SpeedMode::Standard; if (QtCommon::system->IsShuttingDown()) { return false; @@ -4517,6 +4516,21 @@ void MainWindow::SetFirmwareVersion() { firmware_label->setToolTip(QString::fromStdString(display_title)); } +void MainWindow::SetFPSSuffix() { + switch (Settings::values.current_speed_mode.GetValue()) { + case Settings::SpeedMode::Slow: + m_fpsSuffix = tr("Slow"); + break; + case Settings::SpeedMode::Turbo: + m_fpsSuffix = tr("Turbo"); + break; + case Settings::SpeedMode::Standard: + const bool limited = Settings::values.use_speed_limit.GetValue(); + m_fpsSuffix = limited ? QString{} : tr("Unlocked"); + break; + } +} + bool MainWindow::SelectRomFSDumpTarget(const FileSys::ContentProvider& installed, u64 program_id, u64* selected_title_id, u8* selected_content_record_type) { using ContentInfo = std::tuple; diff --git a/src/yuzu/main_window.h b/src/yuzu/main_window.h index 4ebfdbcb1e..bb58191951 100644 --- a/src/yuzu/main_window.h +++ b/src/yuzu/main_window.h @@ -464,6 +464,7 @@ private: void OpenPerGameConfiguration(u64 title_id, const std::string& file_name); bool CheckFirmwarePresence(); void SetFirmwareVersion(); + void SetFPSSuffix(); void ConfigureFilesystemProvider(const std::string& filepath); /** * Open (or not) the right confirm dialog based on current setting and game exit lock