aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStarlet <gpyron@mail.com>2018-07-20 17:53:06 -0400
committerStarlet <gpyron@mail.com>2018-07-20 17:53:06 -0400
commit4b8a65fd84fcab991f62cf9cfdd8484c2e55501e (patch)
treeea929174b27b072a04b714dca0d241c076c4a714
parent241b46540d4e1ab909cc8b1b494189c4800ebcfd (diff)
Add Npdm parsing into Ryujinx.HLE
-rw-r--r--Ryujinx.HLE/OsHle/Horizon.cs20
-rw-r--r--Ryujinx.HLE/OsHle/SystemStateMgr.cs3
2 files changed, 23 insertions, 0 deletions
diff --git a/Ryujinx.HLE/OsHle/Horizon.cs b/Ryujinx.HLE/OsHle/Horizon.cs
index 70ae24be..4c117fa4 100644
--- a/Ryujinx.HLE/OsHle/Horizon.cs
+++ b/Ryujinx.HLE/OsHle/Horizon.cs
@@ -1,4 +1,5 @@
using Ryujinx.HLE.Loaders.Executables;
+using Ryujinx.HLE.Loaders.Npdm;
using Ryujinx.HLE.Logging;
using Ryujinx.HLE.OsHle.Handles;
using System;
@@ -76,6 +77,25 @@ namespace Ryujinx.HLE.OsHle
}
}
+ void LoadNpdm(string FileName)
+ {
+ string File = Directory.GetFiles(ExeFsDir, FileName)[0];
+
+ Ns.Log.PrintInfo(LogClass.Loader, "Loading Title Metadata...");
+
+ using (FileStream Input = new FileStream(File, FileMode.Open))
+ {
+ SystemStateMgr.TitleMetadata = new Npdm(Input);
+ }
+ }
+
+ LoadNpdm("*.npdm");
+
+ if (!SystemStateMgr.TitleMetadata.Is64Bits)
+ {
+ throw new Exception("32-bit titles are unsupported!");
+ }
+
LoadNso("rtld");
MainProcess.SetEmptyArgs();
diff --git a/Ryujinx.HLE/OsHle/SystemStateMgr.cs b/Ryujinx.HLE/OsHle/SystemStateMgr.cs
index e78082c4..32c88994 100644
--- a/Ryujinx.HLE/OsHle/SystemStateMgr.cs
+++ b/Ryujinx.HLE/OsHle/SystemStateMgr.cs
@@ -1,9 +1,12 @@
+using Ryujinx.HLE.Loaders.Npdm;
using System;
namespace Ryujinx.HLE.OsHle
{
public class SystemStateMgr
{
+ internal static Npdm TitleMetadata { get; set; }
+
internal static string[] LanguageCodes = new string[]
{
"ja",