patch_manager: Add support for dumping decompressed NSOs

When enabled in settings, PatchNSO will dump the unmodified NSO that it was passed to a file named <build id>.nso in the dump root for the current title ID.
This commit is contained in:
Zach Hilman 2018-10-29 16:10:16 -04:00
parent 48eb3742b9
commit 1c0226815d
2 changed files with 14 additions and 1 deletions

View file

@ -154,7 +154,7 @@ std::optional<VAddr> AppLoader_NSO::LoadModule(const FileSys::VfsFile& file, VAd
program_image.resize(image_size);
// Apply patches if necessary
if (pm && pm->HasNSOPatch(nso_header.build_id)) {
if (pm && (pm->HasNSOPatch(nso_header.build_id) || Settings::values.dump_nso)) {
std::vector<u8> pi_header(program_image.size() + 0x100);
std::memcpy(pi_header.data(), &nso_header, sizeof(NsoHeader));
std::memcpy(pi_header.data() + 0x100, program_image.data(), program_image.size());