From d76eda7d4672ae08c1532485eaa539f4b17b3f37 Mon Sep 17 00:00:00 2001 From: pkali Date: Thu, 22 May 2025 20:09:29 -0400 Subject: [PATCH] ex.py - asm generator for additional files --- art/ex.py | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 art/ex.py diff --git a/art/ex.py b/art/ex.py new file mode 100644 index 0000000..ebb7ce7 --- /dev/null +++ b/art/ex.py @@ -0,0 +1,68 @@ +import json +import sys + +def print_lines( + dta, line_from: int, line_to: int, skip_left: int = 0, skip_right: int = 0, f=sys.stdout,): + for d in dta[line_from:line_to]: + print( + f' dta ' + ','.join([f'${d[i:i + 2]}' for i in range(0 + skip_right, len(d) - skip_left, 2)]), + file=f) + +def write_asm(atrview, out, page, line_from, line_to, skip_left, skip_right): + with open(atrview, 'r', encoding='utf-8-sig') as f: + s = json.load(f) + for p in s['Pages']: + + if (isinstance(page, int) and p['Nr'] == page) or (isinstance(page, str) and p['Name'] == page): + dta = p['View'] + dta = [dta[i * 80:(i + 1) * 80][:64] for i in range(len(dta) // 80)] + break + + with open(out, 'wt') as f: + print_lines(dta, line_from, line_to, skip_left,skip_right, f) + + +write_asm( + atrview='title_fonts.atrview', + out='over_screen.asmx', + page=5, + line_from=0, + line_to=12, + skip_left=4, + skip_right=4) + +write_asm( + atrview="title.atrview", + out='title_logo.asmx', + page=1, + line_from=2, + line_to=2+8, + skip_left=4, + skip_right=4) + +write_asm( + atrview="title.atrview", + out='title_timber.asmx', + page=1, + line_from=12, + line_to=12+12, + skip_left=4, + skip_right=4) + +write_asm( + atrview="title_fonts.atrview", + out='difficulty_texts.asmx', + page=4, + line_from=0, + line_to=0+2, + skip_left=0, + skip_right=0) + +write_asm( + atrview="title_fonts.atrview", + out='credits.asmx', + page='Credits', + line_from=0, + line_to=0+10, + skip_left=0, + skip_right=0)