mirror of https://github.com/zeldaret/tmc.git
Add asset extractor script
This commit is contained in:
parent
453c799c9f
commit
a868ae7228
|
|
@ -0,0 +1 @@
|
|||
!asset_extractor.py
|
||||
|
|
@ -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()
|
||||
Loading…
Reference in New Issue