pokecrystal-board/gfx/pics/animation.asm

1030 lines
12 KiB
NASM

; Pic animation arrangement.
Functiond0000: ; d0000
ld hl, $c4ac
ld a, [IsInBattle]
cp $1
jr z, .asm_d0012
ld e, $0
ld d, $0
call Functiond008e
ret
.asm_d0012
ld e, $1
ld d, $0
call Functiond008e
ret
; d001a
INCBIN "baserom.gbc",$d001a,$d008e - $d001a
Functiond008e: ; d008e
call Functiond01c6
ret c
call Functiond00a3
.asm_d0095
call Functiond00b4
push af
callba Function10402d
pop af
jr nc, .asm_d0095
ret
; d00a3
Functiond00a3: ; d00a3
push hl
ld c, e
ld b, $0
ld hl, $4042
add hl, bc
add hl, bc
ld a, [hli]
ld b, [hl]
ld c, a
pop hl
call Functiond01d6
ret
; d00b4
Functiond00b4: ; d00b4
ld a, [rSVBK]
push af
ld a, $2
ld [rSVBK], a
ld a, [$d168]
ld c, a
ld b, $0
ld hl, $d169
ld a, [hli]
ld h, [hl]
ld l, a
add hl, bc
ld a, [hl]
ld hl, $40da
rst JumpTable
ld a, [$d168]
ld c, a
pop af
ld [rSVBK], a
ld a, c
and $80
ret z
scf
ret
; d00da
Tabled00da: ; d00da
dw Functiond0171
dw Functiond0166
dw Functiond00f2
dw Functiond00fe
dw Functiond010b
dw Functiond011d
dw Functiond012f
dw Functiond0141
dw Functiond0155
dw Functiond017a
dw Functiond0188
dw Functiond0196
; d00f2
Functiond00f2: ; d00f2
ld a, $12
ld [$d181], a
ld a, [$d168]
inc a
ld [$d168], a
Functiond00fe: ; d00fe
ld hl, $d181
dec [hl]
ret nz
ld a, [$d168]
inc a
ld [$d168], a
ret
; d010b
Functiond010b: ; d010b
ld c, $0
ld b, $0
call Functiond0228
call Functiond0504
ld a, [$d168]
inc a
ld [$d168], a
ret
; d011d
Functiond011d: ; d011d
ld c, $0
ld b, $4
call Functiond0228
call Functiond0504
ld a, [$d168]
inc a
ld [$d168], a
ret
; d012f
Functiond012f: ; d012f
ld c, $1
ld b, $0
call Functiond0228
call Functiond0504
ld a, [$d168]
inc a
ld [$d168], a
ret
; d0141
Functiond0141: ; d0141
call Functiond0250
ld a, [$d17e]
bit 7, a
ret z
call Functiond04bd
ld a, [$d168]
inc a
ld [$d168], a
ret
; d0155
Functiond0155: ; d0155
call Functiond0250
ld a, [$d17e]
bit 7, a
ret z
ld a, [$d168]
inc a
ld [$d168], a
ret
; d0166
Functiond0166: ; d0166
call Functiond01a9
ld a, [$d168]
inc a
ld [$d168], a
ret
; d0171
Functiond0171: ; d0171
call Functiond01a9
ld hl, $d168
set 7, [hl]
ret
; d017a
Functiond017a: ; d017a
ld a, [$d16b]
call Function37e2
ld a, [$d168]
inc a
ld [$d168], a
ret
; d0188
Functiond0188: ; d0188
ld a, [$d16b]
call Function37d5
ld a, [$d168]
inc a
ld [$d168], a
ret
; d0196
Functiond0196: ; d0196
ld a, $f
ld [CryTracks], a
ld a, [$d16b]
call Function37c4
ld a, [$d168]
inc a
ld [$d168], a
ret
; d01a9
Functiond01a9: ; d01a9
ld a, [rSVBK]
push af
ld a, $2
ld [rSVBK], a
call Functiond04bd
callba Function10402d
call Functiond0536
callba Function104047
pop af
ld [rSVBK], a
ret
; d01c6
Functiond01c6: ; d01c6
ld a, [CurPartySpecies]
cp $fd
jr z, .asm_d01d4
call IsAPokemon
jr c, .asm_d01d4
and a
ret
.asm_d01d4
scf
ret
; d01d6
Functiond01d6: ; d01d6
ld a, [rSVBK]
push af
ld a, $2
ld [rSVBK], a
push bc
push de
push hl
ld hl, $d168
ld bc, $0029
xor a
call ByteFill
pop hl
pop de
pop bc
ld a, c
ld [$d169], a
ld a, b
ld [$d16a], a
ld a, l
ld [$d16f], a
ld a, h
ld [$d170], a
ld a, d
ld [$d16e], a
ld a, $1
ld hl, CurPartySpecies
call GetFarWRAMByte
ld [$d16b], a
ld a, $1
ld hl, UnownLetter
call GetFarWRAMByte
ld [$d16c], a
call Functiond065c
ld [$d16d], a
call Functiond05b4
ld a, c
ld [$d171], a
pop af
ld [rSVBK], a
ret
; d0228
Functiond0228: ; d0228
ld a, [rSVBK]
push af
ld a, $2
ld [rSVBK], a
push bc
ld hl, $d172
ld bc, $001f
xor a
call ByteFill
pop bc
ld a, b
ld [$d173], a
ld a, c
ld [$d172], a
call Functiond055c
call Functiond05ce
call Functiond061b
pop af
ld [rSVBK], a
ret
; d0250
Functiond0250: ; d0250
xor a
ld [hBGMapMode], a
Functiond0253: ; d0253
ld a, [$d17e]
and $7f
ld hl, Tabled025d
rst JumpTable
ret
; d025d
Tabled025d: ; d025d
dw Functiond0261
dw Functiond0282
; d0261
Functiond0261: ; d0261
call Functiond02f8
ld a, [$d182]
cp $ff
jr z, Functiond02a8
cp $fe
jr z, Functiond028e
cp $fd
jr z, Functiond0296
call Functiond02c8
ld a, [$d183]
call Functiond02ae
ld [$d181], a
call Functiond02dc
Functiond0282: ; d0282
ld a, [$d181]
dec a
ld [$d181], a
ret nz
call Functiond02e4
ret
; d028e
Functiond028e: ; d028e
ld a, [$d183]
ld [$d17f], a
jr Functiond0253
; d0296
Functiond0296: ; d0296
ld a, [$d17f]
and a
ret z
dec a
ld [$d17f], a
ret z
ld a, [$d183]
ld [$d17d], a
jr Functiond0253
; d02a8
Functiond02a8: ; d02a8
ld hl, $d17e
set 7, [hl]
ret
; d02ae
Functiond02ae: ; d02ae
ld c, a
ld b, $0
ld hl, $0000
ld a, [$d173]
call AddNTimes
ld a, h
swap a
and $f0
ld h, a
ld a, l
swap a
and $f
or h
add c
ret
; d02c8
Functiond02c8: ; d02c8
call Functiond04bd
ld a, [$d182]
and a
ret z
call Functiond031b
push hl
call Functiond033b
pop hl
call Functiond036b
ret
; d02dc
Functiond02dc: ; d02dc
ld a, [$d17e]
inc a
ld [$d17e], a
ret
; d02e4
Functiond02e4: ; d02e4
ld a, [$d17e]
dec a
ld [$d17e], a
ret
; d02ec
Functiond02ec: ; d02ec
ld a, [$d16b]
cp $c9
ret
; d02f2
Functiond02f2: ; d02f2
ld a, [$d16b]
cp $fd
ret
; d02f8
Functiond02f8: ; d02f8
push hl
ld a, [$d17d]
ld e, a
ld d, $0
ld hl, $d175
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
add hl, de
ld a, [$d174]
call GetFarHalfword
ld a, l
ld [$d182], a
ld a, h
ld [$d183], a
ld hl, $d17d
inc [hl]
pop hl
ret
; d031b
Functiond031b: ; d031b
ld a, [$d182]
dec a
ld c, a
ld b, $0
ld hl, $d178
ld a, [hli]
ld h, [hl]
ld l, a
add hl, bc
add hl, bc
ld a, [$d177]
call GetFarHalfword
ld a, [$d177]
call GetFarByte
ld [$d180], a
inc hl
ret
; d033b
Functiond033b: ; d033b
call Functiond0356
push bc
ld hl, $d17b
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$d180]
call AddNTimes
pop bc
ld de, $d188
ld a, [$d17a]
call FarCopyBytes
ret
; d0356
Functiond0356: ; d0356
push hl
ld a, [$d171]
sub $5
ld c, a
ld b, $0
ld hl, $4368
add hl, bc
ld c, [hl]
ld b, $0
pop hl
ret
; d0368
INCBIN "baserom.gbc",$d0368,$d036b - $d0368
Functiond036b: ; d036b
xor a
ld [$d187], a
ld [$d186], a
ld [$d185], a
.asm_d0375
push hl
call Functiond0392
pop hl
ld a, b
and a
jr z, .asm_d038a
ld a, [$d177]
call GetFarByte
inc hl
push hl
call Functiond03bd
pop hl
.asm_d038a
push hl
call Functiond0499
pop hl
jr nc, .asm_d0375
ret
; d0392
Functiond0392: ; d0392
ld a, [$d187]
and $f8
rrca
rrca
rrca
ld e, a
ld d, $0
ld hl, $d188
add hl, de
ld b, [hl]
ld a, [$d187]
and $7
jr z, .asm_d03b0
ld c, a
ld a, b
.asm_d03ab
rrca
dec c
jr nz, .asm_d03ab
ld b, a
.asm_d03b0
xor a
bit 0, b
jr z, .asm_d03b7
ld a, $1
.asm_d03b7
ld b, a
ld hl, $d187
inc [hl]
ret
; d03bd
Functiond03bd: ; d03bd
push af
call Functiond03cd
pop af
push hl
call Functiond03f7
ld hl, $d16e
add [hl]
pop hl
ld [hl], a
ret
; d03cd
Functiond03cd: ; d03cd
call Functiond046c
ld a, [$d186]
ld bc, $0014
call AddNTimes
ld a, [$c2c6]
and a
jr nz, .asm_d03e8
ld a, [$d185]
ld e, a
ld d, $0
add hl, de
jr .asm_d03f3
.asm_d03e8
ld a, [$d185]
ld e, a
ld a, l
sub e
ld l, a
ld a, h
sbc $0
ld h, a
.asm_d03f3
ret
; d03f4
INCBIN "baserom.gbc",$d03f4,$d03f7 - $d03f4
Functiond03f7: ; d03f7
push af
ld a, [$d171]
cp $5
jr z, .asm_d0405
cp $6
jr z, .asm_d041a
pop af
ret
.asm_d0405
pop af
cp $19
jr nc, .asm_d0417
push hl
push de
ld hl, $442f
ld e, a
ld d, $0
add hl, de
ld a, [hl]
pop de
pop hl
ret
.asm_d0417
add $18
ret
.asm_d041a
pop af
cp $24
jr nc, .asm_d042c
push hl
push de
ld hl, $4448
ld e, a
ld d, $0
add hl, de
ld a, [hl]
pop de
pop hl
ret
.asm_d042c
add $d
ret
; d042f
INCBIN "baserom.gbc",$d042f,$d046c - $d042f
Functiond046c: ; d046c
ld hl, $d16f
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$d171]
ld de, $0000
ld bc, $0006
cp $7
jr z, .asm_d048f
ld de, $0015
ld bc, $0019
cp $6
jr z, .asm_d048f
ld de, $0029
ld bc, $002d
.asm_d048f
ld a, [$c2c6]
and a
jr nz, .asm_d0497
add hl, de
ret
.asm_d0497
add hl, bc
ret
; d0499
Functiond0499: ; d0499
ld a, [$d186]
inc a
ld [$d186], a
ld c, a
ld a, [$d171]
cp c
jr nz, .asm_d04bb
xor a
ld [$d186], a
ld a, [$d185]
inc a
ld [$d185], a
ld c, a
ld a, [$d171]
cp c
jr nz, .asm_d04bb
scf
ret
.asm_d04bb
xor a
ret
; d04bd
Functiond04bd: ; d04bd
call Functiond04f6
ld a, [$c2c6]
and a
jr nz, .asm_d04ce
ld de, $0001
ld bc, $0000
jr .asm_d04d4
.asm_d04ce
ld de, rIE
ld bc, $0006
.asm_d04d4
ld hl, $d16f
ld a, [hli]
ld h, [hl]
ld l, a
add hl, bc
ld c, $7
ld b, $7
ld a, [$d16e]
.asm_d04e2
push bc
push hl
push de
ld de, $0014
.asm_d04e8
ld [hl], a
inc a
add hl, de
dec b
jr nz, .asm_d04e8
pop de
pop hl
add hl, de
pop bc
dec c
jr nz, .asm_d04e2
ret
; d04f6
Functiond04f6: ; d04f6
ld hl, $d16f
ld a, [hli]
ld h, [hl]
ld l, a
ld b, $7
ld c, $7
call ClearBox
ret
; d0504
Functiond0504: ; d0504
ld a, [rSVBK]
push af
ld a, $2
ld [rSVBK], a
xor a
ld [hBGMapMode], a
call Functiond051b
callba Function104047
pop af
ld [rSVBK], a
ret
; d051b
Functiond051b: ; d051b
call Functiond0551
ld b, $7
ld c, $7
ld de, $0014
.asm_d0525
push bc
push hl
.asm_d0527
ld a, [hl]
or $8
ld [hl], a
add hl, de
dec c
jr nz, .asm_d0527
pop hl
inc hl
pop bc
dec b
jr nz, .asm_d0525
ret
; d0536
Functiond0536: ; d0536
call Functiond0551
ld b, $7
ld c, $7
ld de, $0014
.asm_d0540
push bc
push hl
.asm_d0542
ld a, [hl]
and $f7
ld [hl], a
add hl, de
dec c
jr nz, .asm_d0542
pop hl
inc hl
pop bc
dec b
jr nz, .asm_d0540
ret
; d0551
Functiond0551: ; d0551
ld hl, $d16f
ld a, [hli]
ld h, [hl]
ld l, a
ld de, $0939
add hl, de
ret
; d055c
Functiond055c: ; d055c
call Functiond02f2
jr z, .asm_d0597
ld c, $34
ld hl, UnownAnimationPointers
ld de, UnownAnimationExtraPointers
call Functiond02ec
jr z, .asm_d0576
ld c, $34
ld hl, AnimationPointers
ld de, AnimationExtraPointers
.asm_d0576
ld a, [$d172]
and a
jr z, .asm_d057e
ld h, d
ld l, e
.asm_d057e
ld a, [$d16d]
dec a
ld e, a
ld d, $0
add hl, de
add hl, de
ld a, c
ld [$d174], a
call GetFarHalfword
ld a, l
ld [$d175], a
ld a, h
ld [$d176], a
ret
.asm_d0597
ld hl, EggAnimation
ld c, $34
ld a, [$d172]
and a
jr z, .asm_d05a7
ld hl, EggAnimationExtra
ld c, $34
.asm_d05a7
ld a, c
ld [$d174], a
ld a, l
ld [$d175], a
ld a, h
ld [$d176], a
ret
; d05b4
Functiond05b4: ; d05b4
ld a, [rSVBK]
push af
ld a, $1
ld [rSVBK], a
ld a, [CurPartySpecies]
ld [CurSpecies], a
call GetBaseData
ld a, [BasePicSize]
and $f
ld c, a
pop af
ld [rSVBK], a
ret
; d05ce
Functiond05ce: ; d05ce
call Functiond02f2
jr z, .asm_d0609
call Functiond02ec
ld b, $36
ld c, $36
ld hl, PikachuAnimationExtra
jr z, .asm_d05ef
ld a, [$d16b]
cp $98
ld b, $35
ld c, $35
ld hl, $4000
jr c, .asm_d05ef
ld c, $36
.asm_d05ef
ld a, c
ld [$d177], a
ld a, [$d16d]
dec a
ld e, a
ld d, $0
add hl, de
add hl, de
ld a, b
call GetFarHalfword
ld a, l
ld [$d178], a
ld a, h
ld [$d179], a
ret
.asm_d0609
ld hl, $598b
ld c, $36
ld a, c
ld [$d177], a
ld a, l
ld [$d178], a
ld a, h
ld [$d179], a
ret
; d061b
Functiond061b: ; d061b
call Functiond02f2
jr z, .asm_d064a
call Functiond02ec
ld a, $34
ld hl, UnownBitmasksPointers
jr z, .asm_d062f
ld a, $34
ld hl, BitmasksPointers
.asm_d062f
ld [$d17a], a
ld a, [$d16d]
dec a
ld e, a
ld d, $0
add hl, de
add hl, de
ld a, [$d17a]
call GetFarHalfword
ld a, l
ld [$d17b], a
ld a, h
ld [$d17c], a
ret
.asm_d064a
ld c, $34
ld hl, EggBitmasks
ld a, c
ld [$d17a], a
ld a, l
ld [$d17b], a
ld a, h
ld [$d17c], a
ret
; d065c
Functiond065c: ; d065c
call Functiond02ec
jr z, .asm_d0665
ld a, [$d16b]
ret
.asm_d0665
ld a, [$d16c]
ret
; d0669
Functiond0669: ; d0669
ld a, $1
ld [$c2c6], a
Functiond066e: ; d066e
call Functiond01c6
jr c, .asm_d068c
ld h, d
ld l, e
push bc
push hl
ld de, VTiles2
ld a, $3e
call Predef
pop hl
pop bc
ld d, $0
ld e, c
call Functiond008e
xor a
ld [$c2c6], a
ret
.asm_d068c
xor a
ld [$c2c6], a
inc a
ld [CurPartySpecies], a
ret
; d0695