9 std::string rom_filename = arg_vec[1];
10 std::string patch_filename = arg_vec[2];
12 auto source =
rom_.vector();
13 std::ifstream patch_file(patch_filename, std::ios::binary);
14 std::vector<uint8_t> patch;
15 patch.resize(
rom_.size());
16 patch_file.read((
char*)patch.data(), patch.size());
19 std::vector<uint8_t> patched;
23 std::ofstream patched_rom(
"patched.sfc", std::ios::binary);
24 patched_rom.write((
char*)patched.data(), patched.size());
26 return absl::OkStatus();
30 std::string patch_filename = arg_vec[1];
31 std::string rom_filename = arg_vec[2];
33 int buflen =
rom_.vector().size();
34 int romlen =
rom_.vector().size();
35 if (!asar_patch(patch_filename.c_str(), rom_filename.data(), buflen,
37 std::string error_message =
"Failed to apply patch: ";
39 const errordata* errors = asar_geterrors(&num_errors);
40 for (
int i = 0; i < num_errors; i++) {
41 error_message += absl::StrFormat(
"%s", errors[i].fullerrdata);
43 return absl::InternalError(error_message);
45 return absl::OkStatus();