diff --git a/src/Ryujinx.Common/Configuration/AppDataManager.cs b/src/Ryujinx.Common/Configuration/AppDataManager.cs index cb26be2d5..d1c5bb60f 100644 --- a/src/Ryujinx.Common/Configuration/AppDataManager.cs +++ b/src/Ryujinx.Common/Configuration/AppDataManager.cs @@ -31,6 +31,11 @@ namespace Ryujinx.Common.Configuration public static string KeysDirPath { get; private set; } public static string KeysDirPathUser { get; } + public static string GetKeysDir() => + Mode is LaunchMode.UserProfile && Directory.Exists(KeysDirPathUser) + ? KeysDirPathUser + : KeysDirPath; + public static string LogsDirPath { get; private set; } public const string DefaultNandDir = "bis"; diff --git a/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs b/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs index 8ed8b2a18..c3508eddc 100644 --- a/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs +++ b/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs @@ -230,14 +230,19 @@ namespace Ryujinx.HLE.FileSystem string consoleKeyFile = null; string devKeyFile = null; - if (AppDataManager.Mode == AppDataManager.LaunchMode.UserProfile) - { - LoadSetAtPath(AppDataManager.KeysDirPathUser); - } - - LoadSetAtPath(AppDataManager.KeysDirPath); + LoadSetAtPath(AppDataManager.GetKeysDir()); HasKeySet = (prodKeyFile != null && titleKeyFile != null) || prodKeyFile != null; + + + ExternalKeyReader.ReadKeyFile( + KeySet, + prodKeyFile, + devKeyFile, + titleKeyFile, + consoleKeyFile); + + return; void LoadSetAtPath(string basePath) { @@ -266,13 +271,6 @@ namespace Ryujinx.HLE.FileSystem devKeyFile = localDevKeyFile; } } - - ExternalKeyReader.ReadKeyFile( - KeySet, - prodKeyFile, - devKeyFile, - titleKeyFile, - consoleKeyFile); } public void ImportTickets(IFileSystem fs) diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboBinReader.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboBinReader.cs index 0e11493d5..6ba11d5f9 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboBinReader.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/AmiiboDecryption/AmiiboBinReader.cs @@ -334,7 +334,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.AmiiboDecryption private static string GetKeyRetailBinPath() { - return Path.Combine(AppDataManager.KeysDirPath, "key_retail.bin"); + return Path.Combine(AppDataManager.GetKeysDir(), "key_retail.bin"); } public static bool HasAmiiboKeyFile => File.Exists(GetKeyRetailBinPath()); diff --git a/src/Ryujinx/Headless/HeadlessRyujinx.cs b/src/Ryujinx/Headless/HeadlessRyujinx.cs index bba505dbb..9a28fd8a3 100644 --- a/src/Ryujinx/Headless/HeadlessRyujinx.cs +++ b/src/Ryujinx/Headless/HeadlessRyujinx.cs @@ -156,12 +156,9 @@ namespace Ryujinx.Headless option.UserProfile = profile.Name; // Check if keys exists. - if (!File.Exists(Path.Combine(AppDataManager.KeysDirPath, "prod.keys"))) + if (!File.Exists(Path.Combine(AppDataManager.GetKeysDir(), "prod.keys"))) { - if (!(AppDataManager.Mode == AppDataManager.LaunchMode.UserProfile && File.Exists(Path.Combine(AppDataManager.KeysDirPathUser, "prod.keys")))) - { - Logger.Error?.Print(LogClass.Application, "Keys not found"); - } + Logger.Error?.Print(LogClass.Application, "Keys not found"); } ReloadConfig(); diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index 1bae64d20..dcf9ebf6d 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -189,12 +189,9 @@ namespace Ryujinx.Ava DriverUtilities.InitDriverConfig(ConfigurationState.Instance.Graphics.BackendThreading == BackendThreading.Off); // Check if keys exists. - if (!File.Exists(Path.Combine(AppDataManager.KeysDirPath, "prod.keys"))) + if (!File.Exists(Path.Combine(AppDataManager.GetKeysDir(), "prod.keys"))) { - if (!(AppDataManager.Mode == AppDataManager.LaunchMode.UserProfile && File.Exists(Path.Combine(AppDataManager.KeysDirPathUser, "prod.keys")))) - { - MainWindow.ShowKeyErrorOnLoad = true; - } + MainWindow.ShowKeyErrorOnLoad = true; } if (CommandLineState.LaunchPathArg != null) diff --git a/src/Ryujinx/UI/SetupWizard/Pages/Keys/SetupKeysPageContext.cs b/src/Ryujinx/UI/SetupWizard/Pages/Keys/SetupKeysPageContext.cs index 11203d8bc..1c37f4644 100644 --- a/src/Ryujinx/UI/SetupWizard/Pages/Keys/SetupKeysPageContext.cs +++ b/src/Ryujinx/UI/SetupWizard/Pages/Keys/SetupKeysPageContext.cs @@ -83,16 +83,9 @@ namespace Ryujinx.Ava.UI.SetupWizard.Pages try { - string systemDirectory = AppDataManager.KeysDirPath; - if (AppDataManager.Mode == AppDataManager.LaunchMode.UserProfile && - Directory.Exists(AppDataManager.KeysDirPathUser)) - { - systemDirectory = AppDataManager.KeysDirPathUser; - } - Logger.Info?.Print(LogClass.Application, $"Installing keys from {KeysFolderPath}"); - ContentManager.InstallKeys(KeysFolderPath, systemDirectory); + ContentManager.InstallKeys(KeysFolderPath, AppDataManager.GetKeysDir()); NotificationManager.Information( title: LocaleManager.Instance[LocaleKeys.RyujinxInfo], diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index 5ca8efaa7..64d4c45cb 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -1018,12 +1018,7 @@ namespace Ryujinx.Ava.UI.ViewModels { try { - string systemDirectory = AppDataManager.KeysDirPath; - if (AppDataManager.Mode == AppDataManager.LaunchMode.UserProfile && - Directory.Exists(AppDataManager.KeysDirPathUser)) - { - systemDirectory = AppDataManager.KeysDirPathUser; - } + string systemDirectory = AppDataManager.GetKeysDir(); string dialogTitle = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogKeysInstallerKeysInstallTitle);