[desktop] Reset speed mode on game shutdown (#3613)

Closes #3602

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3613
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
This commit is contained in:
crueter 2026-02-23 02:52:12 +01:00
parent 0a687b82d4
commit 45eb9cfcee
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
2 changed files with 22 additions and 7 deletions

View File

@ -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<u64, FileSys::TitleType, FileSys::ContentRecordType>;

View File

@ -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