aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorlesmmwe <126415023+lesmmwe@users.noreply.github.com>2026-10-29 20:41:47 -0300
committerlesmmwe <126415023+lesmmwe@users.noreply.github.com>2026-10-29 20:41:47 -0300
commitdfa55d1679758dc8e5b80374c230bae5a733c6c8 (patch)
tree6cd2746388d8fafce88774c826ad1eeee70dc2ab /src/core
parent64d9632703d655dba9e0d147b939e5c1ae5e4681 (diff)
Update deconstructed_rom_directory.cpp
Diffstat (limited to 'src/core')
-rw-r--r--src/core/loader/deconstructed_rom_directory.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp
index 458e0210a0..62ea7ebe1d 100644
--- a/src/core/loader/deconstructed_rom_directory.cpp
+++ b/src/core/loader/deconstructed_rom_directory.cpp
@@ -214,6 +214,20 @@ AppLoader_DeconstructedRomDirectory::LoadResult AppLoader_DeconstructedRomDirect
}
metadata.Print();
+ // Loose-ExeFS loads bypass the NCA/NSP loaders, which are the ones that normally apply
+ // LayeredFS to the RomFS; apply it here so mods in user/load/<titleid>/ work too.
+ if (romfs != nullptr) {
+ const FileSys::PatchManager patch_manager(metadata.GetTitleID(),
+ system.GetFileSystemController(),
+ system.GetContentProvider());
+ auto patched = patch_manager.PatchRomFS(nullptr, romfs);
+ if (patched != nullptr) {
+ romfs = std::move(patched);
+ LOG_INFO(Loader, "Applied RomFS patches (LayeredFS) for title {:016X}",
+ metadata.GetTitleID());
+ }
+ }
+
// Enable NCE only for applications with 39-bit address space.
const bool is_39bit =
metadata.GetAddressSpaceType() == FileSys::ProgramAddressSpaceType::Is39Bit;