summaryrefslogtreecommitdiff
path: root/explode_incbins.py
blob: 4e1af1b5fdedc12f5581de4a57dafba38c6df2b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import sys
import re

with open(sys.argv[1], 'rb') as rom:
    for fname in sys.argv[2:]:
        with open(fname, 'r+') as fp:
            lines = []
            for line in fp:
                m = re.search(r'\.incbin "baserom.nds", (0x\w+), (0x\w+)', line)
                if m is not None:
                    addr = int(m[1], 16)
                    size = int(m[2], 16)
                    rom.seek(addr)
                    for i in range(0, size, 16):
                        data = rom.read(min(size - i, 16))
                        lines.append('\t.byte ' + ', '.join(f'0x{k:02X}' for k in data) + '\n')
                else:
                    lines.append(line)
            fp.seek(0)
            fp.truncate()
            fp.write(''.join(lines))