From 789d6ab9594790e772f089587d1e120085fcd6f7 Mon Sep 17 00:00:00 2001 From: Evan Husted Date: Tue, 21 Jan 2025 14:59:08 -0600 Subject: [PATCH] misc: chore: Improve autoloading DLC/updates logging, deliberately switch to Vulkan if Metal was somehow chosen on a non-mac system, add logger lines in the updater, cleanup enabled logs printing --- src/Ryujinx.Common/TitleIDs.cs | 1 + src/Ryujinx/AppHost.cs | 8 ++++++-- src/Ryujinx/Program.cs | 12 +++++++----- src/Ryujinx/UI/Windows/MainWindow.axaml.cs | 1 + src/Ryujinx/Updater.cs | 6 ++++++ .../Utilities/AppLibrary/ApplicationLibrary.cs | 6 ------ 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/Ryujinx.Common/TitleIDs.cs b/src/Ryujinx.Common/TitleIDs.cs index 48f524fd0..e0cb12026 100644 --- a/src/Ryujinx.Common/TitleIDs.cs +++ b/src/Ryujinx.Common/TitleIDs.cs @@ -14,6 +14,7 @@ namespace Ryujinx.Common { switch (currentBackend) { + case GraphicsBackend.Metal when !OperatingSystem.IsMacOS(): case GraphicsBackend.OpenGl when OperatingSystem.IsMacOS(): return GraphicsBackend.Vulkan; case GraphicsBackend.Vulkan or GraphicsBackend.OpenGl or GraphicsBackend.Metal: diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs index 2642f603b..c0d93dc53 100644 --- a/src/Ryujinx/AppHost.cs +++ b/src/Ryujinx/AppHost.cs @@ -674,7 +674,7 @@ namespace Ryujinx.Ava public async Task LoadGuestApplication(BlitStruct? customNacpData = null) { - InitializeSwitchInstance(); + InitEmulatedSwitch(); MainWindow.UpdateGraphicsConfig(); SystemVersion firmwareVersion = ContentManager.GetCurrentFirmwareVersion(); @@ -757,6 +757,8 @@ namespace Ryujinx.Ava { romFsFiles = Directory.GetFiles(ApplicationPath, "*.romfs"); } + + Logger.Notice.Print(LogClass.Application, $"Loading unpacked content archive from '{ApplicationPath}'."); if (romFsFiles.Length > 0) { @@ -783,6 +785,8 @@ namespace Ryujinx.Ava } else if (File.Exists(ApplicationPath)) { + Logger.Notice.Print(LogClass.Application, $"Loading content archive from '{ApplicationPath}'."); + switch (Path.GetExtension(ApplicationPath).ToLowerInvariant()) { case ".xci": @@ -885,7 +889,7 @@ namespace Ryujinx.Ava Logger.Info?.Print(LogClass.Emulation, "Emulation was paused"); } - private void InitializeSwitchInstance() + private void InitEmulatedSwitch() { // Initialize KeySet. VirtualFileSystem.ReloadKeySet(); diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index 52b2d655d..cf0e6f7e6 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -233,11 +233,13 @@ namespace Ryujinx.Ava Logger.Notice.Print(LogClass.Application, $".NET Runtime: {RuntimeInformation.FrameworkDescription}"); SystemInfo.Gather().Print(); - var enabledLogLevels = Logger.GetEnabledLevels().ToArray(); - - Logger.Notice.Print(LogClass.Application, $"Logs Enabled: {(enabledLogLevels.Length is 0 - ? "" - : enabledLogLevels.JoinToString(", "))}"); + Logger.Notice.Print(LogClass.Application, $"Logs Enabled: { + Logger.GetEnabledLevels() + .FormatCollection( + x => x.ToString(), + separator: ", ", + emptyCollectionFallback: "") + }"); Logger.Notice.Print(LogClass.Application, AppDataManager.Mode == AppDataManager.LaunchMode.Custom diff --git a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs index 7d1b5e590..cdb177eb8 100644 --- a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs +++ b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs @@ -691,6 +691,7 @@ namespace Ryujinx.Ava.UI.Windows ApplicationLibrary.LoadApplications(ConfigurationState.Instance.UI.GameDirs); var autoloadDirs = ConfigurationState.Instance.UI.AutoloadDirs.Value; + autoloadDirs.ForEach(dir => Logger.Info?.Print(LogClass.Application, $"Auto loading DLC & updates from: {dir}")); if (autoloadDirs.Count > 0) { var updatesLoaded = ApplicationLibrary.AutoLoadTitleUpdates(autoloadDirs, out int updatesRemoved); diff --git a/src/Ryujinx/Updater.cs b/src/Ryujinx/Updater.cs index 3e3989c66..88d0dfe36 100644 --- a/src/Ryujinx/Updater.cs +++ b/src/Ryujinx/Updater.cs @@ -87,6 +87,8 @@ namespace Ryujinx.Ava return; } + + Logger.Info?.Print(LogClass.Application, "Checking for updates."); // Get latest version number from GitHub API try @@ -140,6 +142,8 @@ namespace Ryujinx.Ava OpenHelper.OpenUrl(ReleaseInformation.GetChangelogForVersion(currentVersion)); } } + + Logger.Info?.Print(LogClass.Application, "Up to date."); _running = false; @@ -214,6 +218,8 @@ namespace Ryujinx.Ava ? $"Canary {currentVersion} -> Canary {newVersion}" : $"{currentVersion} -> {newVersion}"; + Logger.Info?.Print(LogClass.Application, $"Version found: {newVersionString}"); + RequestUserToUpdate: // Show a message asking the user if they want to update UserResult shouldUpdate = await ContentDialogHelper.CreateUpdaterChoiceDialog( diff --git a/src/Ryujinx/Utilities/AppLibrary/ApplicationLibrary.cs b/src/Ryujinx/Utilities/AppLibrary/ApplicationLibrary.cs index 41bcff129..d5a4ac83c 100644 --- a/src/Ryujinx/Utilities/AppLibrary/ApplicationLibrary.cs +++ b/src/Ryujinx/Utilities/AppLibrary/ApplicationLibrary.cs @@ -840,7 +840,6 @@ namespace Ryujinx.Ava.Utilities.AppLibrary try { // Remove any downloadable content which can no longer be located on disk - Logger.Notice.Print(LogClass.Application, $"Removing non-existing Title DLCs"); var dlcToRemove = _downloadableContents.Items .Where(dlc => !File.Exists(dlc.Dlc.ContainerPath)) .ToList(); @@ -852,8 +851,6 @@ namespace Ryujinx.Ava.Utilities.AppLibrary foreach (string appDir in appDirs) { - Logger.Notice.Print(LogClass.Application, $"Auto loading DLC from: {appDir}"); - if (_cancellationToken.Token.IsCancellationRequested) { return newDlcLoaded; @@ -956,7 +953,6 @@ namespace Ryujinx.Ava.Utilities.AppLibrary var titleIdsToRefresh = new HashSet(); // Remove any updates which can no longer be located on disk - Logger.Notice.Print(LogClass.Application, $"Removing non-existing Title Updates"); var updatesToRemove = _titleUpdates.Items .Where(it => !File.Exists(it.TitleUpdate.Path)) .ToList(); @@ -971,8 +967,6 @@ namespace Ryujinx.Ava.Utilities.AppLibrary foreach (string appDir in appDirs) { - Logger.Notice.Print(LogClass.Application, $"Auto loading updates from: {appDir}"); - if (_cancellationToken.Token.IsCancellationRequested) { return numUpdatesLoaded;