patch_manager: Do not apply LayeredFS mods when dumping
We should not apply any mods when dumping a game's RomFS.
This commit is contained in:
parent
6ac978426c
commit
511ee03a21
|
@ -407,7 +407,7 @@ static void ApplyLayeredFS(VirtualFile& romfs, u64 title_id, ContentRecordType t
|
||||||
}
|
}
|
||||||
|
|
||||||
VirtualFile PatchManager::PatchRomFS(VirtualFile romfs, u64 ivfc_offset, ContentRecordType type,
|
VirtualFile PatchManager::PatchRomFS(VirtualFile romfs, u64 ivfc_offset, ContentRecordType type,
|
||||||
VirtualFile update_raw) const {
|
VirtualFile update_raw, bool apply_layeredfs) const {
|
||||||
const auto log_string = fmt::format("Patching RomFS for title_id={:016X}, type={:02X}",
|
const auto log_string = fmt::format("Patching RomFS for title_id={:016X}, type={:02X}",
|
||||||
title_id, static_cast<u8>(type));
|
title_id, static_cast<u8>(type));
|
||||||
|
|
||||||
|
@ -447,7 +447,9 @@ VirtualFile PatchManager::PatchRomFS(VirtualFile romfs, u64 ivfc_offset, Content
|
||||||
}
|
}
|
||||||
|
|
||||||
// LayeredFS
|
// LayeredFS
|
||||||
ApplyLayeredFS(romfs, title_id, type, fs_controller);
|
if (apply_layeredfs) {
|
||||||
|
ApplyLayeredFS(romfs, title_id, type, fs_controller);
|
||||||
|
}
|
||||||
|
|
||||||
return romfs;
|
return romfs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,8 @@ public:
|
||||||
// - LayeredFS
|
// - LayeredFS
|
||||||
[[nodiscard]] VirtualFile PatchRomFS(VirtualFile base, u64 ivfc_offset,
|
[[nodiscard]] VirtualFile PatchRomFS(VirtualFile base, u64 ivfc_offset,
|
||||||
ContentRecordType type = ContentRecordType::Program,
|
ContentRecordType type = ContentRecordType::Program,
|
||||||
VirtualFile update_raw = nullptr) const;
|
VirtualFile update_raw = nullptr,
|
||||||
|
bool apply_layeredfs = true) const;
|
||||||
|
|
||||||
// Returns a vector of pairs between patch names and patch versions.
|
// Returns a vector of pairs between patch names and patch versions.
|
||||||
// i.e. Update 3.2.2 will return {"Update", "3.2.2"}
|
// i.e. Update 3.2.2 will return {"Update", "3.2.2"}
|
||||||
|
|
|
@ -1922,7 +1922,8 @@ void GMainWindow::OnGameListDumpRomFS(u64 program_id, const std::string& game_pa
|
||||||
if (*romfs_title_id == program_id) {
|
if (*romfs_title_id == program_id) {
|
||||||
const u64 ivfc_offset = loader->ReadRomFSIVFCOffset();
|
const u64 ivfc_offset = loader->ReadRomFSIVFCOffset();
|
||||||
const FileSys::PatchManager pm{program_id, system.GetFileSystemController(), installed};
|
const FileSys::PatchManager pm{program_id, system.GetFileSystemController(), installed};
|
||||||
romfs = pm.PatchRomFS(file, ivfc_offset, FileSys::ContentRecordType::Program);
|
romfs =
|
||||||
|
pm.PatchRomFS(file, ivfc_offset, FileSys::ContentRecordType::Program, nullptr, false);
|
||||||
} else {
|
} else {
|
||||||
romfs = installed.GetEntry(*romfs_title_id, FileSys::ContentRecordType::Data)->GetRomFS();
|
romfs = installed.GetEntry(*romfs_title_id, FileSys::ContentRecordType::Data)->GetRomFS();
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue