summaryrefslogtreecommitdiff
path: root/tools/dump_string.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dump_string.py')
-rwxr-xr-xtools/dump_string.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/dump_string.py b/tools/dump_string.py
new file mode 100755
index 0000000..42fd347
--- /dev/null
+++ b/tools/dump_string.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+
+from sys import argv
+from charmap import parse_charmap
+
+file = open("DMGAKVJ0.1", "rb").read()
+
+bank = int(argv[1], 16)
+addr = int(argv[2], 16)
+
+offset = addr
+if bank > 0:
+ offset += 0x4000 * (bank - 1)
+
+o_charmap, constants = parse_charmap("data/charmap.txt")
+charmap = {}
+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="")