hg-commit-id: 5d78a23cd0c7
This commit is contained in:
Bryan Bishop 2012-01-10 13:47:00 -06:00
commit 464f06ced7
3 changed files with 64 additions and 10 deletions

View file

@ -169,6 +169,7 @@ temp_opt_table = [
[ "LD A, L", 0x7d, 0 ], [ "LD A, L", 0x7d, 0 ],
[ "LD A, [$FF00+C]", 0xf2, 0 ], [ "LD A, [$FF00+C]", 0xf2, 0 ],
[ "LD A, [$FF00+x]", 0xf0, 1 ], [ "LD A, [$FF00+x]", 0xf0, 1 ],
#[ "LDH A, [x]", 0xf0, 1 ], #rgbds has trouble with this one?
[ "LD A, [BC]", 0xa, 0 ], [ "LD A, [BC]", 0xa, 0 ],
[ "LD A, [DE]", 0x1a, 0 ], [ "LD A, [DE]", 0x1a, 0 ],
[ "LD A, [HL+]", 0x2a, 0 ], [ "LD A, [HL+]", 0x2a, 0 ],
@ -221,7 +222,6 @@ temp_opt_table = [
[ "LD [$FF00+C], A", 0xe2, 0 ], [ "LD [$FF00+C], A", 0xe2, 0 ],
[ "LD [$FF00+x], A", 0xe0, 1 ], [ "LD [$FF00+x], A", 0xe0, 1 ],
[ "LD H, A", 0x67, 0 ], [ "LD H, A", 0x67, 0 ],
[ "LDH A, [x]", 0xf0, 1 ],
[ "LD H, B", 0x60, 0 ], [ "LD H, B", 0x60, 0 ],
[ "LD H, C", 0x61, 0 ], [ "LD H, C", 0x61, 0 ],
[ "LD H, D", 0x62, 0 ], [ "LD H, D", 0x62, 0 ],
@ -549,6 +549,7 @@ asm_commands = {
"3e48": "GivePokemon", "3e48": "GivePokemon",
"3dd7": "Delay3", "3dd7": "Delay3",
"3e2e": "GiveItem", "3e2e": "GiveItem",
"2f9e": "GetMonName",
} }
def random_asm_label(): def random_asm_label():
@ -598,11 +599,35 @@ def output_bank_opcodes(original_offset, max_byte_count=0x4000):
if temp_maybe in opt_table.keys(): if temp_maybe in opt_table.keys():
opstr = copy(opt_table[temp_maybe][0]) opstr = copy(opt_table[temp_maybe][0])
output += spacing + opstr.lower() #+ " ; " + hex(offset) if "x" in opstr:
output += "\n" for x in range(0, opstr.count("x")):
insertion = ord(rom[offset + 1])
insertion = "$" + hex(insertion)[2:]
opstr = opstr[:opstr.find("x")].lower() + insertion + opstr[opstr.find("x")+1:].lower()
current_byte += 1
offset += 1
if "?" in opstr:
for y in range(0, opstr.count("?")):
byte1 = ord(rom[offset + 1])
byte2 = ord(rom[offset + 2])
number = byte1
number += byte2 << 8;
insertion = "$%.4x" % (number)
opstr = opstr[:opstr.find("?")].lower() + insertion + opstr[opstr.find("?")+1:].lower()
current_byte_number += 2 current_byte_number += 2
offset += 2 offset += 2
output += spacing + opstr #+ " ; " + hex(offset)
output += "\n"
current_byte_number += 1
offset += 1
elif maybe_byte in opt_table.keys(): elif maybe_byte in opt_table.keys():
op_code = opt_table[maybe_byte] op_code = opt_table[maybe_byte]
op_code_type = op_code[1] op_code_type = op_code[1]
@ -611,6 +636,8 @@ def output_bank_opcodes(original_offset, max_byte_count=0x4000):
#type = -1 when it's the E op #type = -1 when it's the E op
#if op_code_type != -1: #if op_code_type != -1:
if op_code_type == 0 and ord(rom[offset]) == op_code_byte: if op_code_type == 0 and ord(rom[offset]) == op_code_byte:
op_str = op_code[0].lower()
output += spacing + op_code[0].lower() #+ " ; " + hex(offset) output += spacing + op_code[0].lower() #+ " ; " + hex(offset)
output += "\n" output += "\n"

View file

@ -424,7 +424,8 @@ if __name__ == "__main__":
#insert_08_asm(83, 1) #insert_08_asm(83, 1)
#insert_all_08s() #insert_all_08s()
insert_asm(0x31cc, "LoadTrainerHeader") insert_asm(0x2f9e, "GetMonName")
if len(failed_attempts) > 0:
print "-- FAILED ATTEMPTS --" print "-- FAILED ATTEMPTS --"
print str(failed_attempts) print str(failed_attempts)

View file

@ -1055,7 +1055,33 @@ Route2Text2: ; 0x24f4
call $3e6d call $3e6d
jp $24d7 jp $24d7
INCBIN "baserom.gbc",$24fd,$ad2 INCBIN "baserom.gbc",$24fd,$2f9e - $24fd
GetMonName: ; 0x2f9e
push hl
ld a, [$ff00+$b8]
push af
ld a, $7
ldh [$b8], a
ld [$2000], a
ld a, [$d11e]
dec a
ld hl, $421e
ld c, $a
ld b, $0
call $3a87
ld de, $cd6d
push de
ld bc, $000a
call $00b5
ld hl, $cd77
ld [hl], $50
pop de
pop af
ldh [$b8], a
ld [$2000], a
pop hl
ret
GetItemName: ; 2FCF GetItemName: ; 2FCF
; given an item ID at [$D11E], store the name of the item into a string ; given an item ID at [$D11E], store the name of the item into a string
@ -1360,7 +1386,7 @@ GetName: ; 376B
dec a dec a
jr nz,.otherEntries\@ jr nz,.otherEntries\@
;1 = MON_NAMES ;1 = MON_NAMES
call $2f9e; GetMonName call GetMonName
ld hl,11 ld hl,11
add hl,de add hl,de
ld e,l ld e,l