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