diff --git a/src/Ryujinx.Ava/Assets/Locales/en_US.json b/src/Ryujinx.Ava/Assets/Locales/en_US.json index b92f3ff6d..849604577 100644 --- a/src/Ryujinx.Ava/Assets/Locales/en_US.json +++ b/src/Ryujinx.Ava/Assets/Locales/en_US.json @@ -127,12 +127,13 @@ "SettingsTabSystemSystemTimeZone": "System Time Zone:", "SettingsTabSystemSystemTime": "System Time:", "SettingsTabSystemPresentIntervalState": "VSync:", - "SettingsTabSystemEnableCustomPresentInterval": "Enable toggle through custom refresh rate", + "SettingsTabSystemEnableCustomPresentInterval": "Enable custom refresh rate (Experimental)", "SettingsTabSystemPresentIntervalStateSwitch": "On", "SettingsTabSystemPresentIntervalStateUnbounded": "Off", "SettingsTabSystemPresentIntervalStateCustom": "Custom Refresh Rate", - "SettingsTabSystemPresentIntervalStateTooltip": "Emulated Vertical Sync. 'On' emulates the Switch's refresh rate of 60Hz. 'Off' is an unbounded refresh rate. 'Custom' allows the user to specify a custom emulated refresh rate. In some titles, the custom rate will act as an FPS cap. In others, it may lead to unpredictable behavior. \n\nLeave ON if unsure.", - "SettingsTabSystemEnableCustomPresentIntervalTooltip": "The VSync toggle will also cycle through the custom refresh rate mode.", + "SettingsTabSystemPresentIntervalStateTooltip": "Emulated Vertical Sync. 'On' emulates the Switch's refresh rate of 60Hz. 'Off' is an unbounded refresh rate.", + "SettingsTabSystemPresentIntervalStateTooltipCustom": "Emulated Vertical Sync. 'On' emulates the Switch's refresh rate of 60Hz. 'Off' is an unbounded refresh rate. 'Custom' emulates the specified custom refresh rate.", + "SettingsTabSystemEnableCustomPresentIntervalTooltip": "Allows the user to specify an emulated refresh rate. In some titles, this may speed up or slow down the rate of gameplay logic. In other titles, it may allow for capping FPS at some multiple of the refresh rate, or lead to unpredictable behavior. This is an experimental feature, with no guarantees for how gameplay will be affected. \n\nLeave OFF if unsure.", "SettingsTabSystemCustomPresentIntervalValueTooltip": "The custom refresh rate target value.", "SettingsTabSystemCustomPresentIntervalSliderTooltip": "The custom refresh rate, as a percentage of the normal Switch refresh rate.", "SettingsTabSystemCustomPresentIntervalValue": "Custom Refresh Rate Value:", diff --git a/src/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs index 564677bec..5ff1871bd 100644 --- a/src/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs @@ -147,13 +147,13 @@ public PresentIntervalState PresentIntervalState get => _presentIntervalState; set { - if (value == PresentIntervalState.Custom) + if (value == PresentIntervalState.Custom || + value == PresentIntervalState.Switch || + value == PresentIntervalState.Unbounded) { - EnableCustomPresentInterval = true; + _presentIntervalState = value; + OnPropertyChanged(); } - _presentIntervalState = value; - OnPropertyChanged(); - OnPropertyChanged((nameof(EnableCustomPresentInterval))); } } @@ -192,7 +192,10 @@ public bool EnableCustomPresentInterval if (_presentIntervalState == PresentIntervalState.Custom && value == false) { PresentIntervalState = PresentIntervalState.Switch; - OnPropertyChanged(nameof(PresentIntervalState)); + } + else if (value) + { + PresentIntervalState = PresentIntervalState.Custom; } OnPropertyChanged(); } diff --git a/src/Ryujinx.Ava/UI/Views/Settings/SettingsSystemView.axaml b/src/Ryujinx.Ava/UI/Views/Settings/SettingsSystemView.axaml index 3ded1e384..b143c1072 100644 --- a/src/Ryujinx.Ava/UI/Views/Settings/SettingsSystemView.axaml +++ b/src/Ryujinx.Ava/UI/Views/Settings/SettingsSystemView.axaml @@ -190,8 +190,9 @@ ToolTip.Tip="{locale:Locale SettingsTabSystemPresentIntervalStateTooltip}" Width="250" /> @@ -204,6 +205,19 @@ + + + + + + + + - - - + + +