diff options
Diffstat (limited to 'scripts/set_checksums.py')
-rw-r--r-- | scripts/set_checksums.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/scripts/set_checksums.py b/scripts/set_checksums.py new file mode 100644 index 0000000..e05d1cf --- /dev/null +++ b/scripts/set_checksums.py @@ -0,0 +1,24 @@ +import sys + +if len(sys.argv) != 2: + raise ValueError("Rom file must be specified as first argument") + +rom_filename = sys.argv[1] + +rom_file = open(rom_filename, 'r+b') + +rom_file.seek(0x0134) + +header = rom_file.read(0x19) + +header_checksum = 0 +for b in header: + header_checksum = (header_checksum - int(b) - 1) & 0xff + +print("HEADER CHECKSUM =", hex(header_checksum), file=sys.stderr) + +rom_file.seek(0x014d) + +rom_file.write(bytes(bytearray([header_checksum]))) + +rom_file.close() |