From 2cce274f58695a1c3ae016e097dcb2f264c0daa9 Mon Sep 17 00:00:00 2001 From: KeatonTheBot Date: Wed, 28 Jan 2026 10:36:46 -0600 Subject: [PATCH] Add Turbo Mode to CPU settings --- .../Helper/CustomSettingsHelper.cs | 1 + .../Models/CustomSettingsModel.cs | 4 +- .../UI/ViewModels/CustomSettingsViewModel.cs | 21 ++++++++ .../Settings/CustomSettingsCPUView.axaml | 54 ++++++++++++++++++- 4 files changed, 76 insertions(+), 4 deletions(-) diff --git a/src/Ryujinx.UI.Common/Helper/CustomSettingsHelper.cs b/src/Ryujinx.UI.Common/Helper/CustomSettingsHelper.cs index acbf79300..82cd35f0c 100644 --- a/src/Ryujinx.UI.Common/Helper/CustomSettingsHelper.cs +++ b/src/Ryujinx.UI.Common/Helper/CustomSettingsHelper.cs @@ -78,6 +78,7 @@ namespace Ryujinx.UI.Common.Helper ConfigurationState.Instance.System.EnableLowPowerPptc.Value = customSettingsModel.EnableLowPowerPptc; ConfigurationState.Instance.System.MemoryManagerMode.Value = (MemoryManagerMode)customSettingsModel.MemoryManagerMode; ConfigurationState.Instance.System.UseHypervisor.Value = customSettingsModel.UseHypervisor; + ConfigurationState.Instance.System.TickScalar.Value = customSettingsModel.TickScalar; ConfigurationState.Instance.System.AudioBackend.Value = customSettingsModel.AudioBackend; ConfigurationState.Instance.System.AudioVolume.Value = customSettingsModel.AudioVolume; ConfigurationState.Instance.Graphics.GraphicsBackend.Value = (GraphicsBackend)customSettingsModel.GraphicsBackend; diff --git a/src/Ryujinx.UI.Common/Models/CustomSettingsModel.cs b/src/Ryujinx.UI.Common/Models/CustomSettingsModel.cs index 2f4040114..b4f3531ec 100644 --- a/src/Ryujinx.UI.Common/Models/CustomSettingsModel.cs +++ b/src/Ryujinx.UI.Common/Models/CustomSettingsModel.cs @@ -19,6 +19,7 @@ namespace Ryujinx.UI.Common.Models public bool EnableLowPowerPptc { get; set; } public int MemoryManagerMode { get; set; } public bool UseHypervisor { get; set; } + public long TickScalar { get; set; } public int GraphicsBackend { get; set; } public string PreferredGpu { get; set; } public bool EnableShaderCache { get; set; } @@ -28,9 +29,6 @@ namespace Ryujinx.UI.Common.Models public float ResScale { get; set; } public float MaxAnisotropy { get; set; } public int BackendThreading { get; set; } - public int IsOpenAlEnabled { get; set; } - public int IsSDL2Enabled { get; set; } - public int IsSoundIoEnabled { get; set; } public AudioBackend AudioBackend { get; set; } public float AudioVolume { get; set; } } diff --git a/src/Ryujinx/UI/ViewModels/CustomSettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/CustomSettingsViewModel.cs index 613d0ef4e..9839246ea 100644 --- a/src/Ryujinx/UI/ViewModels/CustomSettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/CustomSettingsViewModel.cs @@ -116,10 +116,28 @@ namespace Ryujinx.Ava.UI.ViewModels public int DramSize { get; set; } public bool EnableFsIntegrityChecks { get; set; } public bool IgnoreMissingServices { get; set; } + + // CPU settings public bool EnablePptc { get; set; } public bool EnableLowPowerPptc { get; set; } public int MemoryManagerMode { get; set; } public bool UseHypervisor { get; set; } + public long TurboMultiplier + { + get; + set + { + if (field != value) + { + field = value; + + OnPropertyChanged(); + OnPropertyChanged((nameof(TurboMultiplierPercentageText))); + } + } + } + + public string TurboMultiplierPercentageText => $"{TurboMultiplier}%"; // Graphics settings public int VSyncMode { get; set; } @@ -235,6 +253,7 @@ namespace Ryujinx.Ava.UI.ViewModels EnableLowPowerPptc = config.System.EnableLowPowerPptc.Value; MemoryManagerMode = (int)config.System.MemoryManagerMode.Value; UseHypervisor = config.System.UseHypervisor.Value; + TurboMultiplier = config.System.TickScalar.Value; GraphicsBackend = (int)config.Graphics.GraphicsBackend.Value; PreferredGpuIndex = ComputePreferredGpuIndex(config.Graphics.PreferredGpu.Value); EnableShaderCache = config.Graphics.EnableShaderCache.Value; @@ -261,6 +280,7 @@ namespace Ryujinx.Ava.UI.ViewModels EnableLowPowerPptc = CustomSettingsModel.EnableLowPowerPptc; MemoryManagerMode = CustomSettingsModel.MemoryManagerMode; UseHypervisor = CustomSettingsModel.UseHypervisor; + TurboMultiplier = CustomSettingsModel.TickScalar; GraphicsBackend = CustomSettingsModel.GraphicsBackend; PreferredGpuIndex = ComputePreferredGpuIndex(CustomSettingsModel.PreferredGpu); EnableShaderCache = CustomSettingsModel.EnableShaderCache; @@ -297,6 +317,7 @@ namespace Ryujinx.Ava.UI.ViewModels CustomSettingsModel.EnableLowPowerPptc = EnableLowPowerPptc; CustomSettingsModel.MemoryManagerMode = MemoryManagerMode; CustomSettingsModel.UseHypervisor = UseHypervisor; + CustomSettingsModel.TickScalar = TurboMultiplier; CustomSettingsModel.GraphicsBackend = GraphicsBackend; CustomSettingsModel.PreferredGpu = ComputePreferredGpu(PreferredGpuIndex); CustomSettingsModel.EnableShaderCache = EnableShaderCache; diff --git a/src/Ryujinx/UI/Views/Settings/CustomSettingsCPUView.axaml b/src/Ryujinx/UI/Views/Settings/CustomSettingsCPUView.axaml index 007319f90..d2e37649d 100644 --- a/src/Ryujinx/UI/Views/Settings/CustomSettingsCPUView.axaml +++ b/src/Ryujinx/UI/Views/Settings/CustomSettingsCPUView.axaml @@ -6,10 +6,11 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels" + xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" mc:Ignorable="d" x:DataType="viewModels:CustomSettingsViewModel"> - + + + + + + + + + + + + + +