From 680cfd51948e9b8e72c884b1bc797ccf8cb26810 Mon Sep 17 00:00:00 2001 From: WilliamWsyHK Date: Sat, 26 Jul 2025 11:06:28 +0800 Subject: [PATCH 1/2] Use localized game name to display on the compatibility window if the game is owned. --- src/Ryujinx/Systems/CompatibilityDatabase.cs | 2 +- src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Ryujinx/Systems/CompatibilityDatabase.cs b/src/Ryujinx/Systems/CompatibilityDatabase.cs index 1a780a785..880e40792 100644 --- a/src/Ryujinx/Systems/CompatibilityDatabase.cs +++ b/src/Ryujinx/Systems/CompatibilityDatabase.cs @@ -82,7 +82,7 @@ namespace Ryujinx.Ava.Systems static string ColStr(SepReader.Col col) => col.ToString().Trim('"'); } - public string GameName { get; } + public string GameName { get; set; } public Optional TitleId { get; } public string[] Labels { get; } public LocaleKeys? Status { get; } diff --git a/src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs b/src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs index e4cd793c7..649284839 100644 --- a/src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs @@ -47,10 +47,19 @@ namespace Ryujinx.Ava.UI.ViewModels private void AppCountUpdated(object _, ApplicationCountUpdatedEventArgs __) => _ownedGameTitleIds = _appLibrary.Applications.Keys.Select(x => x.ToString("X16")).ToArray(); + private void LocalizeGameNames() + { + foreach (var entry in CompatibilityDatabase.Entries) + { + entry.GameName = _appLibrary.Applications.Items.SingleOrDefault(x => string.Equals(x.IdString, entry.TitleId, StringComparison.OrdinalIgnoreCase))?.Name ?? entry.GameName; + } + } + public CompatibilityViewModel(ApplicationLibrary appLibrary) { _appLibrary = appLibrary; AppCountUpdated(null, null); + LocalizeGameNames(); CountByStatus(); _appLibrary.ApplicationCountUpdated += AppCountUpdated; } From 9f731d6f2e932190b83a02d96ed39ad06b10365c Mon Sep 17 00:00:00 2001 From: WilliamWsyHK Date: Sat, 26 Jul 2025 11:25:25 +0800 Subject: [PATCH 2/2] Use Gommon.StringUtils.EqualsIgnoreCase as suggested --- src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs b/src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs index 649284839..3cf17cad3 100644 --- a/src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/CompatibilityViewModel.cs @@ -51,7 +51,7 @@ namespace Ryujinx.Ava.UI.ViewModels { foreach (var entry in CompatibilityDatabase.Entries) { - entry.GameName = _appLibrary.Applications.Items.SingleOrDefault(x => string.Equals(x.IdString, entry.TitleId, StringComparison.OrdinalIgnoreCase))?.Name ?? entry.GameName; + entry.GameName = _appLibrary.Applications.Items.SingleOrDefault(x => x.IdString.EqualsIgnoreCase(entry.TitleId))?.Name ?? entry.GameName; } }