summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gbz80disasm.py8
-rw-r--r--parse_consecutive_strings.py25
2 files changed, 32 insertions, 1 deletions
diff --git a/gbz80disasm.py b/gbz80disasm.py
index efb4689..d57a190 100644
--- a/gbz80disasm.py
+++ b/gbz80disasm.py
@@ -861,4 +861,10 @@ def all_outstanding_labels_are_reverse(byte_labels, offset):
if __name__ == "__main__":
- print output_bank_opcodes(int(sys.argv[1], 16))[0]
+ addr = sys.argv[1]
+ if ":" in addr:
+ addr = addr.split(":")
+ addr = int(addr[0], 16)*0x4000+(int(addr[1], 16)%0x4000)
+ else:
+ addr = int(addr, 16)
+ print output_bank_opcodes(addr)[0]
diff --git a/parse_consecutive_strings.py b/parse_consecutive_strings.py
new file mode 100644
index 0000000..4c864ba
--- /dev/null
+++ b/parse_consecutive_strings.py
@@ -0,0 +1,25 @@
+import sys
+
+import crystal
+
+rom = crystal.load_rom()
+
+addr = int(sys.argv[1], 16)
+count = int(sys.argv[2]) if len(sys.argv) > 2 else 256
+label_prefix = sys.argv[3] if len(sys.argv) > 3 else "UnknownString"
+
+ex = None
+
+for i in range(count):
+ try:
+ string = crystal.PokedexText(addr)
+ asm = string.to_asm()
+ except Exception as ex:
+ break
+ print label_prefix+str(i)+": ; "+hex(addr)
+ print "\t"+asm
+ print
+ addr = string.last_address
+
+print "; "+hex(addr)
+if ex: raise ex