mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
Merge
hg-commit-id: d509fe34f171
This commit is contained in:
commit
e7a1d887d9
3 changed files with 177 additions and 16 deletions
70
common.asm
70
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
|
||||
|
@ -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
|
||||
|
@ -14407,7 +14407,32 @@ INCBIN "baserom.gbc",$19d21,$7f
|
|||
SilphCo4Texts: ; 0x19da0
|
||||
dw SilphCo4Text1, SilphCo4Text2, SilphCo4Text3, SilphCo4Text4, SilphCo4Text5, SilphCo4Text6, SilphCo4Text7
|
||||
|
||||
INCBIN "baserom.gbc",$19dae,$25
|
||||
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
|
||||
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
|
||||
|
@ -14428,7 +14453,7 @@ UnnamedText_19de5: ; 0x19de5
|
|||
|
||||
SilphCo4Text2: ; 0x19dea
|
||||
db $08 ; asm
|
||||
ld hl, $5dae
|
||||
ld hl, TrainerHeader_19dae
|
||||
call LoadTrainerHeader
|
||||
jp TextScriptEnd
|
||||
|
||||
|
@ -14470,7 +14495,7 @@ UnnamedText_19e17: ; 0x19e17
|
|||
|
||||
SilphCo4Text4: ; 0x19e1c
|
||||
db $08 ; asm
|
||||
ld hl, $5dc6
|
||||
ld hl, TrainerHeader_19dc6
|
||||
call LoadTrainerHeader
|
||||
jp TextScriptEnd
|
||||
|
||||
|
@ -14548,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
|
||||
|
@ -14569,7 +14613,7 @@ UnnamedText_1a015: ; 0x1a015
|
|||
|
||||
SilphCo5Text2: ; 0x1a01a
|
||||
db $08 ; asm
|
||||
ld hl, $5fd2
|
||||
ld hl, TrainerHeader_19fd2
|
||||
call LoadTrainerHeader
|
||||
jp TextScriptEnd
|
||||
|
||||
|
@ -14590,7 +14634,7 @@ UnnamedText_1a02e: ; 0x1a02e
|
|||
|
||||
SilphCo5Text3: ; 0x1a033
|
||||
db $08 ; asm
|
||||
ld hl, $5fde
|
||||
ld hl, TrainerHeader_19fde
|
||||
call LoadTrainerHeader
|
||||
jp TextScriptEnd
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
117
extras/pretty_trainer_headers.py
Normal file
117
extras/pretty_trainer_headers.py
Normal file
|
@ -0,0 +1,117 @@
|
|||
#!/usr/bin/python
|
||||
#author: Bryan Bishop <kanzure@gmail.com>
|
||||
#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):
|
||||
"""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)
|
||||
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
|
||||
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)
|
||||
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
|
||||
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)
|
||||
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
|
||||
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)
|
||||
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"
|
||||
|
||||
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()
|
Loading…
Reference in a new issue