diff --git a/src/core/fullscreen_ui.cpp b/src/core/fullscreen_ui.cpp index 7bc963f98..4a65bd0fe 100644 --- a/src/core/fullscreen_ui.cpp +++ b/src/core/fullscreen_ui.cpp @@ -3310,13 +3310,13 @@ void FullscreenUI::DrawConsoleSettingsPage() DrawEnumSetting(bsi, FSUI_ICONSTR(ICON_FA_GLOBE, "Region"), FSUI_CSTR("Determines the emulated hardware type."), "Console", "Region", Settings::DEFAULT_CONSOLE_REGION, &Settings::ParseConsoleRegionName, &Settings::GetConsoleRegionName, &Settings::GetConsoleRegionDisplayName, ConsoleRegion::Count); + DrawToggleSetting(bsi, FSUI_ICONSTR(ICON_FA_MAGIC, "Safe Mode"), + FSUI_CSTR("Temporarily disables all enhancements, useful when testing."), "Main", + "DisableAllEnhancements", false); DrawToggleSetting( bsi, FSUI_ICONSTR(ICON_FA_MEMORY, "Enable 8MB RAM"), FSUI_CSTR("Enables an additional 6MB of RAM to obtain a total of 2+6 = 8MB, usually present on dev consoles."), "Console", "Enable8MBRAM", false); - DrawToggleSetting(bsi, FSUI_ICONSTR(ICON_FA_MAGIC, "Disable All Enhancements"), - FSUI_CSTR("Temporarily disables all enhancements, useful when testing."), "Main", - "DisableAllEnhancements", false); DrawToggleSetting( bsi, FSUI_ICONSTR(ICON_FA_FROWN, "Enable Cheats"), FSUI_CSTR("Automatically loads and applies cheats on game start. Cheats can break games and saves."), "Console", @@ -7336,7 +7336,6 @@ TRANSLATE_NOOP("FullscreenUI", "Determines the size of screenshots created by Du TRANSLATE_NOOP("FullscreenUI", "Determines whether a prompt will be displayed to confirm shutting down the emulator/game when the hotkey is pressed."); TRANSLATE_NOOP("FullscreenUI", "Determines which algorithm is used to convert interlaced frames to progressive for display on your system."); TRANSLATE_NOOP("FullscreenUI", "Device Settings"); -TRANSLATE_NOOP("FullscreenUI", "Disable All Enhancements"); TRANSLATE_NOOP("FullscreenUI", "Disable Mailbox Presentation"); TRANSLATE_NOOP("FullscreenUI", "Disable Subdirectory Scanning"); TRANSLATE_NOOP("FullscreenUI", "Disable on 2D Polygons"); @@ -7626,6 +7625,7 @@ TRANSLATE_NOOP("FullscreenUI", "Runahead/Rewind"); TRANSLATE_NOOP("FullscreenUI", "Runs the software renderer in parallel for VRAM readbacks. On some systems, this may result in greater performance."); TRANSLATE_NOOP("FullscreenUI", "SDL DualSense Player LED"); TRANSLATE_NOOP("FullscreenUI", "SDL DualShock 4 / DualSense Enhanced Mode"); +TRANSLATE_NOOP("FullscreenUI", "Safe Mode"); TRANSLATE_NOOP("FullscreenUI", "Save Profile"); TRANSLATE_NOOP("FullscreenUI", "Save Screenshot"); TRANSLATE_NOOP("FullscreenUI", "Save State"); diff --git a/src/core/system.cpp b/src/core/system.cpp index fe22a26c4..d18d4e20b 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -4634,7 +4634,7 @@ void System::WarnAboutUnsafeSettings() if (g_settings.disable_all_enhancements) { - append(ICON_EMOJI_WARNING, TRANSLATE_SV("System", "All enhancements are currently disabled.")); + append(ICON_EMOJI_WARNING, TRANSLATE_SV("System", "Safe mode is enabled.")); if (ImGuiManager::IsShowingOSDMessages()) { diff --git a/src/duckstation-qt/consolesettingswidget.cpp b/src/duckstation-qt/consolesettingswidget.cpp index f3a014ba2..1c98360fd 100644 --- a/src/duckstation-qt/consolesettingswidget.cpp +++ b/src/duckstation-qt/consolesettingswidget.cpp @@ -44,8 +44,6 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.region, "Console", "Region", &Settings::ParseConsoleRegionName, &Settings::GetConsoleRegionName, Settings::DEFAULT_CONSOLE_REGION); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.enable8MBRAM, "Console", "Enable8MBRAM", false); - SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableAllEnhancements, "Main", "DisableAllEnhancements", - false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.enableCheats, "Console", "EnableCheats", false); SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.cpuExecutionMode, "CPU", "ExecutionMode", &Settings::ParseCPUExecutionMode, &Settings::GetCPUExecutionModeName, @@ -89,9 +87,6 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa "to use a larger heap size for " "this additional RAM to be usable. Titles which rely on memory mirrors may break, so it should only be used " "with compatible mods.")); - dialog->registerWidgetHelp(m_ui.disableAllEnhancements, tr("Disable All Enhancements"), tr("Unchecked"), - tr("Disables all enhancement options, simulating the system as accurately as possible. " - "Use to quickly determine whether an enhancement is responsible for game bugs.")); dialog->registerWidgetHelp( m_ui.cdromLoadImageToRAM, tr("Preload Image to RAM"), tr("Unchecked"), tr("Loads the game image into RAM. Useful for network paths that may become unreliable during gameplay. In some " diff --git a/src/duckstation-qt/consolesettingswidget.ui b/src/duckstation-qt/consolesettingswidget.ui index 80a118961..0272b16d8 100644 --- a/src/duckstation-qt/consolesettingswidget.ui +++ b/src/duckstation-qt/consolesettingswidget.ui @@ -41,13 +41,6 @@ - - - - Disable All Enhancements - - - @@ -55,7 +48,7 @@ - + Enable Cheats @@ -97,7 +90,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -113,7 +106,7 @@ 100% (effective 33.3mhz) - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -131,10 +124,10 @@ 100 - Qt::Horizontal + Qt::Orientation::Horizontal - QSlider::TicksBothSides + QSlider::TickPosition::TicksBothSides 50 @@ -330,7 +323,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -343,7 +336,7 @@ - + diff --git a/src/duckstation-qt/settingswindow.cpp b/src/duckstation-qt/settingswindow.cpp index 6eac9f183..ecf776017 100644 --- a/src/duckstation-qt/settingswindow.cpp +++ b/src/duckstation-qt/settingswindow.cpp @@ -2,12 +2,11 @@ // SPDX-License-Identifier: CC-BY-NC-ND-4.0 #include "settingswindow.h" +#include "achievementsettingswidget.h" #include "advancedsettingswidget.h" #include "audiosettingswidget.h" #include "biossettingswidget.h" #include "consolesettingswidget.h" - -#include "achievementsettingswidget.h" #include "emulationsettingswidget.h" #include "foldersettingswidget.h" #include "gamelistsettingswidget.h" @@ -18,6 +17,7 @@ #include "memorycardsettingswidget.h" #include "postprocessingsettingswidget.h" #include "qthost.h" +#include "settingwidgetbinder.h" #include "core/achievements.h" #include "core/host.h" @@ -221,6 +221,11 @@ void SettingsWindow::connectUi() connect(m_ui.copyGlobalSettings, &QPushButton::clicked, this, &SettingsWindow::onCopyGlobalSettingsClicked); if (m_ui.clearGameSettings) connect(m_ui.clearGameSettings, &QPushButton::clicked, this, &SettingsWindow::onClearSettingsClicked); + + SettingWidgetBinder::BindWidgetToBoolSetting(m_sif.get(), m_ui.safeMode, "Main", "DisableAllEnhancements", false); + registerWidgetHelp(m_ui.safeMode, tr("Safe Mode"), tr("Unchecked"), + tr("Disables all enhancement options, simulating the system as accurately as possible. Use to " + "quickly determine whether an enhancement is responsible for game bugs.")); } void SettingsWindow::addWidget(QWidget* widget, QString title, QString icon, QString help_text) diff --git a/src/duckstation-qt/settingswindow.ui b/src/duckstation-qt/settingswindow.ui index 058f77a59..bec654af8 100644 --- a/src/duckstation-qt/settingswindow.ui +++ b/src/duckstation-qt/settingswindow.ui @@ -67,6 +67,26 @@ + + + + Safe Mode + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + @@ -88,19 +108,6 @@ - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - -