diff options
author | bunnei <bunneidev@gmail.com> | 2022-08-21 07:26:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-21 07:26:02 +0200 |
commit | e37e3d3634cefb18a90b094cfd000535d08d1944 (patch) | |
tree | 37ef056c6cfa0b7702eef12b1289c65357c01ecb /src/core/file_sys/patch_manager.cpp | |
parent | Merge pull request #8783 from german77/looong (diff) | |
parent | core/file_sys: fix BuildId padding (diff) | |
download | yuzu-e37e3d3634cefb18a90b094cfd000535d08d1944.tar yuzu-e37e3d3634cefb18a90b094cfd000535d08d1944.tar.gz yuzu-e37e3d3634cefb18a90b094cfd000535d08d1944.tar.bz2 yuzu-e37e3d3634cefb18a90b094cfd000535d08d1944.tar.lz yuzu-e37e3d3634cefb18a90b094cfd000535d08d1944.tar.xz yuzu-e37e3d3634cefb18a90b094cfd000535d08d1944.tar.zst yuzu-e37e3d3634cefb18a90b094cfd000535d08d1944.zip |
Diffstat (limited to 'src/core/file_sys/patch_manager.cpp')
-rw-r--r-- | src/core/file_sys/patch_manager.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp index bd525b26c..41348ab26 100644 --- a/src/core/file_sys/patch_manager.cpp +++ b/src/core/file_sys/patch_manager.cpp @@ -191,6 +191,7 @@ VirtualDir PatchManager::PatchExeFS(VirtualDir exefs) const { std::vector<VirtualFile> PatchManager::CollectPatches(const std::vector<VirtualDir>& patch_dirs, const std::string& build_id) const { const auto& disabled = Settings::values.disabled_addons[title_id]; + const auto nso_build_id = fmt::format("{:0>64}", build_id); std::vector<VirtualFile> out; out.reserve(patch_dirs.size()); @@ -203,21 +204,18 @@ std::vector<VirtualFile> PatchManager::CollectPatches(const std::vector<VirtualD for (const auto& file : exefs_dir->GetFiles()) { if (file->GetExtension() == "ips") { auto name = file->GetName(); - const auto p1 = name.substr(0, name.find('.')); - const auto this_build_id = p1.substr(0, p1.find_last_not_of('0') + 1); - if (build_id == this_build_id) + const auto this_build_id = + fmt::format("{:0>64}", name.substr(0, name.find('.'))); + if (nso_build_id == this_build_id) out.push_back(file); } else if (file->GetExtension() == "pchtxt") { IPSwitchCompiler compiler{file}; if (!compiler.IsValid()) continue; - auto this_build_id = Common::HexToString(compiler.GetBuildID()); - this_build_id = - this_build_id.substr(0, this_build_id.find_last_not_of('0') + 1); - - if (build_id == this_build_id) + const auto this_build_id = Common::HexToString(compiler.GetBuildID()); + if (nso_build_id == this_build_id) out.push_back(file); } } |