diff options
| author | lesmmwe <126415023+lesmmwe@users.noreply.github.com> | 2026-10-29 20:41:47 -0300 |
|---|---|---|
| committer | lesmmwe <126415023+lesmmwe@users.noreply.github.com> | 2026-10-29 20:41:47 -0300 |
| commit | dfa55d1679758dc8e5b80374c230bae5a733c6c8 (patch) | |
| tree | 6cd2746388d8fafce88774c826ad1eeee70dc2ab /src/core | |
| parent | 64d9632703d655dba9e0d147b939e5c1ae5e4681 (diff) | |
Update deconstructed_rom_directory.cpp
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/loader/deconstructed_rom_directory.cpp | 14 |
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; |
