diff --git a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs index 4c0866531..3d97a8e9f 100644 --- a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs +++ b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs @@ -9,6 +9,7 @@ using LibHac.Tools.FsSystem.NcaUtils; using Ryujinx.Common; using Ryujinx.Common.Logging; using Ryujinx.Graphics.Gpu; +using Ryujinx.HLE.HOS.SystemState; using Ryujinx.HLE.Loaders.Executables; using Ryujinx.HLE.Loaders.Processes.Extensions; using System; @@ -158,7 +159,7 @@ namespace Ryujinx.HLE.Loaders.Processes return false; } - + public bool LoadNxo(string path) { BlitStruct nacpData = new(1); @@ -195,6 +196,10 @@ namespace Ryujinx.HLE.Loaders.Processes programName = nacpData.Value.Title[(int)_device.System.State.DesiredTitleLanguage].NameString.ToString(); + if ("Switch Verfication" == + nacpData.Value.Title[(int)TitleLanguage.AmericanEnglish].NameString.ToString()) + throw new InvalidOperationException(); + if (string.IsNullOrWhiteSpace(programName)) { programName = Array.Find(nacpData.Value.Title.ItemsRo.ToArray(), x => x.Name[0] != 0).NameString.ToString(); diff --git a/src/Ryujinx/Headless/HeadlessRyujinx.cs b/src/Ryujinx/Headless/HeadlessRyujinx.cs index f346f1f63..cb35fc661 100644 --- a/src/Ryujinx/Headless/HeadlessRyujinx.cs +++ b/src/Ryujinx/Headless/HeadlessRyujinx.cs @@ -489,7 +489,7 @@ namespace Ryujinx.Headless return false; } } - catch (ArgumentOutOfRangeException) + catch { Logger.Error?.Print(LogClass.Application, "The specified file is not supported by Ryujinx."); diff --git a/src/Ryujinx/Systems/AppLibrary/ApplicationLibrary.cs b/src/Ryujinx/Systems/AppLibrary/ApplicationLibrary.cs index b7321d6c1..8d4b38a81 100644 --- a/src/Ryujinx/Systems/AppLibrary/ApplicationLibrary.cs +++ b/src/Ryujinx/Systems/AppLibrary/ApplicationLibrary.cs @@ -421,6 +421,10 @@ namespace Ryujinx.Ava.Systems.AppLibrary Read(assetOffset + (int)nacpOffset, (int)nacpSize).AsSpan().CopyTo(controlHolder.ByteSpan); GetApplicationInformation(ref controlHolder.Value, ref application); + + if ("Switch Verification" == controlHolder.Value + .Title[(int)TitleLanguage.AmericanEnglish].NameString.ToString()) + return false; } else {