diff --git a/Ryujinx.HLE/HOS/Horizon.cs b/Ryujinx.HLE/HOS/Horizon.cs index 6bd58c583b..f93a4cf319 100644 --- a/Ryujinx.HLE/HOS/Horizon.cs +++ b/Ryujinx.HLE/HOS/Horizon.cs @@ -111,7 +111,7 @@ namespace Ryujinx.HLE.HOS public string TitleName { get; private set; } - public string TitleID { get; private set; } + public string TitleId { get; private set; } public IntegrityCheckLevel FsIntegrityCheckLevel { get; set; } @@ -375,6 +375,12 @@ namespace Ryujinx.HLE.HOS { TitleName = CurrentTitle = ControlData.Value .Titles[(int) State.DesiredTitleLanguage].Name.ToString(); + + if (string.IsNullOrWhiteSpace(TitleName)) + { + TitleName = CurrentTitle = ControlData.Value.Titles.ToArray() + .FirstOrDefault(x => x.Name[0] != 0).Name.ToString(); + } } } } @@ -501,13 +507,15 @@ namespace Ryujinx.HLE.HOS LoadExeFs(codeFs, out Npdm metaData); + TitleId = metaData.Aci0.TitleId.ToString("x16"); + if (controlNca != null) { ReadControlData(controlNca); } else { - TitleID = CurrentTitle = metaData.Aci0.TitleId.ToString("x16"); + CurrentTitle = TitleId; } } @@ -547,7 +555,7 @@ namespace Ryujinx.HLE.HOS } } - TitleID = CurrentTitle = metaData.Aci0.TitleId.ToString("x16"); + TitleId = CurrentTitle = metaData.Aci0.TitleId.ToString("x16"); LoadNso("rtld"); LoadNso("main"); @@ -614,7 +622,7 @@ namespace Ryujinx.HLE.HOS if (string.IsNullOrWhiteSpace(metaData.TitleName)) { - metaData.TitleName = nacp.Titles.ToArray().FirstOrDefault(x => x.Name[0] != 0).ToString(); + metaData.TitleName = nacp.Titles.ToArray().FirstOrDefault(x => x.Name[0] != 0).Name.ToString(); } metaData.Aci0.TitleId = nacp.PresenceGroupId; @@ -650,7 +658,7 @@ namespace Ryujinx.HLE.HOS ContentManager.LoadEntries(); TitleName = CurrentTitle = metaData.TitleName; - TitleID = metaData.Aci0.TitleId.ToString("x16"); + TitleId = metaData.Aci0.TitleId.ToString("x16"); ProgramLoader.LoadStaticObjects(this, metaData, new IExecutable[] { staticObject }); } diff --git a/Ryujinx.HLE/HOS/Services/Arp/ApplicationLaunchProperty.cs b/Ryujinx.HLE/HOS/Services/Arp/ApplicationLaunchProperty.cs index c1c6d26dc9..4962e3ffdc 100644 --- a/Ryujinx.HLE/HOS/Services/Arp/ApplicationLaunchProperty.cs +++ b/Ryujinx.HLE/HOS/Services/Arp/ApplicationLaunchProperty.cs @@ -33,7 +33,7 @@ namespace Ryujinx.HLE.HOS.Services.Arp return new ApplicationLaunchProperty { - TitleId = BitConverter.ToInt64(StringUtils.HexToBytes(context.Device.System.TitleID), 0), + TitleId = BitConverter.ToInt64(StringUtils.HexToBytes(context.Device.System.TitleId), 0), Version = 0x00, BaseGameStorageId = (byte)StorageId.NandSystem, UpdateGameStorageId = (byte)StorageId.None diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs index da7a720a28..091c0998fe 100644 --- a/Ryujinx/Ui/MainWindow.cs +++ b/Ryujinx/Ui/MainWindow.cs @@ -274,12 +274,12 @@ namespace Ryujinx.UI if (DiscordIntegrationEnabled) { - if (File.ReadAllLines(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "RPsupported.dat")).Contains(_device.System.TitleID)) + if (File.ReadAllLines(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "RPsupported.dat")).Contains(_device.System.TitleId)) { - DiscordPresence.Assets.LargeImageKey = _device.System.TitleID; + DiscordPresence.Assets.LargeImageKey = _device.System.TitleId; } - string state = _device.System.TitleID; + string state = _device.System.TitleId; if (state == null) { @@ -311,7 +311,7 @@ namespace Ryujinx.UI try { - string savePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "nand", "user", "save", "0000000000000000", _userId, _device.System.TitleID); + string savePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "nand", "user", "save", "0000000000000000", _userId, _device.System.TitleId); if (File.Exists(System.IO.Path.Combine(savePath, "TimePlayed.dat")) == false) { @@ -341,7 +341,7 @@ namespace Ryujinx.UI } catch (ArgumentNullException) { - Logger.PrintWarning(LogClass.Application, $"Could not access save path to retrieve time/last played data using: UserID: {_userId}, TitleID: {_device.System.TitleID}"); + Logger.PrintWarning(LogClass.Application, $"Could not access save path to retrieve time/last played data using: UserID: {_userId}, TitleID: {_device.System.TitleId}"); } } } @@ -364,7 +364,7 @@ namespace Ryujinx.UI { try { - string savePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "nand", "user", "save", "0000000000000000", _userId, _device.System.TitleID); + string savePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "nand", "user", "save", "0000000000000000", _userId, _device.System.TitleId); double currentPlayTime = 0; using (FileStream stream = File.OpenRead(System.IO.Path.Combine(savePath, "LastPlayed.dat"))) @@ -393,7 +393,7 @@ namespace Ryujinx.UI } catch (ArgumentNullException) { - Logger.PrintWarning(LogClass.Application, $"Could not access save path to retrieve time/last played data using: UserID: {_userId}, TitleID: {_device.System.TitleID}"); + Logger.PrintWarning(LogClass.Application, $"Could not access save path to retrieve time/last played data using: UserID: {_userId}, TitleID: {_device.System.TitleId}"); } }