diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/ApplicationLoader.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/ApplicationLoader.cs | 29 |
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; |