early-access version 2913

main
pineappleEA 2022-08-21 09:29:18 +02:00
parent c51ebc1b5a
commit d4d68be38e
3 changed files with 8 additions and 12 deletions

View File

@ -1,7 +1,7 @@
yuzu emulator early access yuzu emulator early access
============= =============
This is the source code for early-access 2912. This is the source code for early-access 2913.
## Legal Notice ## Legal Notice

View File

@ -217,9 +217,7 @@ void IPSwitchCompiler::Parse() {
break; break;
} else if (StartsWith(line, "@nsobid-")) { } else if (StartsWith(line, "@nsobid-")) {
// NSO Build ID Specifier // NSO Build ID Specifier
auto raw_build_id = line.substr(8); const auto raw_build_id = fmt::format("{:0>64}", line.substr(8));
if (raw_build_id.size() != 0x40)
raw_build_id.resize(0x40, '0');
nso_build_id = Common::HexStringToArray<0x20>(raw_build_id); nso_build_id = Common::HexStringToArray<0x20>(raw_build_id);
} else if (StartsWith(line, "#")) { } else if (StartsWith(line, "#")) {
// Mandatory Comment // Mandatory Comment

View File

@ -191,6 +191,7 @@ VirtualDir PatchManager::PatchExeFS(VirtualDir exefs) const {
std::vector<VirtualFile> PatchManager::CollectPatches(const std::vector<VirtualDir>& patch_dirs, std::vector<VirtualFile> PatchManager::CollectPatches(const std::vector<VirtualDir>& patch_dirs,
const std::string& build_id) const { const std::string& build_id) const {
const auto& disabled = Settings::values.disabled_addons[title_id]; const auto& disabled = Settings::values.disabled_addons[title_id];
const auto nso_build_id = fmt::format("{:0>64}", build_id);
std::vector<VirtualFile> out; std::vector<VirtualFile> out;
out.reserve(patch_dirs.size()); 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()) { for (const auto& file : exefs_dir->GetFiles()) {
if (file->GetExtension() == "ips") { if (file->GetExtension() == "ips") {
auto name = file->GetName(); 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); out.push_back(file);
} else if (file->GetExtension() == "pchtxt") { } else if (file->GetExtension() == "pchtxt") {
IPSwitchCompiler compiler{file}; IPSwitchCompiler compiler{file};
if (!compiler.IsValid()) if (!compiler.IsValid())
continue; continue;
auto this_build_id = Common::HexToString(compiler.GetBuildID()); const auto this_build_id = Common::HexToString(compiler.GetBuildID());
this_build_id = if (nso_build_id == this_build_id)
this_build_id.substr(0, this_build_id.find_last_not_of('0') + 1);
if (build_id == this_build_id)
out.push_back(file); out.push_back(file);
} }
} }