aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2022-05-31 16:16:59 -0300
committerGitHub <noreply@github.com>2022-05-31 16:16:59 -0300
commit9827dc35e14cb704cb4adcb894e0efbac893080c (patch)
tree846c0b6b35a9065154e11b6d08be1a00099a3126
parent448723d3b36cc41bcff0936586895c92ca30a73e (diff)
Allow loading NSPs without a NCA inside (#3364)1.1.133
* Allow loading NSPs without a NCA inside * Set isHomebrew as true
-rw-r--r--Ryujinx.HLE/HOS/ApplicationLoader.cs13
1 files changed, 3 insertions, 10 deletions
diff --git a/Ryujinx.HLE/HOS/ApplicationLoader.cs b/Ryujinx.HLE/HOS/ApplicationLoader.cs
index 50ab9e1f..893a0c97 100644
--- a/Ryujinx.HLE/HOS/ApplicationLoader.cs
+++ b/Ryujinx.HLE/HOS/ApplicationLoader.cs
@@ -280,13 +280,6 @@ namespace Ryujinx.HLE.HOS
return;
}
- if (mainNca == null)
- {
- Logger.Error?.Print(LogClass.Loader, "Unable to load NSP: Could not find Main NCA");
-
- return;
- }
-
if (mainNca != null)
{
_device.Configuration.ContentManager.ClearAocData();
@@ -298,7 +291,7 @@ namespace Ryujinx.HLE.HOS
}
// This is not a normal NSP, it's actually a ExeFS as a NSP
- LoadExeFs(nsp);
+ LoadExeFs(nsp, null, isHomebrew: true);
}
public void LoadNca(string ncaFile)
@@ -593,7 +586,7 @@ namespace Ryujinx.HLE.HOS
}
}
- private void LoadExeFs(IFileSystem codeFs, MetaLoader metaData = null)
+ private void LoadExeFs(IFileSystem codeFs, MetaLoader metaData = null, bool isHomebrew = false)
{
if (_device.Configuration.VirtualFileSystem.ModLoader.ReplaceExefsPartition(TitleId, ref codeFs))
{
@@ -661,7 +654,7 @@ namespace Ryujinx.HLE.HOS
Ptc.Initialize(TitleIdText, DisplayVersion, usePtc, memoryManagerMode);
// We allow it for nx-hbloader because it can be used to launch homebrew.
- bool allowCodeMemoryForJit = TitleId == 0x010000000000100DUL;
+ bool allowCodeMemoryForJit = TitleId == 0x010000000000100DUL || isHomebrew;
metaData.GetNpdm(out Npdm npdm).ThrowIfFailure();
ProgramInfo programInfo = new ProgramInfo(in npdm, allowCodeMemoryForJit);