hle: Set ProcessResult name from NACP (#4633)
* Extract titleName from nacp * Address formatting feedback * Check if the desired language is actually available
This commit is contained in:
parent
c9bc4eaf58
commit
52d6f2e656
2 changed files with 25 additions and 4 deletions
|
@ -405,7 +405,16 @@ namespace Ryujinx.HLE.Loaders.Processes
|
||||||
// Once everything is loaded, we can load cheats.
|
// Once everything is loaded, we can load cheats.
|
||||||
device.Configuration.VirtualFileSystem.ModLoader.LoadCheats(programId, tamperInfo, device.TamperMachine);
|
device.Configuration.VirtualFileSystem.ModLoader.LoadCheats(programId, tamperInfo, device.TamperMachine);
|
||||||
|
|
||||||
return new ProcessResult(metaLoader, applicationControlProperties, diskCacheEnabled, allowCodeMemoryForJit, processContextFactory.DiskCacheLoadState, process.Pid, meta.MainThreadPriority, meta.MainThreadStackSize);
|
return new ProcessResult(
|
||||||
|
metaLoader,
|
||||||
|
applicationControlProperties,
|
||||||
|
diskCacheEnabled,
|
||||||
|
allowCodeMemoryForJit,
|
||||||
|
processContextFactory.DiskCacheLoadState,
|
||||||
|
process.Pid,
|
||||||
|
meta.MainThreadPriority,
|
||||||
|
meta.MainThreadStackSize,
|
||||||
|
device.System.State.DesiredTitleLanguage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Result LoadIntoMemory(KProcess process, IExecutable image, ulong baseAddress)
|
public static Result LoadIntoMemory(KProcess process, IExecutable image, ulong baseAddress)
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using LibHac.Ns;
|
using LibHac.Ns;
|
||||||
using Ryujinx.Common.Logging;
|
using Ryujinx.Common.Logging;
|
||||||
using Ryujinx.Cpu;
|
using Ryujinx.Cpu;
|
||||||
|
using Ryujinx.HLE.HOS.SystemState;
|
||||||
using Ryujinx.HLE.Loaders.Processes.Extensions;
|
using Ryujinx.HLE.Loaders.Processes.Extensions;
|
||||||
using Ryujinx.Horizon.Common;
|
using Ryujinx.Horizon.Common;
|
||||||
|
|
||||||
|
@ -9,7 +10,7 @@ namespace Ryujinx.HLE.Loaders.Processes
|
||||||
{
|
{
|
||||||
public struct ProcessResult
|
public struct ProcessResult
|
||||||
{
|
{
|
||||||
public static ProcessResult Failed => new(null, new ApplicationControlProperty(), false, false, null, 0, 0, 0);
|
public static ProcessResult Failed => new(null, new ApplicationControlProperty(), false, false, null, 0, 0, 0, TitleLanguage.AmericanEnglish);
|
||||||
|
|
||||||
private readonly byte _mainThreadPriority;
|
private readonly byte _mainThreadPriority;
|
||||||
private readonly uint _mainThreadStackSize;
|
private readonly uint _mainThreadStackSize;
|
||||||
|
@ -35,7 +36,8 @@ namespace Ryujinx.HLE.Loaders.Processes
|
||||||
IDiskCacheLoadState diskCacheLoadState,
|
IDiskCacheLoadState diskCacheLoadState,
|
||||||
ulong pid,
|
ulong pid,
|
||||||
byte mainThreadPriority,
|
byte mainThreadPriority,
|
||||||
uint mainThreadStackSize)
|
uint mainThreadStackSize,
|
||||||
|
TitleLanguage titleLanguage)
|
||||||
{
|
{
|
||||||
_mainThreadPriority = mainThreadPriority;
|
_mainThreadPriority = mainThreadPriority;
|
||||||
_mainThreadStackSize = mainThreadStackSize;
|
_mainThreadStackSize = mainThreadStackSize;
|
||||||
|
@ -50,7 +52,17 @@ namespace Ryujinx.HLE.Loaders.Processes
|
||||||
{
|
{
|
||||||
ulong programId = metaLoader.GetProgramId();
|
ulong programId = metaLoader.GetProgramId();
|
||||||
|
|
||||||
|
if (ApplicationControlProperties.Title.ItemsRo.Length > 0)
|
||||||
|
{
|
||||||
|
var langIndex = ApplicationControlProperties.Title.ItemsRo.Length > (int)titleLanguage ? (int)titleLanguage : 0;
|
||||||
|
|
||||||
|
Name = ApplicationControlProperties.Title[langIndex].NameString.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Name = metaLoader.GetProgramName();
|
Name = metaLoader.GetProgramName();
|
||||||
|
}
|
||||||
|
|
||||||
ProgramId = programId;
|
ProgramId = programId;
|
||||||
ProgramIdText = $"{programId:x16}";
|
ProgramIdText = $"{programId:x16}";
|
||||||
Is64Bit = metaLoader.IsProgram64Bit();
|
Is64Bit = metaLoader.IsProgram64Bit();
|
||||||
|
|
Reference in a new issue