summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ameerj2021-07-22 19:56:21 -0400
committerGravatar ameerj2021-07-23 22:10:01 -0400
commit9dfbc9bdce15c299faf06aa7bf68a8660366daee (patch)
tree83ae648f51b4d0d2bb484741f86f5fb9bce8d00b /src
parentMerge pull request #6686 from ReinUsesLisp/vk-optimal-copy (diff)
downloadyuzu-9dfbc9bdce15c299faf06aa7bf68a8660366daee.tar.gz
yuzu-9dfbc9bdce15c299faf06aa7bf68a8660366daee.tar.xz
yuzu-9dfbc9bdce15c299faf06aa7bf68a8660366daee.zip
general: Rename "Frame Limit" references to "Speed Limit"
This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate. This allows us to differentiate it from the fps unlocker setting.
Diffstat (limited to 'src')
-rw-r--r--src/common/settings.cpp8
-rw-r--r--src/common/settings.h4
-rw-r--r--src/core/core.cpp10
-rw-r--r--src/core/core.h10
-rw-r--r--src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp2
-rw-r--r--src/core/perf_stats.cpp20
-rw-r--r--src/core/perf_stats.h6
-rw-r--r--src/core/telemetry_session.cpp4
-rw-r--r--src/video_core/renderer_base.cpp2
-rw-r--r--src/yuzu/configuration/config.cpp8
-rw-r--r--src/yuzu/configuration/configure_general.cpp46
-rw-r--r--src/yuzu/configuration/configure_general.h2
-rw-r--r--src/yuzu/configuration/configure_general.ui4
-rw-r--r--src/yuzu/main.cpp18
-rw-r--r--src/yuzu_cmd/config.cpp4
-rw-r--r--src/yuzu_cmd/default_ini.h6
16 files changed, 77 insertions, 77 deletions
diff --git a/src/common/settings.cpp b/src/common/settings.cpp
index bf5514386..b880e1f9a 100644
--- a/src/common/settings.cpp
+++ b/src/common/settings.cpp
@@ -48,8 +48,8 @@ void LogSettings() {
48 log_setting("Core_UseMultiCore", values.use_multi_core.GetValue()); 48 log_setting("Core_UseMultiCore", values.use_multi_core.GetValue());
49 log_setting("CPU_Accuracy", values.cpu_accuracy.GetValue()); 49 log_setting("CPU_Accuracy", values.cpu_accuracy.GetValue());
50 log_setting("Renderer_UseResolutionFactor", values.resolution_factor.GetValue()); 50 log_setting("Renderer_UseResolutionFactor", values.resolution_factor.GetValue());
51 log_setting("Renderer_UseFrameLimit", values.use_frame_limit.GetValue()); 51 log_setting("Renderer_UseSpeedLimit", values.use_speed_limit.GetValue());
52 log_setting("Renderer_FrameLimit", values.frame_limit.GetValue()); 52 log_setting("Renderer_SpeedLimit", values.speed_limit.GetValue());
53 log_setting("Renderer_UseDiskShaderCache", values.use_disk_shader_cache.GetValue()); 53 log_setting("Renderer_UseDiskShaderCache", values.use_disk_shader_cache.GetValue());
54 log_setting("Renderer_GPUAccuracyLevel", values.gpu_accuracy.GetValue()); 54 log_setting("Renderer_GPUAccuracyLevel", values.gpu_accuracy.GetValue());
55 log_setting("Renderer_UseAsynchronousGpuEmulation", 55 log_setting("Renderer_UseAsynchronousGpuEmulation",
@@ -132,8 +132,8 @@ void RestoreGlobalState(bool is_powered_on) {
132 values.vulkan_device.SetGlobal(true); 132 values.vulkan_device.SetGlobal(true);
133 values.aspect_ratio.SetGlobal(true); 133 values.aspect_ratio.SetGlobal(true);
134 values.max_anisotropy.SetGlobal(true); 134 values.max_anisotropy.SetGlobal(true);
135 values.use_frame_limit.SetGlobal(true); 135 values.use_speed_limit.SetGlobal(true);
136 values.frame_limit.SetGlobal(true); 136 values.speed_limit.SetGlobal(true);
137 values.use_disk_shader_cache.SetGlobal(true); 137 values.use_disk_shader_cache.SetGlobal(true);
138 values.gpu_accuracy.SetGlobal(true); 138 values.gpu_accuracy.SetGlobal(true);
139 values.use_asynchronous_gpu_emulation.SetGlobal(true); 139 values.use_asynchronous_gpu_emulation.SetGlobal(true);
diff --git a/src/common/settings.h b/src/common/settings.h
index ce1bc647d..7f649fdc6 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -322,8 +322,8 @@ struct Values {
322 "fullscreen_mode"}; 322 "fullscreen_mode"};
323 Setting<int> aspect_ratio{0, "aspect_ratio"}; 323 Setting<int> aspect_ratio{0, "aspect_ratio"};
324 Setting<int> max_anisotropy{0, "max_anisotropy"}; 324 Setting<int> max_anisotropy{0, "max_anisotropy"};
325 Setting<bool> use_frame_limit{true, "use_frame_limit"}; 325 Setting<bool> use_speed_limit{true, "use_speed_limit"};
326 Setting<u16> frame_limit{100, "frame_limit"}; 326 Setting<u16> speed_limit{100, "speed_limit"};
327 Setting<bool> use_disk_shader_cache{true, "use_disk_shader_cache"}; 327 Setting<bool> use_disk_shader_cache{true, "use_disk_shader_cache"};
328 Setting<GPUAccuracy> gpu_accuracy{GPUAccuracy::High, "gpu_accuracy"}; 328 Setting<GPUAccuracy> gpu_accuracy{GPUAccuracy::High, "gpu_accuracy"};
329 Setting<bool> use_asynchronous_gpu_emulation{true, "use_asynchronous_gpu_emulation"}; 329 Setting<bool> use_asynchronous_gpu_emulation{true, "use_asynchronous_gpu_emulation"};
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 15226cf41..d3e84c4ef 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -411,7 +411,7 @@ struct System::Impl {
411 std::string status_details = ""; 411 std::string status_details = "";
412 412
413 std::unique_ptr<Core::PerfStats> perf_stats; 413 std::unique_ptr<Core::PerfStats> perf_stats;
414 Core::FrameLimiter frame_limiter; 414 Core::SpeedLimiter speed_limiter;
415 415
416 bool is_multicore{}; 416 bool is_multicore{};
417 bool is_async_gpu{}; 417 bool is_async_gpu{};
@@ -606,12 +606,12 @@ const Core::PerfStats& System::GetPerfStats() const {
606 return *impl->perf_stats; 606 return *impl->perf_stats;
607} 607}
608 608
609Core::FrameLimiter& System::FrameLimiter() { 609Core::SpeedLimiter& System::SpeedLimiter() {
610 return impl->frame_limiter; 610 return impl->speed_limiter;
611} 611}
612 612
613const Core::FrameLimiter& System::FrameLimiter() const { 613const Core::SpeedLimiter& System::SpeedLimiter() const {
614 return impl->frame_limiter; 614 return impl->speed_limiter;
615} 615}
616 616
617Loader::ResultStatus System::GetGameName(std::string& out) const { 617Loader::ResultStatus System::GetGameName(std::string& out) const {
diff --git a/src/core/core.h b/src/core/core.h
index b93c32e60..ea143043c 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -94,7 +94,7 @@ class ARM_Interface;
94class CpuManager; 94class CpuManager;
95class DeviceMemory; 95class DeviceMemory;
96class ExclusiveMonitor; 96class ExclusiveMonitor;
97class FrameLimiter; 97class SpeedLimiter;
98class PerfStats; 98class PerfStats;
99class Reporter; 99class Reporter;
100class TelemetrySession; 100class TelemetrySession;
@@ -292,11 +292,11 @@ public:
292 /// Provides a constant reference to the internal PerfStats instance. 292 /// Provides a constant reference to the internal PerfStats instance.
293 [[nodiscard]] const Core::PerfStats& GetPerfStats() const; 293 [[nodiscard]] const Core::PerfStats& GetPerfStats() const;
294 294
295 /// Provides a reference to the frame limiter; 295 /// Provides a reference to the speed limiter;
296 [[nodiscard]] Core::FrameLimiter& FrameLimiter(); 296 [[nodiscard]] Core::SpeedLimiter& SpeedLimiter();
297 297
298 /// Provides a constant referent to the frame limiter 298 /// Provides a constant reference to the speed limiter
299 [[nodiscard]] const Core::FrameLimiter& FrameLimiter() const; 299 [[nodiscard]] const Core::SpeedLimiter& SpeedLimiter() const;
300 300
301 /// Gets the name of the current game 301 /// Gets the name of the current game
302 [[nodiscard]] Loader::ResultStatus GetGameName(std::string& out) const; 302 [[nodiscard]] Loader::ResultStatus GetGameName(std::string& out) const;
diff --git a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
index 2cc0da124..ce6065db2 100644
--- a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
@@ -54,7 +54,7 @@ void nvdisp_disp0::flip(u32 buffer_handle, u32 offset, u32 format, u32 width, u3
54 54
55 system.GetPerfStats().EndSystemFrame(); 55 system.GetPerfStats().EndSystemFrame();
56 system.GPU().SwapBuffers(&framebuffer); 56 system.GPU().SwapBuffers(&framebuffer);
57 system.FrameLimiter().DoFrameLimiting(system.CoreTiming().GetGlobalTimeUs()); 57 system.SpeedLimiter().DoSpeedLimiting(system.CoreTiming().GetGlobalTimeUs());
58 system.GetPerfStats().BeginSystemFrame(); 58 system.GetPerfStats().BeginSystemFrame();
59} 59}
60 60
diff --git a/src/core/perf_stats.cpp b/src/core/perf_stats.cpp
index 6635a1339..c9ded49d0 100644
--- a/src/core/perf_stats.cpp
+++ b/src/core/perf_stats.cpp
@@ -127,15 +127,15 @@ double PerfStats::GetLastFrameTimeScale() const {
127 return duration_cast<DoubleSecs>(previous_frame_length).count() / FRAME_LENGTH; 127 return duration_cast<DoubleSecs>(previous_frame_length).count() / FRAME_LENGTH;
128} 128}
129 129
130void FrameLimiter::DoFrameLimiting(microseconds current_system_time_us) { 130void SpeedLimiter::DoSpeedLimiting(microseconds current_system_time_us) {
131 if (!Settings::values.use_frame_limit.GetValue() || 131 if (!Settings::values.use_speed_limit.GetValue() ||
132 Settings::values.use_multi_core.GetValue()) { 132 Settings::values.use_multi_core.GetValue()) {
133 return; 133 return;
134 } 134 }
135 135
136 auto now = Clock::now(); 136 auto now = Clock::now();
137 137
138 const double sleep_scale = Settings::values.frame_limit.GetValue() / 100.0; 138 const double sleep_scale = Settings::values.speed_limit.GetValue() / 100.0;
139 139
140 // Max lag caused by slow frames. Shouldn't be more than the length of a frame at the current 140 // Max lag caused by slow frames. Shouldn't be more than the length of a frame at the current
141 // speed percent or it will clamp too much and prevent this from properly limiting to that 141 // speed percent or it will clamp too much and prevent this from properly limiting to that
@@ -143,17 +143,17 @@ void FrameLimiter::DoFrameLimiting(microseconds current_system_time_us) {
143 // limiting 143 // limiting
144 const microseconds max_lag_time_us = duration_cast<microseconds>( 144 const microseconds max_lag_time_us = duration_cast<microseconds>(
145 std::chrono::duration<double, std::chrono::microseconds::period>(25ms / sleep_scale)); 145 std::chrono::duration<double, std::chrono::microseconds::period>(25ms / sleep_scale));
146 frame_limiting_delta_err += duration_cast<microseconds>( 146 speed_limiting_delta_err += duration_cast<microseconds>(
147 std::chrono::duration<double, std::chrono::microseconds::period>( 147 std::chrono::duration<double, std::chrono::microseconds::period>(
148 (current_system_time_us - previous_system_time_us) / sleep_scale)); 148 (current_system_time_us - previous_system_time_us) / sleep_scale));
149 frame_limiting_delta_err -= duration_cast<microseconds>(now - previous_walltime); 149 speed_limiting_delta_err -= duration_cast<microseconds>(now - previous_walltime);
150 frame_limiting_delta_err = 150 speed_limiting_delta_err =
151 std::clamp(frame_limiting_delta_err, -max_lag_time_us, max_lag_time_us); 151 std::clamp(speed_limiting_delta_err, -max_lag_time_us, max_lag_time_us);
152 152
153 if (frame_limiting_delta_err > microseconds::zero()) { 153 if (speed_limiting_delta_err > microseconds::zero()) {
154 std::this_thread::sleep_for(frame_limiting_delta_err); 154 std::this_thread::sleep_for(speed_limiting_delta_err);
155 auto now_after_sleep = Clock::now(); 155 auto now_after_sleep = Clock::now();
156 frame_limiting_delta_err -= duration_cast<microseconds>(now_after_sleep - now); 156 speed_limiting_delta_err -= duration_cast<microseconds>(now_after_sleep - now);
157 now = now_after_sleep; 157 now = now_after_sleep;
158 } 158 }
159 159
diff --git a/src/core/perf_stats.h b/src/core/perf_stats.h
index e5d603717..a2541906f 100644
--- a/src/core/perf_stats.h
+++ b/src/core/perf_stats.h
@@ -85,11 +85,11 @@ private:
85 double previous_fps = 0; 85 double previous_fps = 0;
86}; 86};
87 87
88class FrameLimiter { 88class SpeedLimiter {
89public: 89public:
90 using Clock = std::chrono::high_resolution_clock; 90 using Clock = std::chrono::high_resolution_clock;
91 91
92 void DoFrameLimiting(std::chrono::microseconds current_system_time_us); 92 void DoSpeedLimiting(std::chrono::microseconds current_system_time_us);
93 93
94private: 94private:
95 /// Emulated system time (in microseconds) at the last limiter invocation 95 /// Emulated system time (in microseconds) at the last limiter invocation
@@ -98,7 +98,7 @@ private:
98 Clock::time_point previous_walltime = Clock::now(); 98 Clock::time_point previous_walltime = Clock::now();
99 99
100 /// Accumulated difference between walltime and emulated time 100 /// Accumulated difference between walltime and emulated time
101 std::chrono::microseconds frame_limiting_delta_err{0}; 101 std::chrono::microseconds speed_limiting_delta_err{0};
102}; 102};
103 103
104} // namespace Core 104} // namespace Core
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index 066cb23e4..d81f6ddbd 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -221,8 +221,8 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader,
221 TranslateRenderer(Settings::values.renderer_backend.GetValue())); 221 TranslateRenderer(Settings::values.renderer_backend.GetValue()));
222 AddField(field_type, "Renderer_ResolutionFactor", 222 AddField(field_type, "Renderer_ResolutionFactor",
223 Settings::values.resolution_factor.GetValue()); 223 Settings::values.resolution_factor.GetValue());
224 AddField(field_type, "Renderer_UseFrameLimit", Settings::values.use_frame_limit.GetValue()); 224 AddField(field_type, "Renderer_UseSpeedLimit", Settings::values.use_speed_limit.GetValue());
225 AddField(field_type, "Renderer_FrameLimit", Settings::values.frame_limit.GetValue()); 225 AddField(field_type, "Renderer_SpeedLimit", Settings::values.speed_limit.GetValue());
226 AddField(field_type, "Renderer_UseDiskShaderCache", 226 AddField(field_type, "Renderer_UseDiskShaderCache",
227 Settings::values.use_disk_shader_cache.GetValue()); 227 Settings::values.use_disk_shader_cache.GetValue());
228 AddField(field_type, "Renderer_GPUAccuracyLevel", 228 AddField(field_type, "Renderer_GPUAccuracyLevel",
diff --git a/src/video_core/renderer_base.cpp b/src/video_core/renderer_base.cpp
index c9a360aaf..6fe68141f 100644
--- a/src/video_core/renderer_base.cpp
+++ b/src/video_core/renderer_base.cpp
@@ -20,7 +20,7 @@ RendererBase::~RendererBase() = default;
20void RendererBase::RefreshBaseSettings() { 20void RendererBase::RefreshBaseSettings() {
21 UpdateCurrentFramebufferLayout(); 21 UpdateCurrentFramebufferLayout();
22 22
23 renderer_settings.use_framelimiter = Settings::values.use_frame_limit.GetValue(); 23 renderer_settings.use_framelimiter = Settings::values.use_speed_limit.GetValue();
24 renderer_settings.set_background_color = true; 24 renderer_settings.set_background_color = true;
25} 25}
26 26
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index a5e032959..1423dfa90 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -806,8 +806,8 @@ void Config::ReadRendererValues() {
806 ReadGlobalSetting(Settings::values.fullscreen_mode); 806 ReadGlobalSetting(Settings::values.fullscreen_mode);
807 ReadGlobalSetting(Settings::values.aspect_ratio); 807 ReadGlobalSetting(Settings::values.aspect_ratio);
808 ReadGlobalSetting(Settings::values.max_anisotropy); 808 ReadGlobalSetting(Settings::values.max_anisotropy);
809 ReadGlobalSetting(Settings::values.use_frame_limit); 809 ReadGlobalSetting(Settings::values.use_speed_limit);
810 ReadGlobalSetting(Settings::values.frame_limit); 810 ReadGlobalSetting(Settings::values.speed_limit);
811 ReadGlobalSetting(Settings::values.use_disk_shader_cache); 811 ReadGlobalSetting(Settings::values.use_disk_shader_cache);
812 ReadGlobalSetting(Settings::values.gpu_accuracy); 812 ReadGlobalSetting(Settings::values.gpu_accuracy);
813 ReadGlobalSetting(Settings::values.use_asynchronous_gpu_emulation); 813 ReadGlobalSetting(Settings::values.use_asynchronous_gpu_emulation);
@@ -1332,8 +1332,8 @@ void Config::SaveRendererValues() {
1332 WriteGlobalSetting(Settings::values.fullscreen_mode); 1332 WriteGlobalSetting(Settings::values.fullscreen_mode);
1333 WriteGlobalSetting(Settings::values.aspect_ratio); 1333 WriteGlobalSetting(Settings::values.aspect_ratio);
1334 WriteGlobalSetting(Settings::values.max_anisotropy); 1334 WriteGlobalSetting(Settings::values.max_anisotropy);
1335 WriteGlobalSetting(Settings::values.use_frame_limit); 1335 WriteGlobalSetting(Settings::values.use_speed_limit);
1336 WriteGlobalSetting(Settings::values.frame_limit); 1336 WriteGlobalSetting(Settings::values.speed_limit);
1337 WriteGlobalSetting(Settings::values.use_disk_shader_cache); 1337 WriteGlobalSetting(Settings::values.use_disk_shader_cache);
1338 WriteSetting(QString::fromStdString(Settings::values.gpu_accuracy.GetLabel()), 1338 WriteSetting(QString::fromStdString(Settings::values.gpu_accuracy.GetLabel()),
1339 static_cast<u32>(Settings::values.gpu_accuracy.GetValue(global)), 1339 static_cast<u32>(Settings::values.gpu_accuracy.GetValue(global)),
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp
index 18f25def6..6e5d2d981 100644
--- a/src/yuzu/configuration/configure_general.cpp
+++ b/src/yuzu/configuration/configure_general.cpp
@@ -24,8 +24,8 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent)
24 SetConfiguration(); 24 SetConfiguration();
25 25
26 if (Settings::IsConfiguringGlobal()) { 26 if (Settings::IsConfiguringGlobal()) {
27 connect(ui->toggle_frame_limit, &QCheckBox::clicked, ui->frame_limit, 27 connect(ui->toggle_speed_limit, &QCheckBox::clicked, ui->speed_limit,
28 [this]() { ui->frame_limit->setEnabled(ui->toggle_frame_limit->isChecked()); }); 28 [this]() { ui->speed_limit->setEnabled(ui->toggle_speed_limit->isChecked()); });
29 } 29 }
30 30
31 connect(ui->button_reset_defaults, &QPushButton::clicked, this, 31 connect(ui->button_reset_defaults, &QPushButton::clicked, this,
@@ -45,16 +45,16 @@ void ConfigureGeneral::SetConfiguration() {
45 ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue()); 45 ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue());
46 ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue()); 46 ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue());
47 47
48 ui->toggle_frame_limit->setChecked(Settings::values.use_frame_limit.GetValue()); 48 ui->toggle_speed_limit->setChecked(Settings::values.use_speed_limit.GetValue());
49 ui->frame_limit->setValue(Settings::values.frame_limit.GetValue()); 49 ui->speed_limit->setValue(Settings::values.speed_limit.GetValue());
50 50
51 ui->button_reset_defaults->setEnabled(runtime_lock); 51 ui->button_reset_defaults->setEnabled(runtime_lock);
52 52
53 if (Settings::IsConfiguringGlobal()) { 53 if (Settings::IsConfiguringGlobal()) {
54 ui->frame_limit->setEnabled(Settings::values.use_frame_limit.GetValue()); 54 ui->speed_limit->setEnabled(Settings::values.use_speed_limit.GetValue());
55 } else { 55 } else {
56 ui->frame_limit->setEnabled(Settings::values.use_frame_limit.GetValue() && 56 ui->speed_limit->setEnabled(Settings::values.use_speed_limit.GetValue() &&
57 use_frame_limit != ConfigurationShared::CheckState::Global); 57 use_speed_limit != ConfigurationShared::CheckState::Global);
58 } 58 }
59} 59}
60 60
@@ -88,19 +88,19 @@ void ConfigureGeneral::ApplyConfiguration() {
88 UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked(); 88 UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked();
89 89
90 // Guard if during game and set to game-specific value 90 // Guard if during game and set to game-specific value
91 if (Settings::values.use_frame_limit.UsingGlobal()) { 91 if (Settings::values.use_speed_limit.UsingGlobal()) {
92 Settings::values.use_frame_limit.SetValue(ui->toggle_frame_limit->checkState() == 92 Settings::values.use_speed_limit.SetValue(ui->toggle_speed_limit->checkState() ==
93 Qt::Checked); 93 Qt::Checked);
94 Settings::values.frame_limit.SetValue(ui->frame_limit->value()); 94 Settings::values.speed_limit.SetValue(ui->speed_limit->value());
95 } 95 }
96 } else { 96 } else {
97 bool global_frame_limit = use_frame_limit == ConfigurationShared::CheckState::Global; 97 bool global_speed_limit = use_speed_limit == ConfigurationShared::CheckState::Global;
98 Settings::values.use_frame_limit.SetGlobal(global_frame_limit); 98 Settings::values.use_speed_limit.SetGlobal(global_speed_limit);
99 Settings::values.frame_limit.SetGlobal(global_frame_limit); 99 Settings::values.speed_limit.SetGlobal(global_speed_limit);
100 if (!global_frame_limit) { 100 if (!global_speed_limit) {
101 Settings::values.use_frame_limit.SetValue(ui->toggle_frame_limit->checkState() == 101 Settings::values.use_speed_limit.SetValue(ui->toggle_speed_limit->checkState() ==
102 Qt::Checked); 102 Qt::Checked);
103 Settings::values.frame_limit.SetValue(ui->frame_limit->value()); 103 Settings::values.speed_limit.SetValue(ui->speed_limit->value());
104 } 104 }
105 } 105 }
106} 106}
@@ -122,8 +122,8 @@ void ConfigureGeneral::SetupPerGameUI() {
122 // Disables each setting if: 122 // Disables each setting if:
123 // - A game is running (thus settings in use), and 123 // - A game is running (thus settings in use), and
124 // - A non-global setting is applied. 124 // - A non-global setting is applied.
125 ui->toggle_frame_limit->setEnabled(Settings::values.use_frame_limit.UsingGlobal()); 125 ui->toggle_speed_limit->setEnabled(Settings::values.use_speed_limit.UsingGlobal());
126 ui->frame_limit->setEnabled(Settings::values.frame_limit.UsingGlobal()); 126 ui->speed_limit->setEnabled(Settings::values.speed_limit.UsingGlobal());
127 127
128 return; 128 return;
129 } 129 }
@@ -135,13 +135,13 @@ void ConfigureGeneral::SetupPerGameUI() {
135 135
136 ui->button_reset_defaults->setVisible(false); 136 ui->button_reset_defaults->setVisible(false);
137 137
138 ConfigurationShared::SetColoredTristate(ui->toggle_frame_limit, 138 ConfigurationShared::SetColoredTristate(ui->toggle_speed_limit,
139 Settings::values.use_frame_limit, use_frame_limit); 139 Settings::values.use_speed_limit, use_speed_limit);
140 ConfigurationShared::SetColoredTristate(ui->use_multi_core, Settings::values.use_multi_core, 140 ConfigurationShared::SetColoredTristate(ui->use_multi_core, Settings::values.use_multi_core,
141 use_multi_core); 141 use_multi_core);
142 142
143 connect(ui->toggle_frame_limit, &QCheckBox::clicked, ui->frame_limit, [this]() { 143 connect(ui->toggle_speed_limit, &QCheckBox::clicked, ui->speed_limit, [this]() {
144 ui->frame_limit->setEnabled(ui->toggle_frame_limit->isChecked() && 144 ui->speed_limit->setEnabled(ui->toggle_speed_limit->isChecked() &&
145 (use_frame_limit != ConfigurationShared::CheckState::Global)); 145 (use_speed_limit != ConfigurationShared::CheckState::Global));
146 }); 146 });
147} 147}
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:
43 43
44 std::unique_ptr<Ui::ConfigureGeneral> ui; 44 std::unique_ptr<Ui::ConfigureGeneral> ui;
45 45
46 ConfigurationShared::CheckState use_frame_limit; 46 ConfigurationShared::CheckState use_speed_limit;
47 ConfigurationShared::CheckState use_multi_core; 47 ConfigurationShared::CheckState use_multi_core;
48}; 48};
diff --git a/src/yuzu/configuration/configure_general.ui b/src/yuzu/configuration/configure_general.ui
index bc7041090..afe8c6573 100644
--- a/src/yuzu/configuration/configure_general.ui
+++ b/src/yuzu/configuration/configure_general.ui
@@ -27,14 +27,14 @@
27 <item> 27 <item>
28 <layout class="QHBoxLayout" name="horizontalLayout_2"> 28 <layout class="QHBoxLayout" name="horizontalLayout_2">
29 <item> 29 <item>
30 <widget class="QCheckBox" name="toggle_frame_limit"> 30 <widget class="QCheckBox" name="toggle_speed_limit">
31 <property name="text"> 31 <property name="text">
32 <string>Limit Speed Percent</string> 32 <string>Limit Speed Percent</string>
33 </property> 33 </property>
34 </widget> 34 </widget>
35 </item> 35 </item>
36 <item> 36 <item>
37 <widget class="QSpinBox" name="frame_limit"> 37 <widget class="QSpinBox" name="speed_limit">
38 <property name="suffix"> 38 <property name="suffix">
39 <string>%</string> 39 <string>%</string>
40 </property> 40 </property>
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 03a909d17..aa5ff3a31 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -985,23 +985,23 @@ void GMainWindow::InitializeHotkeys() {
985 }); 985 });
986 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Toggle Speed Limit"), this), 986 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Toggle Speed Limit"), this),
987 &QShortcut::activated, this, [&] { 987 &QShortcut::activated, this, [&] {
988 Settings::values.use_frame_limit.SetValue( 988 Settings::values.use_speed_limit.SetValue(
989 !Settings::values.use_frame_limit.GetValue()); 989 !Settings::values.use_speed_limit.GetValue());
990 UpdateStatusBar(); 990 UpdateStatusBar();
991 }); 991 });
992 constexpr u16 SPEED_LIMIT_STEP = 5; 992 constexpr u16 SPEED_LIMIT_STEP = 5;
993 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Increase Speed Limit"), this), 993 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Increase Speed Limit"), this),
994 &QShortcut::activated, this, [&] { 994 &QShortcut::activated, this, [&] {
995 if (Settings::values.frame_limit.GetValue() < 9999 - SPEED_LIMIT_STEP) { 995 if (Settings::values.speed_limit.GetValue() < 9999 - SPEED_LIMIT_STEP) {
996 Settings::values.frame_limit.SetValue(SPEED_LIMIT_STEP + 996 Settings::values.speed_limit.SetValue(SPEED_LIMIT_STEP +
997 Settings::values.frame_limit.GetValue()); 997 Settings::values.speed_limit.GetValue());
998 UpdateStatusBar(); 998 UpdateStatusBar();
999 } 999 }
1000 }); 1000 });
1001 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Decrease Speed Limit"), this), 1001 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Decrease Speed Limit"), this),
1002 &QShortcut::activated, this, [&] { 1002 &QShortcut::activated, this, [&] {
1003 if (Settings::values.frame_limit.GetValue() > SPEED_LIMIT_STEP) { 1003 if (Settings::values.speed_limit.GetValue() > SPEED_LIMIT_STEP) {
1004 Settings::values.frame_limit.SetValue(Settings::values.frame_limit.GetValue() - 1004 Settings::values.speed_limit.SetValue(Settings::values.speed_limit.GetValue() -
1005 SPEED_LIMIT_STEP); 1005 SPEED_LIMIT_STEP);
1006 UpdateStatusBar(); 1006 UpdateStatusBar();
1007 } 1007 }
@@ -2912,10 +2912,10 @@ void GMainWindow::UpdateStatusBar() {
2912 shader_building_label->setVisible(false); 2912 shader_building_label->setVisible(false);
2913 } 2913 }
2914 2914
2915 if (Settings::values.use_frame_limit.GetValue()) { 2915 if (Settings::values.use_speed_limit.GetValue()) {
2916 emu_speed_label->setText(tr("Speed: %1% / %2%") 2916 emu_speed_label->setText(tr("Speed: %1% / %2%")
2917 .arg(results.emulation_speed * 100.0, 0, 'f', 0) 2917 .arg(results.emulation_speed * 100.0, 0, 'f', 0)
2918 .arg(Settings::values.frame_limit.GetValue())); 2918 .arg(Settings::values.speed_limit.GetValue()));
2919 } else { 2919 } else {
2920 emu_speed_label->setText(tr("Speed: %1%").arg(results.emulation_speed * 100.0, 0, 'f', 0)); 2920 emu_speed_label->setText(tr("Speed: %1%").arg(results.emulation_speed * 100.0, 0, 'f', 0));
2921 } 2921 }
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index 3e22fee37..47244c959 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -449,8 +449,8 @@ void Config::ReadValues() {
449 ReadSetting("Renderer", Settings::values.fullscreen_mode); 449 ReadSetting("Renderer", Settings::values.fullscreen_mode);
450 ReadSetting("Renderer", Settings::values.aspect_ratio); 450 ReadSetting("Renderer", Settings::values.aspect_ratio);
451 ReadSetting("Renderer", Settings::values.max_anisotropy); 451 ReadSetting("Renderer", Settings::values.max_anisotropy);
452 ReadSetting("Renderer", Settings::values.use_frame_limit); 452 ReadSetting("Renderer", Settings::values.use_speed_limit);
453 ReadSetting("Renderer", Settings::values.frame_limit); 453 ReadSetting("Renderer", Settings::values.speed_limit);
454 ReadSetting("Renderer", Settings::values.use_disk_shader_cache); 454 ReadSetting("Renderer", Settings::values.use_disk_shader_cache);
455 ReadSetting("Renderer", Settings::values.gpu_accuracy); 455 ReadSetting("Renderer", Settings::values.gpu_accuracy);
456 ReadSetting("Renderer", Settings::values.use_asynchronous_gpu_emulation); 456 ReadSetting("Renderer", Settings::values.use_asynchronous_gpu_emulation);
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h
index 88d33ecab..b32adbbde 100644
--- a/src/yuzu_cmd/default_ini.h
+++ b/src/yuzu_cmd/default_ini.h
@@ -256,13 +256,13 @@ use_nvdec_emulation =
256# 0: Off, 1 (default): On 256# 0: Off, 1 (default): On
257accelerate_astc = 257accelerate_astc =
258 258
259# Turns on the frame limiter, which will limit frames output to the target game speed 259# Turns on the speed limiter, which will limit the emulation speed to the desired speed limit value
260# 0: Off, 1: On (default) 260# 0: Off, 1: On (default)
261use_frame_limit = 261use_speed_limit =
262 262
263# Limits the speed of the game to run no faster than this value as a percentage of target speed 263# Limits the speed of the game to run no faster than this value as a percentage of target speed
264# 1 - 9999: Speed limit as a percentage of target game speed. 100 (default) 264# 1 - 9999: Speed limit as a percentage of target game speed. 100 (default)
265frame_limit = 265speed_limit =
266 266
267# Whether to use disk based shader cache 267# Whether to use disk based shader cache
268# 0: Off, 1 (default): On 268# 0: Off, 1 (default): On