Add asset extractor script

This commit is contained in:
octorock 2021-09-04 10:01:12 +02:00
parent 453c799c9f
commit a868ae7228
2 changed files with 38 additions and 0 deletions

1
tools/asset_extractor/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
!asset_extractor.py

View File

@ -0,0 +1,37 @@
from pathlib import Path
import os
import sys
def extract_assets(variant):
print(f'Extract assets from {variant}.')
map = {
'USA': 'baserom.gba',
'EU': 'baserom_eu.gba',
'JP': 'baserom_jp.gba',
'DEMO': 'baserom_demo.gba'
}
baserom = None
with open(map[variant], 'rb') as file:
baserom = bytearray(file.read())
with open(f'assets_{variant}.csv', 'r') as file:
for line in file:
(path,start,size,_) = line.split(',')
if os.path.isfile(path):
print(f'{path} already extracted.')
else:
print(f'Extracting {path}...')
Path(os.path.dirname(path)).mkdir(parents=True, exist_ok=True)
with open(path, 'wb') as output:
output.write(baserom[int(start,16):int(start,16)+int(size,16)])
def main():
if len(sys.argv) == 1:
extract_assets('USA')
elif len(sys.argv) == 2:
extract_assets(sys.argv[1].upper())
else:
print('Usage: asset_extractor.py VARIANT')
if __name__ == '__main__':
main()