diff options
-rw-r--r-- | gbz80disasm.py | 8 | ||||
-rw-r--r-- | parse_consecutive_strings.py | 25 |
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 |