From 572412214017df1ffe0cb6f210e0aca77451ae1d Mon Sep 17 00:00:00 2001 From: pkali Date: Mon, 17 Jul 2023 09:57:30 -0400 Subject: [PATCH] inverse werks in manual --- Manuals/manual.asm | 2 +- Manuals/manual.xex | Bin 30344 -> 36593 bytes Manuals/manual_conv.py | 115 +++++++++++++++++++++++++++++++++++++++-- 3 files changed, 113 insertions(+), 4 deletions(-) diff --git a/Manuals/manual.asm b/Manuals/manual.asm index a7444fc..aa50bdc 100644 --- a/Manuals/manual.asm +++ b/Manuals/manual.asm @@ -153,7 +153,7 @@ escflag .byte 0 paddlestate .byte 0 .align 40 man_text_en - icl 'man_cart_txt_EN.asm' + ins 'manual.bin' ;icl 'man_cart_txt_EN.asm' man_text_en_end .align $400 diff --git a/Manuals/manual.xex b/Manuals/manual.xex index e9035949aa3a7f30a6df15bc84ad583205bf4dc5..47c2785a3e75fcd46e4d02644c02e1d20c41b550 100644 GIT binary patch delta 10802 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 delta 9663 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 diff --git a/Manuals/manual_conv.py b/Manuals/manual_conv.py index 5840132..128c1e9 100644 --- a/Manuals/manual_conv.py +++ b/Manuals/manual_conv.py @@ -28,7 +28,20 @@ def break_long_string(long_string): def remove_wierd(t: str) -> str: t = re.sub(r'!.*\)?', '', t) # remove embedded image - return re.sub(r'[#`]', '', t) + t = re.sub(r'[#`]', '', t) + # convert inverses (** to ascii+128 + i = 0 + out = '' + while i < len(t): + if t[i:i+2] == '**': + star2_i = t.find('**', i+1) + out += ''.join(chr(ord(x)+128) for x in t[i+2:star2_i]) + i = star2_i+2 + else: + out += t[i] + i += 1 + print(out) + return out with open(sys.argv[1], 'r') as f: @@ -144,12 +157,108 @@ utf_to_internal = { 'y': 121, 'z': 122, '|': 124, + # INVERSE + chr(ord(' ')+128): 128+0, + chr(ord('!')+128): 128+1, + chr(ord('"')+128): 128+2, + chr(ord('#')+128): 128+3, + chr(ord('$')+128): 128+4, + chr(ord('%')+128): 128+5, + chr(ord('&')+128): 128+6, + chr(ord("'")+128): 128+7, + chr(ord('(')+128): 128+8, + chr(ord(')')+128): 128+9, + chr(ord('*')+128): 128+10, + chr(ord('+')+128): 128+11, + chr(ord(',')+128): 128+12, + chr(ord('-')+128): 128+13, + chr(ord('.')+128): 128+14, + chr(ord('/')+128): 128+15, + chr(ord('0')+128): 128+16, + chr(ord('1')+128): 128+17, + chr(ord('2')+128): 128+18, + chr(ord('3')+128): 128+19, + chr(ord('4')+128): 128+20, + chr(ord('5')+128): 128+21, + chr(ord('6')+128): 128+22, + chr(ord('7')+128): 128+23, + chr(ord('8')+128): 128+24, + chr(ord('9')+128): 128+25, + chr(ord(':')+128): 128+26, + chr(ord(';')+128): 128+27, + chr(ord('<')+128): 128+28, + chr(ord('=')+128): 128+29, + chr(ord('>')+128): 128+30, + chr(ord('?')+128): 128+31, + chr(ord('@')+128): 128+32, + chr(ord('A')+128): 128+33, + chr(ord('B')+128): 128+34, + chr(ord('C')+128): 128+35, + chr(ord('D')+128): 128+36, + chr(ord('E')+128): 128+37, + chr(ord('F')+128): 128+38, + chr(ord('G')+128): 128+39, + chr(ord('H')+128): 128+40, + chr(ord('I')+128): 128+41, + chr(ord('J')+128): 128+42, + chr(ord('K')+128): 128+43, + chr(ord('L')+128): 128+44, + chr(ord('M')+128): 128+45, + chr(ord('N')+128): 128+46, + chr(ord('O')+128): 128+47, + chr(ord('P')+128): 128+48, + chr(ord('Q')+128): 128+49, + chr(ord('R')+128): 128+50, + chr(ord('S')+128): 128+51, + chr(ord('T')+128): 128+52, + chr(ord('U')+128): 128+53, + chr(ord('V')+128): 128+54, + chr(ord('W')+128): 128+55, + chr(ord('X')+128): 128+56, + chr(ord('Y')+128): 128+57, + chr(ord('Z')+128): 128+58, + chr(ord('[')+128): 128+59, + chr(ord('\\')+128): 128+60, + chr(ord(']')+128): 128+61, + chr(ord('^')+128): 128+62, + chr(ord('_')+128): 128+63, + chr(ord('a')+128): 128+97, + chr(ord('b')+128): 128+98, + chr(ord('c')+128): 128+99, + chr(ord('d')+128): 128+100, + chr(ord('e')+128): 128+101, + chr(ord('f')+128): 128+102, + chr(ord('g')+128): 128+103, + chr(ord('h')+128): 128+104, + chr(ord('i')+128): 128+105, + chr(ord('j')+128): 128+106, + chr(ord('k')+128): 128+107, + chr(ord('l')+128): 128+108, + chr(ord('m')+128): 128+109, + chr(ord('n')+128): 128+110, + chr(ord('o')+128): 128+111, + chr(ord('p')+128): 128+112, + chr(ord('q')+128): 128+113, + chr(ord('r')+128): 128+114, + chr(ord('s')+128): 128+115, + chr(ord('t')+128): 128+116, + chr(ord('u')+128): 128+117, + chr(ord('v')+128): 128+118, + chr(ord('w')+128): 128+119, + chr(ord('x')+128): 128+120, + chr(ord('y')+128): 128+121, + chr(ord('z')+128): 128+122, + chr(ord('|')+128): 128+124, } # convert to SCREENCODES bin_out = bytearray() for line in out2.split('\n'): for i, c in enumerate(line): - bin_out.append(utf_to_internal[c]) -print(bin_out) + if len(line) < 40: + bin_out += bytes(40-len(line)) + +# save to a file +with open('manual.bin', 'wb') as f: + f.write(bin_out) \ No newline at end of file