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/SetupWizard/RyujinxSetupWizard.cs b/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizard.cs
index 18209f0ac..c2513bffa 100644
--- a/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizard.cs
+++ b/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizard.cs
@@ -1,4 +1,5 @@
using Avalonia;
+using Avalonia.Controls;
using Avalonia.Controls.Notifications;
using Avalonia.Media.Imaging;
using Avalonia.Styling;
@@ -22,6 +23,12 @@ namespace Ryujinx.Ava.UI.SetupWizard
private readonly RyujinxSetupWizardWindow _window;
private readonly bool _overwrite;
+ public void SetWindowTitle(string titleText)
+ {
+ _window.Title = titleText;
+ ToolTip.SetTip(_window.RyuLogo, titleText);
+ }
+
public RyujinxSetupWizard(RyujinxSetupWizardWindow wizardWindow, bool overwriteMode)
{
_window = wizardWindow;
@@ -32,6 +39,10 @@ namespace Ryujinx.Ava.UI.SetupWizard
UpdateLogoTheme(ConfigurationState.Instance.UI.BaseStyle);
RyujinxApp.ThemeChanged += Ryujinx_ThemeChanged;
}
+ else
+ {
+ UpdateLogoTheme("Dark");
+ }
}
private SetupWizardPage FirstPage() => new(_window.WizardPresenter, this, isFirstPage: true);
diff --git a/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizardWindow.axaml b/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizardWindow.axaml
index d04c6f391..ae133d9d7 100644
--- a/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizardWindow.axaml
+++ b/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizardWindow.axaml
@@ -2,18 +2,16 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
xmlns:windows="clr-namespace:Ryujinx.Ava.UI.Windows"
xmlns:setupWizard="clr-namespace:Ryujinx.Ava.UI.SetupWizard"
xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
CanResize="False"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Ryujinx.Ava.UI.SetupWizard.RyujinxSetupWizardWindow"
- x:DataType="setupWizard:RyujinxSetupWizard"
- Title="{ext:Locale SetupWizardFirstPageTitle}">
+ x:DataType="setupWizard:RyujinxSetupWizard">
-
+
diff --git a/src/Ryujinx/UI/SetupWizard/SetupWizardPage.cs b/src/Ryujinx/UI/SetupWizard/SetupWizardPage.cs
index bdea37a01..cdd2955b0 100644
--- a/src/Ryujinx/UI/SetupWizard/SetupWizardPage.cs
+++ b/src/Ryujinx/UI/SetupWizard/SetupWizardPage.cs
@@ -50,6 +50,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
public async ValueTask Show()
{
contentPresenter.Content = new SetupWizardPageView { ViewModel = this };
+ ownerWizard.SetWindowTitle(Title);
try
{
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);