From b1f8f868f6fdec87bd3342ac379594bd695cbbfd Mon Sep 17 00:00:00 2001 From: Alex Barney Date: Mon, 23 Oct 2023 10:34:31 -0700 Subject: [PATCH] Fix the AOC manager using incorrect paths (#5840) * Fix the content manager using incorrect path for some AOC NCAs * Check Results in a few more places in the content manager --- src/Ryujinx.HLE/FileSystem/ContentManager.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Ryujinx.HLE/FileSystem/ContentManager.cs b/src/Ryujinx.HLE/FileSystem/ContentManager.cs index 8ade34a8b..724cb675c 100644 --- a/src/Ryujinx.HLE/FileSystem/ContentManager.cs +++ b/src/Ryujinx.HLE/FileSystem/ContentManager.cs @@ -198,7 +198,7 @@ namespace Ryujinx.HLE.FileSystem { using var ncaFile = new UniqueRef(); - fs.OpenFile(ref ncaFile.Ref, ncaPath.FullPath.ToU8Span(), OpenMode.Read); + fs.OpenFile(ref ncaFile.Ref, ncaPath.FullPath.ToU8Span(), OpenMode.Read).ThrowIfFailure(); var nca = new Nca(_virtualFileSystem.KeySet, ncaFile.Get.AsStorage()); if (nca.Header.ContentType != NcaContentType.Meta) { @@ -210,7 +210,7 @@ namespace Ryujinx.HLE.FileSystem using var pfs0 = nca.OpenFileSystem(0, integrityCheckLevel); using var cnmtFile = new UniqueRef(); - pfs0.OpenFile(ref cnmtFile.Ref, pfs0.EnumerateEntries().Single().FullPath.ToU8Span(), OpenMode.Read); + pfs0.OpenFile(ref cnmtFile.Ref, pfs0.EnumerateEntries().Single().FullPath.ToU8Span(), OpenMode.Read).ThrowIfFailure(); var cnmt = new Cnmt(cnmtFile.Get.AsStream()); if (cnmt.Type != ContentMetaType.AddOnContent || (cnmt.TitleId & 0xFFFFFFFFFFFFE000) != aocBaseId) @@ -220,7 +220,7 @@ namespace Ryujinx.HLE.FileSystem string ncaId = Convert.ToHexString(cnmt.ContentEntries[0].NcaId).ToLower(); - AddAocItem(cnmt.TitleId, containerPath, $"{ncaId}.nca", true); + AddAocItem(cnmt.TitleId, containerPath, $"/{ncaId}.nca", true); } } @@ -265,12 +265,12 @@ namespace Ryujinx.HLE.FileSystem { case ".xci": var xci = new Xci(_virtualFileSystem.KeySet, file.AsStorage()).OpenPartition(XciPartitionType.Secure); - xci.OpenFile(ref ncaFile.Ref, aoc.NcaPath.ToU8Span(), OpenMode.Read); + xci.OpenFile(ref ncaFile.Ref, aoc.NcaPath.ToU8Span(), OpenMode.Read).ThrowIfFailure(); break; case ".nsp": var pfs = new PartitionFileSystem(); pfs.Initialize(file.AsStorage()); - pfs.OpenFile(ref ncaFile.Ref, aoc.NcaPath.ToU8Span(), OpenMode.Read); + pfs.OpenFile(ref ncaFile.Ref, aoc.NcaPath.ToU8Span(), OpenMode.Read).ThrowIfFailure(); break; default: return false; // Print error? @@ -607,11 +607,11 @@ namespace Ryujinx.HLE.FileSystem if (filesystem.FileExists($"{path}/00")) { - filesystem.OpenFile(ref file.Ref, $"{path}/00".ToU8Span(), mode); + filesystem.OpenFile(ref file.Ref, $"{path}/00".ToU8Span(), mode).ThrowIfFailure(); } else { - filesystem.OpenFile(ref file.Ref, path.ToU8Span(), mode); + filesystem.OpenFile(ref file.Ref, path.ToU8Span(), mode).ThrowIfFailure(); } return file.Release();