From 2f9df606d8df5ab4dfdd89fef481635ee2e234b7 Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Mon, 23 Jan 2012 19:28:13 -0600 Subject: clean up more comments hg-commit-id: b1f69c1d22a8 --- common.asm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common.asm b/common.asm index 3933458c..adfddb69 100644 --- a/common.asm +++ b/common.asm @@ -4150,7 +4150,7 @@ GetName: ; 376B ld e,l ld d,h jr .gotPtr\@ -.otherEntries\@ ;$378d +.otherEntries\@ ; $378d ;2-7 = OTHER ENTRIES ld a,[$d0b7] ld [$ffb8],a @@ -4162,7 +4162,7 @@ GetName: ; 376B ld e,a jr nc,.skip\@ inc d -.skip\@ ;$37a0 +.skip\@ ; $37a0 ld hl,NamePointers add hl,de ld a,[hli] @@ -4192,7 +4192,7 @@ GetName: ; 376B ld de,$cd6d ld bc,$0014 call CopyData -.gotPtr\@ ;$37cd +.gotPtr\@ ; $37cd ld a,e ld [$cf8d],a ld a,d @@ -4406,7 +4406,7 @@ Delay3: ; 3DD7 INCBIN "baserom.gbc",$3DDC,$3DED - $3DDC -GoPAL_SET_CF1C: ; 3ded +GoPAL_SET_CF1C: ; 3ded ld b,$ff GoPAL_SET: ; 3def ld a,[$cf1b] @@ -10833,7 +10833,7 @@ CaveMons: ENDC -GetItemUse: ;$D5C7 +GetItemUse: ; $D5C7 ld a,1 ld [$cd6a],a ld a,[$cf91] ;contains item_ID @@ -10850,7 +10850,7 @@ GetItemUse: ;$D5C7 ld l,a jp [hl] -ItemUsePtrTable: ;$D5E1 +ItemUsePtrTable: ; $D5E1 dw ItemUseBall ;$5687 masterball dw ItemUseBall ;$5687 ultraball dw ItemUseBall ;$5687 greatball -- cgit v1.2.3 From ef6da379d9e8ff261abb1e144b50bd2169ac4db7 Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Mon, 23 Jan 2012 19:51:44 -0600 Subject: another minor comment improvement hg-commit-id: bc6ea3b99e19 --- common.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.asm b/common.asm index adfddb69..c5060b99 100644 --- a/common.asm +++ b/common.asm @@ -11396,7 +11396,7 @@ UnnamedText_e247: ; 0xe247 db $50 ; 0xe247 + 5 bytes -OldRodCode: +OldRodCode: ; 0xe24c call $62b4 ; probably sets carry if not in battle or not by water jp c, ItemUseNotTime ld bc, (5 << 8) | MAGIKARP -- cgit v1.2.3 From 0b5e4e49db59311acf62b25737c0593a190278bf Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Tue, 24 Jan 2012 02:21:00 -0600 Subject: python for printing trainer headers hg-commit-id: c04285b83047 --- extras/pretty_map_headers.py | 6 +-- extras/pretty_trainer_headers.py | 91 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 extras/pretty_trainer_headers.py diff --git a/extras/pretty_map_headers.py b/extras/pretty_map_headers.py index b76e6cf4..729209ff 100644 --- a/extras/pretty_map_headers.py +++ b/extras/pretty_map_headers.py @@ -751,6 +751,6 @@ if __name__ == "__main__": #prepare to pretty print tx_fars #first you must load all_texts - tx_fars = find_all_tx_fars() - for entry in tx_fars: - print tx_far_pretty_printer(entry) + #tx_fars = find_all_tx_fars() + #for entry in tx_fars: + # print tx_far_pretty_printer(entry) diff --git a/extras/pretty_trainer_headers.py b/extras/pretty_trainer_headers.py new file mode 100644 index 00000000..b932cae0 --- /dev/null +++ b/extras/pretty_trainer_headers.py @@ -0,0 +1,91 @@ +#!/usr/bin/python +#author: Bryan Bishop +#date: 2012-01-24 +from optparse import OptionParser +from gbz80disasm import load_labels, find_label +spacing = "\t" + +def pretty_print_trainer_header(address, label=None): + """make pretty text for a trainer header""" + output = "" + bank_id = 0 + if address > 0x4000: + bank_id = address / 0x4000 + + rom = open("../baserom.gbc", "r").read() + + #convert address to an integer if necessary + if type(address) == str: + if "$" in address: address = address.replace("$", "0x") + address = int(address, 16) + + #label this section of asm + if label == None: + output += "TrainerHeader_" + hex(address)[2:] + ": ; 0x" + hex(address)[2:] + "\n" + else: + output += label + ": ; 0x" + hex(address)[2:] + "\n" + + #flag's bit + output += spacing + "db $" + hex(ord(rom[address]))[2:] + " ; flag's bit\n" + + #trainer's view range + view_range = ord(rom[address+1]) >> 4 + output += spacing + "db ($" + hex(view_range)[2:] + " << 4) ; trainer's view range\n" + + #flag's byte + pointer_byte1 = ord(rom[address+2]) + pointer_byte2 = ord(rom[address+3]) + partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) + partial_pointer = "$%.2x" % partial_pointer + output += spacing + "dw " + partial_pointer + " ; flag's byte\n" + + #TextBeforeBattle + pointer_byte1 = ord(rom[address+4]) + pointer_byte2 = ord(rom[address+5]) + partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) + label = find_label(partial_pointer, bank_id) + output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextBeforeBattle\n" + + #TextAfterBattle + pointer_byte1 = ord(rom[address+6]) + pointer_byte2 = ord(rom[address+7]) + partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) + label = find_label(partial_pointer, bank_id) + output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextAfterBattle\n" + + #TextEndBattle + pointer_byte1 = ord(rom[address+8]) + pointer_byte2 = ord(rom[address+9]) + partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) + label = find_label(partial_pointer, bank_id) + output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextEndBattle\n" + + #TextEndBattle + pointer_byte1 = ord(rom[address+10]) + pointer_byte2 = ord(rom[address+11]) + partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) + label = find_label(partial_pointer, bank_id) + output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextEndBattle\n" + + output += "; " + hex(address+10) + "\n" + + return output + +def main(): + load_labels() + + usage = "usage: %prog address" + parser = OptionParser(usage) + (options, args) = parser.parse_args() + if len(args) == 1: + print "usage: python pretty_trainer_headers.py address label\n" + args.append("TrainerHeader_" + (args[0].replace("0x", ""))) + elif len(args) != 2: + parser.error("we need both an address and a label") + address = int(args[0], 16) + label = args[1] + + print pretty_print_trainer_header(address, label) + +if __name__ == "__main__": + main() -- cgit v1.2.3 From e74e33a4f340d2301470a5c5b260532574250f88 Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Tue, 24 Jan 2012 02:38:18 -0600 Subject: some error reporting for trainer headers hg-commit-id: 63846843dfc2 --- extras/pretty_trainer_headers.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/extras/pretty_trainer_headers.py b/extras/pretty_trainer_headers.py index b932cae0..69e06d81 100644 --- a/extras/pretty_trainer_headers.py +++ b/extras/pretty_trainer_headers.py @@ -3,6 +3,8 @@ #date: 2012-01-24 from optparse import OptionParser from gbz80disasm import load_labels, find_label +from extract_maps import calculate_pointer +import sys spacing = "\t" def pretty_print_trainer_header(address, label=None): @@ -44,6 +46,12 @@ def pretty_print_trainer_header(address, label=None): pointer_byte2 = ord(rom[address+5]) partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) label = find_label(partial_pointer, bank_id) + if label == None: + print "label not found for (TextBeforeBattle) " + hex(calculate_pointer(partial_pointer, bank_id)) + print "" + label = "$" + hex(partial_pointer)[2:] + #sys.exit(0) + output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextBeforeBattle\n" #TextAfterBattle @@ -51,6 +59,12 @@ def pretty_print_trainer_header(address, label=None): pointer_byte2 = ord(rom[address+7]) partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) label = find_label(partial_pointer, bank_id) + if label == None: + print "label not found for (TextAfterBattle) " + hex(calculate_pointer(partial_pointer, bank_id)) + print "" + label = "$" + hex(partial_pointer)[2:] + #sys.exit(0) + output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextAfterBattle\n" #TextEndBattle @@ -58,6 +72,12 @@ def pretty_print_trainer_header(address, label=None): pointer_byte2 = ord(rom[address+9]) partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) label = find_label(partial_pointer, bank_id) + if label == None: + print "label not found for (TextEndBattle) " + hex(calculate_pointer(partial_pointer, bank_id)) + print "" + label = "$" + hex(partial_pointer)[2:] + #sys.exit(0) + output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextEndBattle\n" #TextEndBattle @@ -65,6 +85,12 @@ def pretty_print_trainer_header(address, label=None): pointer_byte2 = ord(rom[address+11]) partial_pointer = (pointer_byte1 + (pointer_byte2 << 8)) label = find_label(partial_pointer, bank_id) + if label == None: + print "label not found for (TextEndBattle) " + hex(calculate_pointer(partial_pointer, bank_id)) + print "" + label = "$" + hex(partial_pointer)[2:] + #sys.exit(0) + output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextEndBattle\n" output += "; " + hex(address+10) + "\n" -- cgit v1.2.3 From 52b72f0012fe7a5f73b81c8ef6fdc36fa76872e2 Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Tue, 24 Jan 2012 02:47:39 -0600 Subject: TextEndBattle is only used once hg-commit-id: c038c49301fc --- common.asm | 15 +++++++++++++-- extras/pretty_trainer_headers.py | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/common.asm b/common.asm index 78688c1e..273ada57 100644 --- a/common.asm +++ b/common.asm @@ -14407,7 +14407,18 @@ INCBIN "baserom.gbc",$19d21,$7f SilphCo4Texts: ; 0x19da0 dw SilphCo4Text1, SilphCo4Text2, SilphCo4Text3, SilphCo4Text4, SilphCo4Text5, SilphCo4Text6, SilphCo4Text7 -INCBIN "baserom.gbc",$19dae,$25 +INCBIN "baserom.gbc",$19dae,$19dc6 - $19dae + +TrainerHeader_19dc6: ; 0x19dc6 + db $4 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d829 ; flag's byte + dw UnnamedText_19e26 ; 0x5e26 TextBeforeBattle + dw UnnamedText_19e30 ; 0x5e30 TextAfterBattle + dw UnnamedText_19e2b ; 0x5e2b TextEndBattle +; 0x19dd0 + +INCBIN "baserom.gbc",$19dd0,$19dd3 - $19dd0 SilphCo4Text1: ; 0x19dd3 db $08 ; asm @@ -14470,7 +14481,7 @@ UnnamedText_19e17: ; 0x19e17 SilphCo4Text4: ; 0x19e1c db $08 ; asm - ld hl, $5dc6 + ld hl, TrainerHeader_19dc6 call LoadTrainerHeader jp TextScriptEnd diff --git a/extras/pretty_trainer_headers.py b/extras/pretty_trainer_headers.py index 69e06d81..5d0f56a9 100644 --- a/extras/pretty_trainer_headers.py +++ b/extras/pretty_trainer_headers.py @@ -91,7 +91,7 @@ def pretty_print_trainer_header(address, label=None): label = "$" + hex(partial_pointer)[2:] #sys.exit(0) - output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextEndBattle\n" + #output += spacing + "dw " + label + " ; " + hex(partial_pointer) + " TextEndBattle\n" output += "; " + hex(address+10) + "\n" -- cgit v1.2.3 From 3333728b61817b0fe2b8d912eac32ae36cdd50a8 Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Tue, 24 Jan 2012 02:58:20 -0600 Subject: insert a few more trainer headers hg-commit-id: 1ca94c2e1fe8 --- common.asm | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/common.asm b/common.asm index 273ada57..3f02289a 100644 --- a/common.asm +++ b/common.asm @@ -14407,7 +14407,21 @@ INCBIN "baserom.gbc",$19d21,$7f SilphCo4Texts: ; 0x19da0 dw SilphCo4Text1, SilphCo4Text2, SilphCo4Text3, SilphCo4Text4, SilphCo4Text5, SilphCo4Text6, SilphCo4Text7 -INCBIN "baserom.gbc",$19dae,$19dc6 - $19dae +TrainerHeader_19dae: ; 0x19dae + db $2 ; flag's bit + db ($4 << 4) ; trainer's view range + dw $d829 ; flag's byte + dw UnnamedText_19df4 ; 0x5df4 TextBeforeBattle + dw UnnamedText_19dfe ; 0x5dfe TextAfterBattle + dw UnnamedText_19df9 ; 0x5df9 TextEndBattle +; 0x19db8 + +INCBIN "baserom.gbc",$19db8,$19dba - $19db8 + +TrainerHeader_19dba: ; 0x19dba +INCBIN "baserom.gbc",$19dba,$19dc2 - $19dba + +INCBIN "baserom.gbc",$19dc2,4 TrainerHeader_19dc6: ; 0x19dc6 db $4 ; flag's bit @@ -14439,7 +14453,7 @@ UnnamedText_19de5: ; 0x19de5 SilphCo4Text2: ; 0x19dea db $08 ; asm - ld hl, $5dae + ld hl, TrainerHeader_19dae call LoadTrainerHeader jp TextScriptEnd @@ -14559,7 +14573,26 @@ INCBIN "baserom.gbc",$19f4d,$6f SilphCo5Texts: ; 0x19fbc dw SilphCo5Text1, SilphCo5Text2, SilphCo5Text3, SilphCo5Text4, SilphCo5Text5, SilphCo5Text6, SilphCo5Text7, SilphCo5Text8, SilphCo5Text9, SilphCo5Text10, SilphCo5Text11 -INCBIN "baserom.gbc",$19fd2,$31 +TrainerHeader_19fd2: ; 0x19fd2 + db $2 ; flag's bit + db ($1 << 4) ; trainer's view range + dw $d82b ; flag's byte + dw UnnamedText_1a024 ; 0x6024 TextBeforeBattle + dw UnnamedText_1a02e ; 0x602e TextAfterBattle + dw UnnamedText_1a029 ; 0x6029 TextEndBattle + dw UnnamedText_1a029 ; 0x6029 TextEndBattle +; 0x19fde + +TrainerHeader_19fde: ; 0x19fde + db $3 ; flag's bit + db ($2 << 4) ; trainer's view range + dw $d82b ; flag's byte + dw UnnamedText_1a03d ; 0x603d TextBeforeBattle + dw UnnamedText_1a047 ; 0x6047 TextAfterBattle + dw UnnamedText_1a042 ; 0x6042 TextEndBattle +; 0x19fe8 + +INCBIN "baserom.gbc",$19fe8,$1a003 - $19fe8 SilphCo5Text1: ; 0x1a003 db $08 ; asm @@ -14580,7 +14613,7 @@ UnnamedText_1a015: ; 0x1a015 SilphCo5Text2: ; 0x1a01a db $08 ; asm - ld hl, $5fd2 + ld hl, TrainerHeader_19fd2 call LoadTrainerHeader jp TextScriptEnd @@ -14601,7 +14634,7 @@ UnnamedText_1a02e: ; 0x1a02e SilphCo5Text3: ; 0x1a033 db $08 ; asm - ld hl, $5fde + ld hl, TrainerHeader_19fde call LoadTrainerHeader jp TextScriptEnd -- cgit v1.2.3