From c49b49ba6eb8ac40a76b7c8d632b79723b093bc5 Mon Sep 17 00:00:00 2001 From: Vova Date: Wed, 27 Aug 2025 21:37:09 +1000 Subject: [PATCH] Renamed variables. Corrected description for hack. Log information is now output via debug level. --- src/Ryujinx.Common/Configuration/DirtyHack.cs | 2 +- src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs | 14 ++++++++------ .../Configuration/ConfigurationState.Migration.cs | 2 +- .../Configuration/ConfigurationState.Model.cs | 10 +++++----- .../UI/ViewModels/SettingsHacksViewModel.cs | 8 ++++---- src/Ryujinx/UI/ViewModels/SettingsViewModel.cs | 2 +- .../UI/Views/Settings/SettingsHacksView.axaml | 6 +++--- 7 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/Ryujinx.Common/Configuration/DirtyHack.cs b/src/Ryujinx.Common/Configuration/DirtyHack.cs index dae46ddba..94d53558a 100644 --- a/src/Ryujinx.Common/Configuration/DirtyHack.cs +++ b/src/Ryujinx.Common/Configuration/DirtyHack.cs @@ -11,7 +11,7 @@ namespace Ryujinx.Common.Configuration Xc2MenuSoftlockFix = 1, // ShaderTranslationDelay = 2 NifmServiceDisableIsAnyInternetRequestAccepted = 3, - TMNT_SRFix = 4 + TmntSrCutsceneCrashFix = 4 } public readonly struct EnabledDirtyHack(DirtyHack hack, int value) diff --git a/src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs b/src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs index 05954b927..4f7727b28 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs @@ -50,8 +50,8 @@ namespace Ryujinx.HLE.HOS.Services.Nv }; - private const string TMNT_SRTitleId = "0100fe701475a000"; - private static bool IsTMNT_SR => TitleIDs.CurrentApplication.Value.OrDefault() is TMNT_SRTitleId; + private const string TmntSrTitleId = "0100fe701475a000"; + private static bool IsTmntSr => TitleIDs.CurrentApplication.Value.OrDefault() is TmntSrTitleId; public static IdDictionary DeviceFileIdRegistry = new(); @@ -254,15 +254,17 @@ namespace Ryujinx.HLE.HOS.Services.Nv int fd = context.RequestData.ReadInt32(); NvIoctl ioctlCommand = context.RequestData.ReadStruct(); - if (context.Device.DirtyHacks.IsEnabled(DirtyHack.TMNT_SRFix) && IsTMNT_SR) + if (context.Device.DirtyHacks.IsEnabled(DirtyHack.TmntSrCutsceneCrashFix) && IsTmntSr) { - // Fix emulator crash before splash screen for - // TMNT Shredder's Revenges + // This fixes an emulator crash before the cutscene for + // TMNT Shredder's Revenge. + // + // NOTE: Delay of 50ms is a stable value. Trying to reduce latency will crash when going to intro cutscene if ((ioctlCommand.Type == NvIoctl.NvGpuAsMagic && (ioctlCommand.Number == 0x05 || ioctlCommand.Number == 0x06))) { System.Threading.Thread.Sleep(50); - Logger.Notice.Print(LogClass.ServiceNv, $"Type_{ioctlCommand.Type}, Command_{ioctlCommand.Number} Delay!"); + Logger.Debug?.Print(LogClass.ServiceNv, $"Type_{ioctlCommand.Type}, Command_{ioctlCommand.Number} Delay!"); } } diff --git a/src/Ryujinx/Systems/Configuration/ConfigurationState.Migration.cs b/src/Ryujinx/Systems/Configuration/ConfigurationState.Migration.cs index 373164b7d..10d82aabd 100644 --- a/src/Ryujinx/Systems/Configuration/ConfigurationState.Migration.cs +++ b/src/Ryujinx/Systems/Configuration/ConfigurationState.Migration.cs @@ -166,7 +166,7 @@ namespace Ryujinx.Ava.Systems.Configuration DirtyHacks hacks = new(cff.DirtyHacks ?? []); Hacks.Xc2MenuSoftlockFix.Value = hacks.IsEnabled(DirtyHack.Xc2MenuSoftlockFix); - Hacks.TMNT_SRFix.Value = hacks.IsEnabled(DirtyHack.TMNT_SRFix); + Hacks.TmntSrCutsceneCrashFix.Value = hacks.IsEnabled(DirtyHack.TmntSrCutsceneCrashFix); } diff --git a/src/Ryujinx/Systems/Configuration/ConfigurationState.Model.cs b/src/Ryujinx/Systems/Configuration/ConfigurationState.Model.cs index 39872ebea..2ced604f8 100644 --- a/src/Ryujinx/Systems/Configuration/ConfigurationState.Model.cs +++ b/src/Ryujinx/Systems/Configuration/ConfigurationState.Model.cs @@ -743,7 +743,7 @@ namespace Ryujinx.Ava.Systems.Configuration public ReactiveObject Xc2MenuSoftlockFix { get; private set; } - public ReactiveObject TMNT_SRFix { get; private set; } + public ReactiveObject TmntSrCutsceneCrashFix { get; private set; } public ReactiveObject DisableNifmIsAnyInternetRequestAccepted { get; private set; } @@ -754,8 +754,8 @@ namespace Ryujinx.Ava.Systems.Configuration Xc2MenuSoftlockFix.Event += HackChanged; DisableNifmIsAnyInternetRequestAccepted = new ReactiveObject(); DisableNifmIsAnyInternetRequestAccepted.Event += HackChanged; - TMNT_SRFix = new ReactiveObject(); - TMNT_SRFix.Event += HackChanged; + TmntSrCutsceneCrashFix = new ReactiveObject(); + TmntSrCutsceneCrashFix.Event += HackChanged; } private void HackChanged(object sender, ReactiveEventArgs rxe) @@ -789,8 +789,8 @@ namespace Ryujinx.Ava.Systems.Configuration if (DisableNifmIsAnyInternetRequestAccepted) Apply(DirtyHack.NifmServiceDisableIsAnyInternetRequestAccepted); - if (TMNT_SRFix) - Apply(DirtyHack.TMNT_SRFix); + if (TmntSrCutsceneCrashFix) + Apply(DirtyHack.TmntSrCutsceneCrashFix); return enabledHacks.ToArray(); diff --git a/src/Ryujinx/UI/ViewModels/SettingsHacksViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsHacksViewModel.cs index b9637cd7f..46b297c7c 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsHacksViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsHacksViewModel.cs @@ -17,7 +17,7 @@ namespace Ryujinx.Ava.UI.ViewModels [ObservableProperty] private bool _xc2MenuSoftlockFix = ConfigurationState.Instance.Hacks.Xc2MenuSoftlockFix; [ObservableProperty] private bool _nifmDisableIsAnyInternetRequestAccepted = ConfigurationState.Instance.Hacks.DisableNifmIsAnyInternetRequestAccepted; - [ObservableProperty] private bool _TMNT_SRFix = ConfigurationState.Instance.Hacks.TMNT_SRFix; + [ObservableProperty] private bool _TmntSrCutsceneCrashFix = ConfigurationState.Instance.Hacks.TmntSrCutsceneCrashFix; public static string Xc2MenuFixTooltip { get; } = Lambda.String(sb => { sb.AppendLine( @@ -40,14 +40,14 @@ namespace Ryujinx.Ava.UI.ViewModels sb.Append("Lets DOOM 2016 go in game."); }); - public static string TMNT_SRFixTooltip { get; } = Lambda.String(sb => + public static string TmntSrCutsceneCrashFixTooltip { get; } = Lambda.String(sb => { sb.AppendLine( - "This fix adds an extra 50 ms to some Ioctl service calls. This prevents the game from crashing when the cutscene starts.") + "This hack adds a 50ms delay to NvGpuAsMagic NvIoctl calls. This prevents the game from crashing when the cutscene starts.") .AppendLine(); sb.Append( - "Just give the game some time to properly interact with guest memory"); + "This simply just gives the game some time to properly interact with guest memory"); }); } } diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs index 4c920baa1..fab0e0b67 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs @@ -856,7 +856,7 @@ namespace Ryujinx.Ava.UI.ViewModels config.Hacks.Xc2MenuSoftlockFix.Value = DirtyHacks.Xc2MenuSoftlockFix; config.Hacks.DisableNifmIsAnyInternetRequestAccepted.Value = DirtyHacks.NifmDisableIsAnyInternetRequestAccepted; - config.Hacks.TMNT_SRFix.Value = DirtyHacks.TMNT_SRFix; + config.Hacks.TmntSrCutsceneCrashFix.Value = DirtyHacks.TmntSrCutsceneCrashFix; config.ToFileFormat().SaveConfig(Program.ConfigurationPath); diff --git a/src/Ryujinx/UI/Views/Settings/SettingsHacksView.axaml b/src/Ryujinx/UI/Views/Settings/SettingsHacksView.axaml index 256ce7af9..0c123b73a 100644 --- a/src/Ryujinx/UI/Views/Settings/SettingsHacksView.axaml +++ b/src/Ryujinx/UI/Views/Settings/SettingsHacksView.axaml @@ -60,13 +60,13 @@ Margin="0,10,0,0" Orientation="Horizontal" HorizontalAlignment="Center" - ToolTip.Tip="{Binding DirtyHacks.TMNT_SRFixTooltip}"> + ToolTip.Tip="{Binding DirtyHacks.TmntSrCutsceneCrashFixTooltip}"> + IsChecked="{Binding DirtyHacks.TmntSrCutsceneCrashFix}"/> + Text="TMNT Shredder's Revenge Fix" />