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