citra-qt: Add an "Alternative Speed Limit" with its hotkey (#5281)
* Change "Toggle Speed Limit" to toggle between 100% and a custom value
This will change the shortcut for "Toggle Speed Limit" to make it swap between 100% and the value of "Limit Speed Percent" in the config. Old functionality is still there, but renamed to "Unthrottle".
* Complete reimplementation of the function
* Fix something that didn't get saved correctly
* Fix missing indentation
* Rewrite to keep only a single QSpinBox
* Second rewrite
* set Unthrottled to 0 in the Qspinbox
* Hotkey for Unthrottle
* minor improvements to the design
* Apply suggestions from code review
Co-authored-by: Ben <bene_thomas@web.de>
* Default slider values
* clang-format fixes
* Prevent the speed slider from changing size
...when an element in its row has variable width.
* Change "Game Speed" to "Emulation Speed"
* Apply suggestions from code review
`game_speed` to` emulation_speed`
Co-authored-by: Valentin Vanelslande <vvanelslandedev@gmail.com>
* Fix for QSliders
* Revert "Prevent the speed slider from changing size"
This reverts commit ddaca20044
.
* clang-format
...doesn't seem to stick to a choice
* Fix 2 for QSliders
Co-authored-by: B3n30 <benediktthomas@gmail.com>
Co-authored-by: Ben <bene_thomas@web.de>
Co-authored-by: Valentin Vanelslande <vvanelslandedev@gmail.com>
This commit is contained in:
@@ -133,13 +133,18 @@ void FrameLimiter::DoFrameLimiting(microseconds current_system_time_us) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Settings::values.use_frame_limit) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto now = Clock::now();
|
||||
double sleep_scale = Settings::values.frame_limit / 100.0;
|
||||
|
||||
if (Settings::values.use_frame_limit_alternate) {
|
||||
if (Settings::values.frame_limit_alternate == 0) {
|
||||
return;
|
||||
}
|
||||
sleep_scale = Settings::values.frame_limit_alternate / 100.0;
|
||||
} else if (Settings::values.frame_limit == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Max lag caused by slow frames. Shouldn't be more than the length of a frame at the current
|
||||
// speed percent or it will clamp too much and prevent this from properly limiting to that
|
||||
// percent. High values means it'll take longer after a slow frame to recover and start limiting
|
||||
|
@@ -83,8 +83,9 @@ void LogSettings() {
|
||||
LogSetting("Renderer_ShadersAccurateMul", Settings::values.shaders_accurate_mul);
|
||||
LogSetting("Renderer_UseShaderJit", Settings::values.use_shader_jit);
|
||||
LogSetting("Renderer_UseResolutionFactor", Settings::values.resolution_factor);
|
||||
LogSetting("Renderer_UseFrameLimit", Settings::values.use_frame_limit);
|
||||
LogSetting("Renderer_FrameLimit", Settings::values.frame_limit);
|
||||
LogSetting("Renderer_UseFrameLimitAlternate", Settings::values.use_frame_limit_alternate);
|
||||
LogSetting("Renderer_FrameLimitAlternate", Settings::values.frame_limit_alternate);
|
||||
LogSetting("Renderer_PostProcessingShader", Settings::values.pp_shader_name);
|
||||
LogSetting("Renderer_FilterMode", Settings::values.filter_mode);
|
||||
LogSetting("Renderer_TextureFilterName", Settings::values.texture_filter_name);
|
||||
|
@@ -155,8 +155,9 @@ struct Values {
|
||||
bool shaders_accurate_mul;
|
||||
bool use_shader_jit;
|
||||
u16 resolution_factor;
|
||||
bool use_frame_limit;
|
||||
bool use_frame_limit_alternate;
|
||||
u16 frame_limit;
|
||||
u16 frame_limit_alternate;
|
||||
std::string texture_filter_name;
|
||||
|
||||
LayoutOption layout_option;
|
||||
|
@@ -165,9 +165,11 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader) {
|
||||
AddField(Telemetry::FieldType::UserConfig, "Core_UseCpuJit", Settings::values.use_cpu_jit);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_ResolutionFactor",
|
||||
Settings::values.resolution_factor);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseFrameLimit",
|
||||
Settings::values.use_frame_limit);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_FrameLimit", Settings::values.frame_limit);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseFrameLimitAlternate",
|
||||
Settings::values.use_frame_limit_alternate);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_FrameLimitAlternate",
|
||||
Settings::values.frame_limit_alternate);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseHwRenderer",
|
||||
Settings::values.use_hw_renderer);
|
||||
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseHwShader",
|
||||
|
Reference in New Issue
Block a user