Files
Diddy-Kong-Racing/tools/python/CopyRom.py
T

45 lines
1.0 KiB
Python
Raw Normal View History

2025-03-25 09:07:00 -04:00
#!/usr/bin/python3
import sys
NBYTES = 0x120000
def get_files(rom_file, mask_file):
total = 0
value = 0
while True:
# Read a block of bytes instead of a single byte
total = rom_file.read(4096)
if not total:
break
value += len(total)
mask_file.write(total)
return value
def write_dummy(out_file, n):
# Write in blocks of 4096 bytes instead of 1 byte
for _ in range(n//4096):
out_file.write(b'\xff' * 4096)
# write remaining bytes
out_file.write(b'\xff' * (n % 4096))
def main():
if len(sys.argv) != 3:
print("CopyRom ROM_file MASK_file", file=sys.stderr)
sys.exit(1)
try:
with open(sys.argv[1], 'rb') as rom_file, open(sys.argv[2], 'wb') as mask_file:
total = get_files(rom_file, mask_file)
if total < NBYTES:
write_dummy(mask_file, NBYTES - total)
sys.exit(1)
except OSError as e:
print(e, file=sys.stderr)
sys.exit(1)
if __name__ == '__main__':
main()