aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/ApplicationLoader.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/ApplicationLoader.cs')
-rw-r--r--Ryujinx.HLE/HOS/ApplicationLoader.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/ApplicationLoader.cs b/Ryujinx.HLE/HOS/ApplicationLoader.cs
index c44c40b5..5ca67445 100644
--- a/Ryujinx.HLE/HOS/ApplicationLoader.cs
+++ b/Ryujinx.HLE/HOS/ApplicationLoader.cs
@@ -146,6 +146,20 @@ namespace Ryujinx.HLE.HOS
_contentManager.LoadEntries(_device);
+ _contentManager.ClearAocData();
+ _contentManager.AddAocData(securePartition, xciFile, mainNca.Header.TitleId);
+
+ // Check all nsp's in the base directory for AOC
+ foreach (var fn in new FileInfo(xciFile).Directory.EnumerateFiles("*.nsp"))
+ {
+ using (FileStream fs = fn.OpenRead())
+ using (IStorage storage = fs.AsStorage())
+ using (PartitionFileSystem pfs = new PartitionFileSystem(storage))
+ {
+ _contentManager.AddAocData(pfs, fn.FullName, mainNca.Header.TitleId);
+ }
+ }
+
LoadNca(mainNca, patchNca, controlNca);
}
@@ -179,6 +193,21 @@ namespace Ryujinx.HLE.HOS
if (mainNca != null)
{
+ _contentManager.ClearAocData();
+ _contentManager.AddAocData(nsp, nspFile, mainNca.Header.TitleId);
+
+ // Check all nsp's in the base directory for AOC
+ foreach (var fn in new FileInfo(nspFile).Directory.EnumerateFiles("*.nsp"))
+ {
+ if (fn.FullName == nspFile) continue;
+ using (FileStream fs = fn.OpenRead())
+ using (IStorage storage = fs.AsStorage())
+ using (PartitionFileSystem pfs = new PartitionFileSystem(storage))
+ {
+ _contentManager.AddAocData(pfs, fn.FullName, mainNca.Header.TitleId);
+ }
+ }
+
LoadNca(mainNca, patchNca, controlNca);
return;