summaryrefslogtreecommitdiff
path: root/tools/dump_string.py
diff options
context:
space:
mode:
authormid-kid <esteve.varela@gmail.com>2020-09-13 22:22:44 +0200
committermid-kid <esteve.varela@gmail.com>2020-09-13 22:22:44 +0200
commit26839aa6f554a1623d5b943ebe48761d62778292 (patch)
tree024eb70de9d22baac29e6f97df0bae2fd8658ee8 /tools/dump_string.py
parent871b566c726c7e8b3288682b4826b957b5dcc72b (diff)
Fix tools/dump_string.py after removing charmap.py
Diffstat (limited to 'tools/dump_string.py')
-rwxr-xr-xtools/dump_string.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/tools/dump_string.py b/tools/dump_string.py
index caf361b..2465288 100755
--- a/tools/dump_string.py
+++ b/tools/dump_string.py
@@ -1,7 +1,6 @@
#!/usr/bin/env python3
from sys import argv
-from charmap import parse_charmap
file = open("DMGAKVJ0.1", "rb").read()
@@ -20,30 +19,40 @@ 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
+for line in open("include/charmap.inc"):
+ if line.startswith("charmap "):
+ split = line.split(";")[0].split(" ", 1)[1].split(",")
+ if len(split) != 2:
+ continue
+
+ char = split[0].strip()
+ value = int(split[1].strip())
+
+ if not char.startswith("\"") or not char.endswith("\""):
+ continue
+ char = char[1:-1]
+
+ charmap[value] = char
-print(".org %02x:%04x" % (bank, addr))
for x in range(count):
bank = offset // 0x4000
addr = offset % 0x4000
if bank > 0:
addr += 0x4000
- print("[string_%02x_%04x]" % (bank, addr))
+ print("string_%02x_%04x::" % (bank, addr))
while True:
if multistring:
if file[offset] == 0:
offset += 1
- print("\n.db 0\n")
+ print("\"\n db 0\n")
break
val = file[offset] | (file[offset + 1] << 8)
- print(".dw %d" % val)
+ print(" dw %d" % val)
offset += 2
+ print(" text \"", end="")
while True:
value = file[offset] | (file[offset + 1] << 8)
offset += 2
@@ -51,7 +60,7 @@ for x in range(count):
if value == 0xffff:
break
elif value == 0xfffe:
- print()
+ print("\"\n line \"")
continue
if value in charmap:
@@ -60,5 +69,5 @@ for x in range(count):
print("<%02x>" % value, end="")
if not multistring:
- print("\n")
+ print("\"\n")
break