diff options
| -rw-r--r-- | src/core/file_sys/patch_manager.cpp | 25 | ||||
| -rw-r--r-- | src/core/file_sys/sdmc_factory.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/filesystem.cpp | 3 |
3 files changed, 10 insertions, 21 deletions
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp index 6f5aa6da2..13d294ad8 100644 --- a/src/core/file_sys/patch_manager.cpp +++ b/src/core/file_sys/patch_manager.cpp | |||
| @@ -529,26 +529,13 @@ PatchManager::PatchVersionNames PatchManager::GetPatchVersionNames(VirtualFile u | |||
| 529 | } | 529 | } |
| 530 | } | 530 | } |
| 531 | 531 | ||
| 532 | // SDMC mod directory (LayeredFS) | 532 | // SDMC mod directory (RomFS LayeredFS) |
| 533 | const auto sdmc_mod_dir = fs_controller.GetSDMCModificationLoadRoot(title_id); | 533 | const auto sdmc_mod_dir = fs_controller.GetSDMCModificationLoadRoot(title_id); |
| 534 | if (sdmc_mod_dir != nullptr && sdmc_mod_dir->GetSize() > 0) { | 534 | if (sdmc_mod_dir != nullptr && sdmc_mod_dir->GetSize() > 0 && |
| 535 | std::string types; | 535 | IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "romfs"))) { |
| 536 | 536 | const auto mod_disabled = | |
| 537 | const auto exefs_dir = FindSubdirectoryCaseless(sdmc_mod_dir, "exefs"); | 537 | std::find(disabled.begin(), disabled.end(), "SDMC") != disabled.end(); |
| 538 | if (IsDirValidAndNonEmpty(exefs_dir)) { | 538 | out.insert_or_assign(mod_disabled ? "[D] SDMC" : "SDMC", "LayeredFS"); |
| 539 | bool layeredfs = false; | ||
| 540 | |||
| 541 | if (layeredfs) | ||
| 542 | AppendCommaIfNotEmpty(types, "LayeredExeFS"); | ||
| 543 | } | ||
| 544 | if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "romfs"))) | ||
| 545 | AppendCommaIfNotEmpty(types, "LayeredFS"); | ||
| 546 | |||
| 547 | if (!types.empty()) { | ||
| 548 | const auto mod_disabled = | ||
| 549 | std::find(disabled.begin(), disabled.end(), "SDMC") != disabled.end(); | ||
| 550 | out.insert_or_assign(mod_disabled ? "[D] SDMC" : "SDMC", types); | ||
| 551 | } | ||
| 552 | } | 539 | } |
| 553 | 540 | ||
| 554 | // DLC | 541 | // DLC |
diff --git a/src/core/file_sys/sdmc_factory.cpp b/src/core/file_sys/sdmc_factory.cpp index f4dba8f16..7e878123c 100644 --- a/src/core/file_sys/sdmc_factory.cpp +++ b/src/core/file_sys/sdmc_factory.cpp | |||
| @@ -29,8 +29,9 @@ ResultVal<VirtualDir> SDMCFactory::Open() const { | |||
| 29 | 29 | ||
| 30 | VirtualDir SDMCFactory::GetSDMCModificationLoadRoot(u64 title_id) const { | 30 | VirtualDir SDMCFactory::GetSDMCModificationLoadRoot(u64 title_id) const { |
| 31 | // LayeredFS doesn't work on updates and title id-less homebrew | 31 | // LayeredFS doesn't work on updates and title id-less homebrew |
| 32 | if (title_id == 0 || (title_id & 0xFFF) == 0x800) | 32 | if (title_id == 0 || (title_id & 0xFFF) == 0x800) { |
| 33 | return nullptr; | 33 | return nullptr; |
| 34 | } | ||
| 34 | return GetOrCreateDirectoryRelative(dir, fmt::format("/atmosphere/contents/{:016X}", title_id)); | 35 | return GetOrCreateDirectoryRelative(dir, fmt::format("/atmosphere/contents/{:016X}", title_id)); |
| 35 | } | 36 | } |
| 36 | 37 | ||
diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index 9191f19fe..d66e74d3a 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp | |||
| @@ -706,8 +706,9 @@ FileSys::VirtualDir FileSystemController::GetModificationLoadRoot(u64 title_id) | |||
| 706 | FileSys::VirtualDir FileSystemController::GetSDMCModificationLoadRoot(u64 title_id) const { | 706 | FileSys::VirtualDir FileSystemController::GetSDMCModificationLoadRoot(u64 title_id) const { |
| 707 | LOG_TRACE(Service_FS, "Opening SDMC mod load root for tid={:016X}", title_id); | 707 | LOG_TRACE(Service_FS, "Opening SDMC mod load root for tid={:016X}", title_id); |
| 708 | 708 | ||
| 709 | if (sdmc_factory == nullptr) | 709 | if (sdmc_factory == nullptr) { |
| 710 | return nullptr; | 710 | return nullptr; |
| 711 | } | ||
| 711 | 712 | ||
| 712 | return sdmc_factory->GetSDMCModificationLoadRoot(title_id); | 713 | return sdmc_factory->GetSDMCModificationLoadRoot(title_id); |
| 713 | } | 714 | } |