aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys/patch_manager.cpp
diff options
context:
space:
mode:
authorsmiRaphi <neogt404@gmail.com>2026-05-13 19:13:44 +0200
committercrueter <crueter@eden-emu.dev>2026-05-13 19:13:44 +0200
commit28a2ff1b9474c673ba3acb266aaf18b344321dbe (patch)
tree7894cbe76b8fdf50a97b3d77a2a7487a11224b2d /src/core/file_sys/patch_manager.cpp
parentd8070c74c3bc8817ec619c8d99166e0112512c78 (diff)
[file_sys] fix romfs_ext mods (#3914)
Makes them show up in the menu & also let's them load from SDMC Note: the android edit is totally untested and I've no clue of Kotlin but I don't see a reason why it shouldn't work Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3914 Reviewed-by: crueter <crueter@eden-emu.dev>
Diffstat (limited to 'src/core/file_sys/patch_manager.cpp')
-rw-r--r--src/core/file_sys/patch_manager.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp
index 6af926eac0..80372ec94e 100644
--- a/src/core/file_sys/patch_manager.cpp
+++ b/src/core/file_sys/patch_manager.cpp
@@ -569,12 +569,11 @@ static void ApplyLayeredFS(VirtualFile& romfs, u64 title_id, ContentRecordType t
layers.emplace_back(std::move(extracted));
auto layered = LayeredVfsDirectory::MakeLayeredDirectory(std::move(layers));
- if (layered == nullptr) {
+ auto layered_ext = LayeredVfsDirectory::MakeLayeredDirectory(std::move(layers_ext));
+ if (layered == nullptr && layered_ext == nullptr) {
return;
}
- auto layered_ext = LayeredVfsDirectory::MakeLayeredDirectory(std::move(layers_ext));
-
auto packed = CreateRomFS(std::move(layered), std::move(layered_ext));
if (packed == nullptr) {
return;
@@ -943,6 +942,8 @@ std::vector<Patch> PatchManager::GetPatches(VirtualFile update_raw) const {
if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(mod, "romfs")) ||
IsDirValidAndNonEmpty(FindSubdirectoryCaseless(mod, "romfslite")))
AppendCommaIfNotEmpty(types, "LayeredFS");
+ if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(mod, "romfs_ext")))
+ AppendCommaIfNotEmpty(types, "ExtLayeredFS");
if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(mod, "cheats")))
AppendCommaIfNotEmpty(types, "Cheats");
@@ -965,13 +966,13 @@ std::vector<Patch> PatchManager::GetPatches(VirtualFile update_raw) const {
const auto sdmc_mod_dir = fs_controller.GetSDMCModificationLoadRoot(title_id);
if (sdmc_mod_dir != nullptr) {
std::string types;
- if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "exefs"))) {
+ if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "exefs")))
AppendCommaIfNotEmpty(types, "LayeredExeFS");
- }
if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "romfs")) ||
- IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "romfslite"))) {
+ IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "romfslite")))
AppendCommaIfNotEmpty(types, "LayeredFS");
- }
+ if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "romfs_ext")))
+ AppendCommaIfNotEmpty(types, "ExtLayeredFS");
if (!types.empty()) {
const auto mod_disabled =