diff --git a/src/android/app/src/main/java/org/citra/citra_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/citra/citra_emu/NativeLibrary.kt
index be2e2939d..3e62b5d61 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/NativeLibrary.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/NativeLibrary.kt
@@ -186,6 +186,10 @@ object NativeLibrary {
external fun unlinkConsole()
+ external fun setTemporaryFrameLimit(speed: Double)
+
+ external fun disableTemporaryFrameLimit()
+
private var coreErrorAlertResult = false
private val coreErrorAlertLock = Object()
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.kt
index 30229df5c..c5f23a6a6 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/activities/EmulationActivity.kt
@@ -34,7 +34,6 @@ import org.citra.citra_emu.contracts.OpenFileResultContract
import org.citra.citra_emu.databinding.ActivityEmulationBinding
import org.citra.citra_emu.display.ScreenAdjustmentUtil
import org.citra.citra_emu.features.hotkeys.HotkeyUtility
-import org.citra.citra_emu.features.hotkeys.HotkeyFunctions
import org.citra.citra_emu.features.settings.model.BooleanSetting
import org.citra.citra_emu.features.settings.model.IntSetting
import org.citra.citra_emu.features.settings.model.SettingsViewModel
@@ -46,6 +45,7 @@ import org.citra.citra_emu.utils.FileBrowserHelper
import org.citra.citra_emu.utils.EmulationLifecycleUtil
import org.citra.citra_emu.utils.EmulationMenuSettings
import org.citra.citra_emu.utils.ThemeUtil
+import org.citra.citra_emu.utils.TurboHelper
import org.citra.citra_emu.viewmodel.EmulationViewModel
class EmulationActivity : AppCompatActivity() {
@@ -57,7 +57,6 @@ class EmulationActivity : AppCompatActivity() {
private lateinit var binding: ActivityEmulationBinding
private lateinit var screenAdjustmentUtil: ScreenAdjustmentUtil
- private lateinit var hotkeyFunctions: HotkeyFunctions
private lateinit var hotkeyUtility: HotkeyUtility
private val emulationFragment: EmulationFragment
@@ -80,8 +79,7 @@ class EmulationActivity : AppCompatActivity() {
binding = ActivityEmulationBinding.inflate(layoutInflater)
screenAdjustmentUtil = ScreenAdjustmentUtil(this, windowManager, settingsViewModel.settings)
- hotkeyFunctions = HotkeyFunctions(settingsViewModel.settings)
- hotkeyUtility = HotkeyUtility(screenAdjustmentUtil, hotkeyFunctions, this)
+ hotkeyUtility = HotkeyUtility(screenAdjustmentUtil, this)
setContentView(binding.root)
val navHostFragment =
@@ -144,7 +142,6 @@ class EmulationActivity : AppCompatActivity() {
}
override fun onDestroy() {
- hotkeyFunctions.resetTurboSpeed()
EmulationLifecycleUtil.clear()
isEmulationRunning = false
instance = null
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/hotkeys/HotkeyFunctions.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/hotkeys/HotkeyFunctions.kt
deleted file mode 100644
index e529ccada..000000000
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/hotkeys/HotkeyFunctions.kt
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright Citra Emulator Project / Azahar Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-package org.citra.citra_emu.features.hotkeys
-
-import android.widget.Toast
-import org.citra.citra_emu.CitraApplication
-import org.citra.citra_emu.NativeLibrary
-import org.citra.citra_emu.features.settings.model.IntSetting
-import org.citra.citra_emu.features.settings.model.Settings
-import org.citra.citra_emu.features.settings.utils.SettingsFile
-
-
-class HotkeyFunctions (
- private val settings: Settings
-) {
- private var normalSpeed = IntSetting.FRAME_LIMIT.int
- var isTurboSpeedEnabled = false
-
- // Turbo Speed
- fun setTurboSpeed(enabled: Boolean) {
- isTurboSpeedEnabled = enabled
- toggleTurboSpeed()
- }
-
- fun toggleTurboSpeed() {
- if (isTurboSpeedEnabled) {
- IntSetting.FRAME_LIMIT.int = IntSetting.TURBO_SPEED.int
- } else {
- IntSetting.FRAME_LIMIT.int = normalSpeed
- }
-
- settings.saveSetting(IntSetting.FRAME_LIMIT, SettingsFile.FILE_NAME_CONFIG)
- NativeLibrary.reloadSettings()
-
- val context = CitraApplication.appContext
- Toast.makeText(context,
- "Changed Emulation Speed to: ${IntSetting.FRAME_LIMIT.int}%", Toast.LENGTH_SHORT).show()
- }
-
- fun resetTurboSpeed() {
- isTurboSpeedEnabled = false
- IntSetting.FRAME_LIMIT.int = normalSpeed
-
- settings.saveSetting(IntSetting.FRAME_LIMIT, SettingsFile.FILE_NAME_CONFIG)
- NativeLibrary.reloadSettings()
- }
-}
\ No newline at end of file
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/hotkeys/HotkeyUtility.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/hotkeys/HotkeyUtility.kt
index 00115809b..cc10f5aad 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/hotkeys/HotkeyUtility.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/hotkeys/HotkeyUtility.kt
@@ -9,11 +9,11 @@ import android.widget.Toast
import org.citra.citra_emu.NativeLibrary
import org.citra.citra_emu.R
import org.citra.citra_emu.utils.EmulationLifecycleUtil
+import org.citra.citra_emu.utils.TurboHelper
import org.citra.citra_emu.display.ScreenAdjustmentUtil
class HotkeyUtility(
private val screenAdjustmentUtil: ScreenAdjustmentUtil,
- private val hotkeyFunctions: HotkeyFunctions,
private val context: Context) {
private val hotkeyButtons = Hotkey.entries.map { it.button }
@@ -25,7 +25,7 @@ class HotkeyUtility(
Hotkey.CYCLE_LAYOUT.button -> screenAdjustmentUtil.cycleLayouts()
Hotkey.CLOSE_GAME.button -> EmulationLifecycleUtil.closeGame()
Hotkey.PAUSE_OR_RESUME.button -> EmulationLifecycleUtil.pauseOrResume()
- Hotkey.TURBO_SPEED.button -> hotkeyFunctions.setTurboSpeed(!hotkeyFunctions.isTurboSpeedEnabled)
+ Hotkey.TURBO_SPEED.button -> TurboHelper.setTurboEnabled(!TurboHelper.isTurboSpeedEnabled())
Hotkey.QUICKSAVE.button -> {
NativeLibrary.saveState(NativeLibrary.QUICKSAVE_SLOT)
Toast.makeText(context,
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt
index 8539db6e2..625600e24 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt
@@ -97,8 +97,7 @@ enum class IntSetting(
ASYNC_CUSTOM_LOADING,
AUDIO_INPUT_TYPE,
USE_ARTIC_BASE_CONTROLLER,
- SHADERS_ACCURATE_MUL,
- FRAME_LIMIT
+ SHADERS_ACCURATE_MUL
)
fun from(key: String): IntSetting? = IntSetting.values().firstOrNull { it.key == key }
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivityPresenter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivityPresenter.kt
index 4eba95d19..15425f4f7 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivityPresenter.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivityPresenter.kt
@@ -12,6 +12,7 @@ import org.citra.citra_emu.features.settings.model.Settings
import org.citra.citra_emu.utils.SystemSaveGame
import org.citra.citra_emu.utils.DirectoryInitialization
import org.citra.citra_emu.utils.Log
+import org.citra.citra_emu.utils.TurboHelper
class SettingsActivityPresenter(private val activityView: SettingsActivityView) {
val settings: Settings get() = activityView.settings
@@ -66,6 +67,7 @@ class SettingsActivityPresenter(private val activityView: SettingsActivityView)
//added to ensure that layout changes take effect as soon as settings window closes
NativeLibrary.reloadSettings()
NativeLibrary.updateFramebuffer(NativeLibrary.isPortraitMode)
+ TurboHelper.reloadTurbo() // TODO: Can this go someone else? -OS
}
NativeLibrary.reloadSettings()
}
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/overlay/InputOverlay.kt b/src/android/app/src/main/java/org/citra/citra_emu/overlay/InputOverlay.kt
index c3c6bd7ef..09e62cbb2 100644
--- a/src/android/app/src/main/java/org/citra/citra_emu/overlay/InputOverlay.kt
+++ b/src/android/app/src/main/java/org/citra/citra_emu/overlay/InputOverlay.kt
@@ -24,8 +24,8 @@ import androidx.preference.PreferenceManager
import org.citra.citra_emu.CitraApplication
import org.citra.citra_emu.NativeLibrary
import org.citra.citra_emu.R
-import org.citra.citra_emu.features.hotkeys.HotkeyFunctions
import org.citra.citra_emu.utils.EmulationMenuSettings
+import org.citra.citra_emu.utils.TurboHelper
import java.lang.NullPointerException
import kotlin.math.min
@@ -46,7 +46,6 @@ class InputOverlay(context: Context?, attrs: AttributeSet?) : SurfaceView(contex
private var dpadBeingConfigured: InputOverlayDrawableDpad? = null
private var joystickBeingConfigured: InputOverlayDrawableJoystick? = null
private val settingsViewModel = NativeLibrary.sEmulationActivity.get()!!.settingsViewModel
- private val hotkeyFunctions = HotkeyFunctions(settingsViewModel.settings)
// Stores the ID of the pointer that interacted with the 3DS touchscreen.
private var touchscreenPointerId = -1
@@ -108,8 +107,7 @@ class InputOverlay(context: Context?, attrs: AttributeSet?) : SurfaceView(contex
}
if (button.id == NativeLibrary.ButtonType.BUTTON_TURBO && button.status == NativeLibrary.ButtonState.PRESSED) {
-
- hotkeyFunctions.setTurboSpeed((!hotkeyFunctions.isTurboSpeedEnabled))
+ TurboHelper.setTurboEnabled((!TurboHelper.isTurboSpeedEnabled()))
}
NativeLibrary.onGamePadEvent(NativeLibrary.TouchScreenDevice, button.id, button.status)
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/TurboHelper.kt b/src/android/app/src/main/java/org/citra/citra_emu/utils/TurboHelper.kt
new file mode 100644
index 000000000..75bf73ffb
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/TurboHelper.kt
@@ -0,0 +1,39 @@
+// Copyright Citra Emulator Project / Azahar Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+package org.citra.citra_emu.utils
+
+import android.widget.Toast
+import org.citra.citra_emu.CitraApplication
+import org.citra.citra_emu.NativeLibrary
+import org.citra.citra_emu.R
+import org.citra.citra_emu.features.settings.model.IntSetting
+
+object TurboHelper {
+ private var turboSpeedEnabled = false
+
+ fun isTurboSpeedEnabled(): Boolean {
+ return turboSpeedEnabled
+ }
+
+ fun setTurboEnabled(state: Boolean) {
+ turboSpeedEnabled = state
+ reloadTurbo()
+ }
+
+ fun reloadTurbo() {
+ val context = CitraApplication.appContext
+ val toastMessage: String
+
+ if (turboSpeedEnabled) {
+ NativeLibrary.setTemporaryFrameLimit(IntSetting.TURBO_SPEED.int.toDouble())
+ toastMessage = context.getString(R.string.turbo_enabled_toast)
+ } else {
+ NativeLibrary.disableTemporaryFrameLimit()
+ toastMessage = context.getString(R.string.turbo_disabled_toast)
+ }
+
+ Toast.makeText(context, toastMessage, Toast.LENGTH_SHORT).show()
+ }
+}
diff --git a/src/android/app/src/main/jni/default_ini.h b/src/android/app/src/main/jni/default_ini.h
index ce3e00b41..879d58c7d 100644
--- a/src/android/app/src/main/jni/default_ini.h
+++ b/src/android/app/src/main/jni/default_ini.h
@@ -156,6 +156,10 @@ use_frame_limit =
# 1 - 9999: Speed limit as a percentage of target game speed. 100 (default)
frame_limit =
+# Alternative frame limit which can be triggered by the user
+# 1 - 9999: Speed limit as a percentage of target game speed. 100 (default)
+turbo_speed =
+
# The clear color for the renderer. What shows up on the sides of the bottom screen.
# Must be in range of 0.0-1.0. Defaults to 0.0 for all.
bg_red =
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index 02cc329af..7041edaee 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -781,4 +781,14 @@ void Java_org_citra_citra_1emu_NativeLibrary_unlinkConsole(JNIEnv* env, jobject
HW::UniqueData::UnlinkConsole();
}
+void Java_org_citra_citra_1emu_NativeLibrary_setTemporaryFrameLimit(JNIEnv* env, jobject obj,
+ jdouble speed) {
+ Settings::temporary_frame_limit = speed;
+ Settings::is_temporary_frame_limit = true;
+}
+
+void Java_org_citra_citra_1emu_NativeLibrary_disableTemporaryFrameLimit(JNIEnv* env, jobject obj) {
+ Settings::is_temporary_frame_limit = false;
+}
+
} // extern "C"
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 09030ad80..70eec1d2a 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -146,6 +146,8 @@
ZR
This control must be bound to a gamepad analog stick or D-pad axis!
This control must be bound to a gamepad button!
+ Turbo Speed Enabled
+ Turbo Speed Disabled
System Files
diff --git a/src/citra_qt/citra_qt.cpp b/src/citra_qt/citra_qt.cpp
index 9ab6f82ef..728aabf55 100644
--- a/src/citra_qt/citra_qt.cpp
+++ b/src/citra_qt/citra_qt.cpp
@@ -813,10 +813,10 @@ void GMainWindow::InitializeHotkeys() {
connect_shortcut(QStringLiteral("Toggle Custom Textures"),
[&] { Settings::values.custom_textures = !Settings::values.custom_textures; });
- connect_shortcut(QStringLiteral("Toggle Turbo Mode"), &GMainWindow::ToggleEmulationSpeed);
+ connect_shortcut(QStringLiteral("Toggle Turbo Mode"),
+ [&] { GMainWindow::SetTurboEnabled(!GMainWindow::IsTurboEnabled()); });
connect_shortcut(QStringLiteral("Increase Speed Limit"), [&] { AdjustSpeedLimit(true); });
-
connect_shortcut(QStringLiteral("Decrease Speed Limit"), [&] { AdjustSpeedLimit(false); });
connect_shortcut(QStringLiteral("Audio Mute/Unmute"), &GMainWindow::OnMute);
@@ -2380,7 +2380,6 @@ void GMainWindow::OnMenuRecentFile() {
}
void GMainWindow::OnStartGame() {
- GetInitialFrameLimit();
qt_cameras->ResumeCameras();
PreventOSSleep();
@@ -2440,11 +2439,7 @@ void GMainWindow::OnPauseContinueGame() {
}
void GMainWindow::OnStopGame() {
- if (turbo_mode_active) {
- turbo_mode_active = false;
- Settings::values.frame_limit.SetValue(initial_frame_limit);
- UpdateStatusBar();
- }
+ SetTurboEnabled(false);
play_time_manager->Stop();
// Update game list to show new play time
@@ -2597,52 +2592,48 @@ void GMainWindow::ChangeSmallScreenPosition() {
UpdateSecondaryWindowVisibility();
}
-void GMainWindow::GetInitialFrameLimit() {
- initial_frame_limit = Settings::values.frame_limit.GetValue();
- turbo_mode_active = false;
+bool GMainWindow::IsTurboEnabled() {
+ return turbo_mode_active;
}
-void GMainWindow::ToggleEmulationSpeed() {
- static bool key_pressed = false; // Prevent spam on hold
+void GMainWindow::SetTurboEnabled(bool state) {
+ turbo_mode_active = state;
+ GMainWindow::ReloadTurbo();
+}
- if (!key_pressed) {
- key_pressed = true;
- turbo_mode_active = !turbo_mode_active;
-
- if (turbo_mode_active) {
- Settings::values.frame_limit.SetValue(Settings::values.turbo_speed.GetValue());
- } else {
- Settings::values.frame_limit.SetValue(initial_frame_limit);
- }
-
- UpdateStatusBar();
- QTimer::singleShot(200, [] { key_pressed = false; });
+void GMainWindow::ReloadTurbo() {
+ if (IsTurboEnabled()) {
+ Settings::temporary_frame_limit = Settings::values.turbo_speed.GetValue();
+ Settings::is_temporary_frame_limit = true;
+ } else {
+ Settings::is_temporary_frame_limit = false;
}
+
+ UpdateStatusBar();
}
+// TODO: This should probably take in something more descriptive than a bool. -OS
void GMainWindow::AdjustSpeedLimit(bool increase) {
- if (!turbo_mode_active) {
- return;
- }
-
const int SPEED_LIMIT_STEP = 5;
- int turbo_speed = Settings::values.turbo_speed.GetValue();
+ auto active_limit =
+ IsTurboEnabled() ? &Settings::values.turbo_speed : &Settings::values.frame_limit;
+ const auto active_limit_value = active_limit->GetValue();
if (increase) {
- if (turbo_speed < 995) {
- Settings::values.turbo_speed.SetValue(turbo_speed + SPEED_LIMIT_STEP);
- Settings::values.frame_limit.SetValue(turbo_speed + SPEED_LIMIT_STEP);
+ if (active_limit_value < 995) {
+ active_limit->SetValue(active_limit_value + SPEED_LIMIT_STEP);
}
} else {
- if (turbo_speed > SPEED_LIMIT_STEP) {
- Settings::values.turbo_speed.SetValue(turbo_speed - SPEED_LIMIT_STEP);
- Settings::values.frame_limit.SetValue(turbo_speed - SPEED_LIMIT_STEP);
+ if (active_limit_value > SPEED_LIMIT_STEP) {
+ active_limit->SetValue(active_limit_value - SPEED_LIMIT_STEP);
}
}
- if (turbo_mode_active) {
- UpdateStatusBar();
+ if (IsTurboEnabled()) {
+ ReloadTurbo();
}
+
+ UpdateStatusBar();
}
void GMainWindow::ToggleScreenLayout() {
@@ -2762,6 +2753,7 @@ void GMainWindow::OnConfigure() {
} else {
setMouseTracking(false);
}
+ ReloadTurbo();
UpdateSecondaryWindowVisibility();
UpdateBootHomeMenuState();
UpdateStatusButtons();
diff --git a/src/citra_qt/citra_qt.h b/src/citra_qt/citra_qt.h
index df16ffeac..90fba44c0 100644
--- a/src/citra_qt/citra_qt.h
+++ b/src/citra_qt/citra_qt.h
@@ -222,7 +222,6 @@ private:
private slots:
void OnStartGame();
- void GetInitialFrameLimit();
void OnRestartGame();
void OnPauseGame();
void OnPauseContinueGame();
@@ -261,7 +260,9 @@ private slots:
void ToggleSecondaryFullscreen();
void ChangeScreenLayout();
void ChangeSmallScreenPosition();
- void ToggleEmulationSpeed();
+ bool IsTurboEnabled();
+ void SetTurboEnabled(bool);
+ void ReloadTurbo();
void AdjustSpeedLimit(bool increase);
void UpdateSecondaryWindowVisibility();
void ToggleScreenLayout();
@@ -411,8 +412,6 @@ private:
u32 newest_slot;
u64 newest_slot_time;
- int initial_frame_limit;
-
// Secondary window actions
QAction* action_secondary_fullscreen;
QAction* action_secondary_toggle_screen;
diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp
index 97aeebb99..fa10f7854 100644
--- a/src/citra_qt/configuration/config.cpp
+++ b/src/citra_qt/configuration/config.cpp
@@ -685,6 +685,7 @@ void QtConfig::ReadRendererValues() {
ReadGlobalSetting(Settings::values.use_vsync_new);
ReadGlobalSetting(Settings::values.resolution_factor);
ReadGlobalSetting(Settings::values.frame_limit);
+ ReadGlobalSetting(Settings::values.turbo_speed);
ReadGlobalSetting(Settings::values.bg_red);
ReadGlobalSetting(Settings::values.bg_green);
@@ -811,7 +812,6 @@ void QtConfig::ReadUIValues() {
ReadBasicSetting(UISettings::values.display_titlebar);
ReadBasicSetting(UISettings::values.show_filter_bar);
ReadBasicSetting(UISettings::values.show_status_bar);
- ReadBasicSetting(Settings::values.turbo_speed);
ReadBasicSetting(UISettings::values.confirm_before_closing);
ReadBasicSetting(UISettings::values.save_state_warning);
ReadBasicSetting(UISettings::values.first_start);
@@ -1212,6 +1212,7 @@ void QtConfig::SaveRendererValues() {
WriteGlobalSetting(Settings::values.use_vsync_new);
WriteGlobalSetting(Settings::values.resolution_factor);
WriteGlobalSetting(Settings::values.frame_limit);
+ WriteGlobalSetting(Settings::values.turbo_speed);
WriteGlobalSetting(Settings::values.bg_red);
WriteGlobalSetting(Settings::values.bg_green);
@@ -1322,7 +1323,6 @@ void QtConfig::SaveUIValues() {
WriteBasicSetting(UISettings::values.show_filter_bar);
WriteBasicSetting(UISettings::values.show_status_bar);
WriteBasicSetting(UISettings::values.confirm_before_closing);
- WriteBasicSetting(Settings::values.turbo_speed);
WriteBasicSetting(UISettings::values.save_state_warning);
WriteBasicSetting(UISettings::values.first_start);
WriteBasicSetting(UISettings::values.callout_flags);
diff --git a/src/citra_qt/configuration/configure_dialog.cpp b/src/citra_qt/configuration/configure_dialog.cpp
index de7c92f99..0f0fe2e71 100644
--- a/src/citra_qt/configuration/configure_dialog.cpp
+++ b/src/citra_qt/configuration/configure_dialog.cpp
@@ -28,7 +28,7 @@ ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_, Cor
bool enable_web_config)
: QDialog(parent), ui{std::make_unique()}, registry{registry_},
system{system_}, is_powered_on{system.IsPoweredOn()},
- general_tab{std::make_unique(is_powered_on, this)},
+ general_tab{std::make_unique(this)},
system_tab{std::make_unique(system, this)},
input_tab{std::make_unique(system, this)},
hotkeys_tab{std::make_unique(this)},
diff --git a/src/citra_qt/configuration/configure_general.cpp b/src/citra_qt/configuration/configure_general.cpp
index 21b625e56..fb7821c3e 100644
--- a/src/citra_qt/configuration/configure_general.cpp
+++ b/src/citra_qt/configuration/configure_general.cpp
@@ -24,11 +24,11 @@ static constexpr int SettingsToSlider(int value) {
return (value - 5) / 5;
}
-ConfigureGeneral::ConfigureGeneral(bool is_powered_on, QWidget* parent)
- : QWidget(parent), ui(std::make_unique()), is_powered_on{is_powered_on} {
+ConfigureGeneral::ConfigureGeneral(QWidget* parent)
+ : QWidget(parent), ui(std::make_unique()) {
ui->setupUi(this);
- connect(ui->turbo_speed, &QSlider::valueChanged, this, [&](int value) {
+ connect(ui->turbo_speed, &QSlider::valueChanged, this, [&](double value) {
Settings::values.turbo_speed.SetValue(SliderToSettings(value));
ui->turbo_speed_display_label->setText(
QStringLiteral("%1%").arg(Settings::values.turbo_speed.GetValue()));
@@ -112,10 +112,7 @@ void ConfigureGeneral::SetConfiguration() {
}
if (!Settings::IsConfiguringGlobal()) {
- if (is_powered_on) {
- ui->emulation_speed_combo->setEnabled(false);
- ui->frame_limit->setEnabled(false);
- } else if (Settings::values.frame_limit.UsingGlobal()) {
+ if (Settings::values.frame_limit.UsingGlobal()) {
ui->emulation_speed_combo->setCurrentIndex(0);
ui->frame_limit->setEnabled(false);
} else {
@@ -194,11 +191,7 @@ void ConfigureGeneral::RetranslateUI() {
void ConfigureGeneral::SetupPerGameUI() {
if (Settings::IsConfiguringGlobal()) {
- if (is_powered_on) {
- ui->frame_limit->setEnabled(false);
- } else {
- ui->frame_limit->setEnabled(Settings::values.frame_limit.UsingGlobal());
- }
+ ui->frame_limit->setEnabled(Settings::values.frame_limit.UsingGlobal());
return;
}
diff --git a/src/citra_qt/configuration/configure_general.h b/src/citra_qt/configuration/configure_general.h
index 2d401f55d..93a855387 100644
--- a/src/citra_qt/configuration/configure_general.h
+++ b/src/citra_qt/configuration/configure_general.h
@@ -17,7 +17,7 @@ class ConfigureGeneral : public QWidget {
Q_OBJECT
public:
- explicit ConfigureGeneral(bool is_powered_on, QWidget* parent = nullptr);
+ explicit ConfigureGeneral(QWidget* parent = nullptr);
~ConfigureGeneral() override;
void ResetDefaults();
@@ -29,5 +29,4 @@ public:
private:
std::unique_ptr ui;
- bool is_powered_on;
};
diff --git a/src/citra_qt/configuration/configure_per_game.cpp b/src/citra_qt/configuration/configure_per_game.cpp
index 130ae02db..1a943d732 100644
--- a/src/citra_qt/configuration/configure_per_game.cpp
+++ b/src/citra_qt/configuration/configure_per_game.cpp
@@ -40,7 +40,7 @@ ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const QString
const bool is_powered_on = system.IsPoweredOn();
audio_tab = std::make_unique(is_powered_on, this);
- general_tab = std::make_unique(is_powered_on, this);
+ general_tab = std::make_unique(this);
enhancements_tab = std::make_unique(this);
layout_tab = std::make_unique(this);
graphics_tab =
diff --git a/src/common/settings.h b/src/common/settings.h
index 8d148bbd7..9b0d79a57 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -498,7 +498,7 @@ struct Values {
Setting use_shader_jit{true, "use_shader_jit"};
SwitchableSetting resolution_factor{1, 0, 10, "resolution_factor"};
SwitchableSetting frame_limit{100, 0, 1000, "frame_limit"};
- SwitchableSetting turbo_speed{200, 0, 1000, "turbo_speed"};
+ SwitchableSetting turbo_speed{200, 0, 1000, "turbo_speed"};
SwitchableSetting texture_filter{TextureFilter::NoFilter, "texture_filter"};
SwitchableSetting texture_sampling{TextureSampling::GameControlled,
"texture_sampling"};