summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/configuration')
-rw-r--r--src/yuzu/configuration/config.cpp10
-rw-r--r--src/yuzu/configuration/configure_general.cpp50
-rw-r--r--src/yuzu/configuration/configure_general.h2
-rw-r--r--src/yuzu/configuration/configure_general.ui34
-rw-r--r--src/yuzu/configuration/configure_graphics.cpp2
5 files changed, 67 insertions, 31 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 85c37b842..ecd5dfac1 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -806,8 +806,8 @@ void Config::ReadRendererValues() {
ReadGlobalSetting(Settings::values.fullscreen_mode);
ReadGlobalSetting(Settings::values.aspect_ratio);
ReadGlobalSetting(Settings::values.max_anisotropy);
- ReadGlobalSetting(Settings::values.use_frame_limit);
- ReadGlobalSetting(Settings::values.frame_limit);
+ ReadGlobalSetting(Settings::values.use_speed_limit);
+ ReadGlobalSetting(Settings::values.speed_limit);
ReadGlobalSetting(Settings::values.use_disk_shader_cache);
ReadGlobalSetting(Settings::values.gpu_accuracy);
ReadGlobalSetting(Settings::values.use_asynchronous_gpu_emulation);
@@ -823,6 +823,7 @@ void Config::ReadRendererValues() {
ReadGlobalSetting(Settings::values.bg_blue);
if (global) {
+ ReadBasicSetting(Settings::values.fps_cap);
ReadBasicSetting(Settings::values.renderer_debug);
ReadBasicSetting(Settings::values.enable_nsight_aftermath);
ReadBasicSetting(Settings::values.disable_shader_loop_safety_checks);
@@ -1337,8 +1338,8 @@ void Config::SaveRendererValues() {
Settings::values.fullscreen_mode.UsingGlobal());
WriteGlobalSetting(Settings::values.aspect_ratio);
WriteGlobalSetting(Settings::values.max_anisotropy);
- WriteGlobalSetting(Settings::values.use_frame_limit);
- WriteGlobalSetting(Settings::values.frame_limit);
+ WriteGlobalSetting(Settings::values.use_speed_limit);
+ WriteGlobalSetting(Settings::values.speed_limit);
WriteGlobalSetting(Settings::values.use_disk_shader_cache);
WriteSetting(QString::fromStdString(Settings::values.gpu_accuracy.GetLabel()),
static_cast<u32>(Settings::values.gpu_accuracy.GetValue(global)),
@@ -1360,6 +1361,7 @@ void Config::SaveRendererValues() {
WriteGlobalSetting(Settings::values.bg_blue);
if (global) {
+ WriteBasicSetting(Settings::values.fps_cap);
WriteBasicSetting(Settings::values.renderer_debug);
WriteBasicSetting(Settings::values.enable_nsight_aftermath);
WriteBasicSetting(Settings::values.disable_shader_loop_safety_checks);
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp
index 18f25def6..1f647a0d1 100644
--- a/src/yuzu/configuration/configure_general.cpp
+++ b/src/yuzu/configuration/configure_general.cpp
@@ -24,8 +24,8 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent)
SetConfiguration();
if (Settings::IsConfiguringGlobal()) {
- connect(ui->toggle_frame_limit, &QCheckBox::clicked, ui->frame_limit,
- [this]() { ui->frame_limit->setEnabled(ui->toggle_frame_limit->isChecked()); });
+ connect(ui->toggle_speed_limit, &QCheckBox::clicked, ui->speed_limit,
+ [this]() { ui->speed_limit->setEnabled(ui->toggle_speed_limit->isChecked()); });
}
connect(ui->button_reset_defaults, &QPushButton::clicked, this,
@@ -45,16 +45,18 @@ void ConfigureGeneral::SetConfiguration() {
ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue());
ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue());
- ui->toggle_frame_limit->setChecked(Settings::values.use_frame_limit.GetValue());
- ui->frame_limit->setValue(Settings::values.frame_limit.GetValue());
+ ui->toggle_speed_limit->setChecked(Settings::values.use_speed_limit.GetValue());
+ ui->speed_limit->setValue(Settings::values.speed_limit.GetValue());
+
+ ui->fps_cap->setValue(Settings::values.fps_cap.GetValue());
ui->button_reset_defaults->setEnabled(runtime_lock);
if (Settings::IsConfiguringGlobal()) {
- ui->frame_limit->setEnabled(Settings::values.use_frame_limit.GetValue());
+ ui->speed_limit->setEnabled(Settings::values.use_speed_limit.GetValue());
} else {
- ui->frame_limit->setEnabled(Settings::values.use_frame_limit.GetValue() &&
- use_frame_limit != ConfigurationShared::CheckState::Global);
+ ui->speed_limit->setEnabled(Settings::values.use_speed_limit.GetValue() &&
+ use_speed_limit != ConfigurationShared::CheckState::Global);
}
}
@@ -87,20 +89,22 @@ void ConfigureGeneral::ApplyConfiguration() {
UISettings::values.pause_when_in_background = ui->toggle_background_pause->isChecked();
UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked();
+ Settings::values.fps_cap.SetValue(ui->fps_cap->value());
+
// Guard if during game and set to game-specific value
- if (Settings::values.use_frame_limit.UsingGlobal()) {
- Settings::values.use_frame_limit.SetValue(ui->toggle_frame_limit->checkState() ==
+ if (Settings::values.use_speed_limit.UsingGlobal()) {
+ Settings::values.use_speed_limit.SetValue(ui->toggle_speed_limit->checkState() ==
Qt::Checked);
- Settings::values.frame_limit.SetValue(ui->frame_limit->value());
+ Settings::values.speed_limit.SetValue(ui->speed_limit->value());
}
} else {
- bool global_frame_limit = use_frame_limit == ConfigurationShared::CheckState::Global;
- Settings::values.use_frame_limit.SetGlobal(global_frame_limit);
- Settings::values.frame_limit.SetGlobal(global_frame_limit);
- if (!global_frame_limit) {
- Settings::values.use_frame_limit.SetValue(ui->toggle_frame_limit->checkState() ==
+ bool global_speed_limit = use_speed_limit == ConfigurationShared::CheckState::Global;
+ Settings::values.use_speed_limit.SetGlobal(global_speed_limit);
+ Settings::values.speed_limit.SetGlobal(global_speed_limit);
+ if (!global_speed_limit) {
+ Settings::values.use_speed_limit.SetValue(ui->toggle_speed_limit->checkState() ==
Qt::Checked);
- Settings::values.frame_limit.SetValue(ui->frame_limit->value());
+ Settings::values.speed_limit.SetValue(ui->speed_limit->value());
}
}
}
@@ -122,8 +126,8 @@ void ConfigureGeneral::SetupPerGameUI() {
// Disables each setting if:
// - A game is running (thus settings in use), and
// - A non-global setting is applied.
- ui->toggle_frame_limit->setEnabled(Settings::values.use_frame_limit.UsingGlobal());
- ui->frame_limit->setEnabled(Settings::values.frame_limit.UsingGlobal());
+ ui->toggle_speed_limit->setEnabled(Settings::values.use_speed_limit.UsingGlobal());
+ ui->speed_limit->setEnabled(Settings::values.speed_limit.UsingGlobal());
return;
}
@@ -135,13 +139,13 @@ void ConfigureGeneral::SetupPerGameUI() {
ui->button_reset_defaults->setVisible(false);
- ConfigurationShared::SetColoredTristate(ui->toggle_frame_limit,
- Settings::values.use_frame_limit, use_frame_limit);
+ ConfigurationShared::SetColoredTristate(ui->toggle_speed_limit,
+ Settings::values.use_speed_limit, use_speed_limit);
ConfigurationShared::SetColoredTristate(ui->use_multi_core, Settings::values.use_multi_core,
use_multi_core);
- connect(ui->toggle_frame_limit, &QCheckBox::clicked, ui->frame_limit, [this]() {
- ui->frame_limit->setEnabled(ui->toggle_frame_limit->isChecked() &&
- (use_frame_limit != ConfigurationShared::CheckState::Global));
+ connect(ui->toggle_speed_limit, &QCheckBox::clicked, ui->speed_limit, [this]() {
+ ui->speed_limit->setEnabled(ui->toggle_speed_limit->isChecked() &&
+ (use_speed_limit != ConfigurationShared::CheckState::Global));
});
}
diff --git a/src/yuzu/configuration/configure_general.h b/src/yuzu/configuration/configure_general.h
index a0fd52492..c9df37d73 100644
--- a/src/yuzu/configuration/configure_general.h
+++ b/src/yuzu/configuration/configure_general.h
@@ -43,6 +43,6 @@ private:
std::unique_ptr<Ui::ConfigureGeneral> ui;
- ConfigurationShared::CheckState use_frame_limit;
+ ConfigurationShared::CheckState use_speed_limit;
ConfigurationShared::CheckState use_multi_core;
};
diff --git a/src/yuzu/configuration/configure_general.ui b/src/yuzu/configuration/configure_general.ui
index bc7041090..8ce97edec 100644
--- a/src/yuzu/configuration/configure_general.ui
+++ b/src/yuzu/configuration/configure_general.ui
@@ -27,14 +27,14 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
- <widget class="QCheckBox" name="toggle_frame_limit">
+ <widget class="QCheckBox" name="toggle_speed_limit">
<property name="text">
<string>Limit Speed Percent</string>
</property>
</widget>
</item>
<item>
- <widget class="QSpinBox" name="frame_limit">
+ <widget class="QSpinBox" name="speed_limit">
<property name="suffix">
<string>%</string>
</property>
@@ -52,6 +52,36 @@
</layout>
</item>
<item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="fps_cap_label">
+ <property name="text">
+ <string>Framerate Cap</string>
+ </property>
+ <property name="toolTip">
+ <string>Requires the use of the FPS Limiter Toggle hotkey to take effect.</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="fps_cap">
+ <property name="suffix">
+ <string>x</string>
+ </property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>1000</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<widget class="QCheckBox" name="use_multi_core">
<property name="text">
<string>Multicore CPU Emulation</string>
diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp
index 4a5b17740..37e896258 100644
--- a/src/yuzu/configuration/configure_graphics.cpp
+++ b/src/yuzu/configuration/configure_graphics.cpp
@@ -31,7 +31,7 @@ ConfigureGraphics::ConfigureGraphics(QWidget* parent)
}
ui->backend->addItem(QStringLiteral("GLSL"));
- ui->backend->addItem(tr("GLASM (NVIDIA Only)"));
+ ui->backend->addItem(tr("GLASM (Assembly Shaders, NVIDIA Only)"));
ui->backend->addItem(QStringLiteral("SPIR-V (Experimental, Mesa Only)"));
SetupPerGameUI();