diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/dump_string.py | 41 | ||||
-rwxr-xr-x | tools/messages.py | 11 |
2 files changed, 35 insertions, 17 deletions
diff --git a/tools/dump_string.py b/tools/dump_string.py index 42fd347..1641944 100755 --- a/tools/dump_string.py +++ b/tools/dump_string.py @@ -7,6 +7,9 @@ file = open("DMGAKVJ0.1", "rb").read() bank = int(argv[1], 16) addr = int(argv[2], 16) +count = 1 +if len(argv) > 3: + count = int(argv[3], 0) offset = addr if bank > 0: @@ -18,18 +21,26 @@ for char in o_charmap: if o_charmap[char] not in charmap: charmap[o_charmap[char]] = char -while True: - value = file[offset] | (file[offset + 1] << 8) - offset += 2 - - if value == 0xffff: - print() - break - elif value == 0xfffe: - print() - continue - - if value in charmap: - print(charmap[value], end="") - else: - print("<%02x>" % value, end="") +print(".org %02x:%04x" % (bank, addr)) +for x in range(count): + bank = offset // 0x4000 + addr = offset % 0x4000 + if bank > 0: + addr += 0x4000 + + print("[message_%02x_%04x]" % (bank, addr)) + while True: + value = file[offset] | (file[offset + 1] << 8) + offset += 2 + + if value == 0xffff: + print("\n") + break + elif value == 0xfffe: + print() + continue + + if value in charmap: + print(charmap[value], end="") + else: + print("<%02x>" % value, end="") diff --git a/tools/messages.py b/tools/messages.py index a8a1431..089bbdd 100755 --- a/tools/messages.py +++ b/tools/messages.py @@ -55,7 +55,7 @@ def convert_message(message): err("%s: Unrecognized character '%s'" % (filename, char)) values.append(0xffff) - return " dw" + ", ".join(["$%04x" % val for val in values]) + return " dw " + ", ".join(["$%04x" % val for val in values]) name = None message = None @@ -70,8 +70,8 @@ for i, line in enumerate(open(filename)): if name is not None or message is not None: print("\n%s::" % name) print(convert_message(message)) - message = "" name = line[1:-2] + message = "" continue if line.startswith(".org "): @@ -83,6 +83,13 @@ for i, line in enumerate(open(filename)): continue bank = split[0] addr = split[1] + + if name is not None or message is not None: + print("\n%s::" % name) + print(convert_message(message)) + name = None + message = None + if i != 0: print() print("SECTION \"%s %s:%s\", ROMX[$%s], BANK[$%s]" % |