diff options
author | Sanky <gsanky@gmail.com> | 2012-02-25 22:03:30 +0100 |
---|---|---|
committer | Sanky <gsanky@gmail.com> | 2012-02-25 22:03:30 +0100 |
commit | 23175c2500c48fc7f186a84be96cae1004f31457 (patch) | |
tree | b19ce042cfe5c8b9f7d0fce91ec2f9988fa9be44 /main.asm | |
parent | 732e298db2494a5e643dbe53eee559ef4ef3279e (diff) |
More status screen disasm
hg-commit-id: 41da2aa53cdc
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 165 |
1 files changed, 122 insertions, 43 deletions
@@ -18475,16 +18475,16 @@ INCBIN "baserom.gbc",$11380,$12953 - $11380 StatusScreen: ; 0x12953 call LoadMonData ld a, [$cc49] - cp $2 - jr c, .asm_12971 ; 0x1295b $14 + cp $2 ; 2 means we're in a PC box + jr c, .DontRecalculate ; 0x1295b $14 ld a, [$cf9b] ld [$cfb9], a ld [$d127], a ld hl, $cfa8 ld de, $cfba ld b, $1 - call $3936 -.asm_12971 + call $3936 ; Recalculate stats +.DontRecalculate ld hl, $d72c set 1, [hl] ld a, $33 @@ -18496,103 +18496,111 @@ StatusScreen: ; 0x12953 ld de, $6080 ; source ld hl, $96d0 ; dest ld bc, $0403 ; bank bytes/8 - call CopyVideoDataDouble + call CopyVideoDataDouble ; ·│ :L and halfarrow line end ld de, $6098 ld hl, $9780 ld bc, $0401 - call CopyVideoDataDouble + call CopyVideoDataDouble ; │ ld de, $60b0 ld hl, $9760 ld bc, $0402 - call CopyVideoDataDouble - ld de, $6adc + call CopyVideoDataDouble ; ─┘ + ld de, PTile ld hl, $9720 - ld bc, $0401 - call CopyVideoDataDouble + ld bc,(BANK(PTile) << 8 | $01) + call CopyVideoDataDouble ; P (for PP), inline ld a, [$ff00+$d7] push af xor a ld [$ff00+$d7], a - ld hl, $c3c7 + FuncCoord 19,1 + ld hl, Coord ld bc, $060a - call $6ac7 + call DrawLineBox ; Draws the box around name, HP and status ld de, $fffa add hl, de - ld [hl], $f2 + ld [hl], $f2 ; . after No ("." is a different one) dec hl - ld [hl], $74 - ld hl, $c467 + ld [hl], $74 ; No + FuncCoord 19,9 + ld hl, Coord ld bc, $0806 - call $6ac7 + call DrawLineBox ; Draws the box around types, ID No. and OT FuncCoord 10,9 ld hl, Coord ld de, Type1Text call PlaceString ; "TYPE1/" - ld hl, $c3e7 + FuncCoord 11,3 + ld hl, Coord ld a, $5f - call Predef + call Predef ; Draws HP bar ld hl, $cf25 call $3df9 ld b, $3 - call $3def ; SGB palette - ld hl, $c428 + call GoPAL_SET ; SGB palette + FuncCoord 16,6 + ld hl, Coord ld de, $cf9c - call $14e1 - jr nz, .PassOK\@ ; 0x129fc $9 + call PrintStatusCondition + jr nz, .StatusWritten\@ ; 0x129fc $9 FuncCoord 16,6 ld hl, Coord ld de, OKText call PlaceString ; "OK" -.PassOK\@ +.StatusWritten\@ FuncCoord 9,6 ld hl, Coord ld de, StatusText call PlaceString ; "STATUS/" - ld hl, $c3d6 - call $150b + FuncCoord 14,2 + ld hl, Coord + call PrintLevel ; Pokémon level ld a, [$d0b8] ld [$d11e], a ld [$d0b5], a ld a, $3a call Predef - ld hl, $c42f + FuncCoord 3,7 + ld hl, Coord ld de, $d11e - ld bc, $8103 - call PrintNumber - ld hl, $c473 + ld bc, $8103 ; Zero-padded, 3 + call PrintNumber ; Pokémon no. + FuncCoord 11,10 + ld hl, Coord ld a, $4b - call Predef + call Predef ; Prints the type (?) ld hl, $6a9d - call .LoadString + call .unk_12a7e ld d, h ld e, l FuncCoord 9,1 ld hl, Coord call PlaceString ; Pokémon name ld hl, $6a95 - call .LoadString + call .unk_12a7e ld d, h ld e, l FuncCoord 12,16 ld hl, Coord call PlaceString ; OT - ld hl, $c4c4 - ld de, $cfa4 ; source - ld bc, $8205 - call PrintNumber + FuncCoord 12,14 + ld hl, Coord + ld de, $cfa4 + ld bc, $8205 ; 5 + call PrintNumber ; ID Number ld d, $0 - call $6ae4 + call PrintStatsBox call Delay3 call GBPalNormal ld hl, $c3a1 call $1384 ; draw Pokémon picture ld a, [$cf91] call $13d0 ; play Pokémon cry - call $3865 ; wait for button? + call $3865 ; wait for button pop af ld [$ff00+$d7], a ret -.LoadString ; 0x12a7e +.unk_12a7e ; 0x12a7e ; I don't know what this does, iterates over pointers? ld a, [$cc49] add a ld c, a @@ -18608,7 +18616,7 @@ StatusScreen: ; 0x12953 jp $3a7d ; 0x12a95 -INCBIN "baserom.gbc",$12a95,$12aa5 - $12a95 +INCBIN "baserom.gbc",$12a95,$12aa5 - $12a95 ; This is some pointers.. Type1Text: ; 0x12aa5 db "TYPE1/", $4e @@ -18628,9 +18636,80 @@ StatusText: OKText: ; 0x12ac4 db "OK@" -INCBIN "baserom.gbc",$12ac7,$12b57 - $12ac7 +; Draws a line starting from hl high b and wide c +DrawLineBox ; 0x12ac7 + ld de, $0014 ; New line +.PrintVerticalLine + ld [hl], $78 ; │ + add hl, de + dec b + jr nz, .PrintVerticalLine ; 0x12ace $fa + ld [hl], $77 ; ┘ + dec hl +.PrintHorizLine + ld [hl], $76 ; ─ + dec hl + dec c + jr nz, .PrintHorizLine ; 0x12ad7 $fa + ld [hl], $6f ; ← (halfarrow ending) + ret + +PTile: ; This is a single 1bpp "P" tile +INCBIN "baserom.gbc",$12adc,$12ae4 - $12adc + +PrintStatsBox: ; 12ae4 + ld a, d + and a ; a is 0 from the status screen + jr nz, .DifferentBox ; 0x12ae6 $12 + FuncCoord 0,8 + ld hl, Coord + ld b, $8 + ld c, $8 + call TextBoxBorder ; Draws the box + FuncCoord 1,9 ; Start printing stats from here + ld hl, Coord + ld bc, $0019 ; Number offset + jr .PrintStats ; 0x12af8 $10 +.DifferentBox + FuncCoord 9,2 + ld hl, Coord + ld b, $8 + ld c, $9 + call TextBoxBorder + ld hl, $c3e7 + ld bc, $0018 +.PrintStats + push bc + push hl + ld de, StatsText + call PlaceString + pop hl + pop bc + add hl, bc + ld de, $cfbc + ld bc, $0203 ; three digits + call PrintStat + ld de, $cfbe + call PrintStat + ld de, $cfc0 + call PrintStat + ld de, $cfc2 + jp PrintNumber +PrintStat + push hl + call PrintNumber + pop hl + ld de, $0028 + add hl, de + ret + +StatsText: + db "ATTACK", $4e + db "DEFENSE", $4e + db "SPEED", $4e + db "SPECIAL", $50 -StatusScreen2: +StatusScreen2: ; 12b57 ld a, [$ff00+$d7] push af xor a @@ -49887,7 +49966,7 @@ PredefPointers: ; 7E79 dbw $01,$4DE1 dbw $09,$7D98 dbw $03,$7473 - dbw $04,$68EF + dbw $04,$68EF ; 5F draw HP bar dbw $04,$68F6 dbw $07,$49C6 dbw $16,$5035 |