aboutsummaryrefslogtreecommitdiff
path: root/scripts/set_checksums.py
blob: e05d1cf9f313edcacaa7eb7d9551da14863288fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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()