pokecrystal-board/battle/bg_effects.asm
2015-12-10 22:26:31 -05:00

2973 lines
41 KiB
NASM

; BG effects for use in battle animations.
ExecuteBGEffects: ; c8000 (32:4000)
ld hl, ActiveBGEffects
ld e, $5
.loop
ld a, [hl]
and a
jr z, .next
ld c, l
ld b, h
push hl
push de
call Functionc804a
pop de
pop hl
.next
ld bc, $4
add hl, bc
dec e
jr nz, .loop
ret
QueueBGEffect: ; c801a (32:401a)
ld hl, ActiveBGEffects
ld e, $5
.loop
ld a, [hl]
and a
jr z, .load
ld bc, $4
add hl, bc
dec e
jr nz, .loop
scf
ret
.load
ld c, l
ld b, h
ld hl, $0
add hl, bc
ld a, [BattleAnimTemps]
ld [hli], a
ld a, [BattleAnimTemps + 1]
ld [hli], a
ld a, [BattleAnimTemps + 2]
ld [hli], a
ld a, [BattleAnimTemps + 3]
ld [hl], a
ret
EndBattleBGEffect: ; c8043 (32:4043)
ld hl, 0
add hl, bc
ld [hl], 0
ret
Functionc804a: ; c804a (32:404a)
ld hl, 0
add hl, bc
ld e, [hl]
ld d, 0
ld hl, BattleBGEffects
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
BattleBGEffects: ; c805a (32:405a)
dw BattleBGEffect_End
dw BattleBGEffect_FlashInverted
dw BattleBGEffect_FlashWhite
dw BattleBGEffect_WhiteHues
dw BattleBGEffect_BlackHues
dw BattleBGEffect_AlternateHues
dw BattleBGEffect_06
dw BattleBGEffect_07
dw BattleBGEffect_08
dw BattleBGEffect_HideMon
dw BattleBGEffect_ShowMon
dw BattleBGEffect_EnterMon
dw BattleBGEffect_ReturnMon
dw BattleBGEffect_Surf
dw BattleBGEffect_Whirlpool
dw BattleBGEffect_Teleport
dw BattleBGEffect_NightShade
dw BattleBGEffect_FeetFollow
dw BattleBGEffect_HeadFollow
dw BattleBGEffect_DoubleTeam
dw BattleBGEffect_AcidArmor
dw BattleBGEffect_RapidFlash
dw BattleBGEffect_16
dw BattleBGEffect_17
dw BattleBGEffect_18
dw BattleBGEffect_19
dw BattleBGEffect_1a
dw BattleBGEffect_1b
dw BattleBGEffect_1c
dw BattleBGEffect_1d
dw BattleBGEffect_1e
dw BattleBGEffect_1f
dw BattleBGEffect_20
dw BattleBGEffect_21
dw BattleBGEffect_22
dw BattleBGEffect_23
dw BattleBGEffect_Tackle
dw BattleBGEffect_25
dw BattleBGEffect_26
dw BattleBGEffect_27
dw BattleBGEffect_28
dw BattleBGEffect_Psychic
dw BattleBGEffect_2a
dw BattleBGEffect_2b
dw BattleBGEffect_2c
dw BattleBGEffect_2d
dw BattleBGEffect_2e
dw BattleBGEffect_2f
dw BattleBGEffect_30
dw BattleBGEffect_31
dw BattleBGEffect_32
dw BattleBGEffect_VibrateMon
dw BattleBGEffect_WobbleMon
dw BattleBGEffect_35
BattleBGEffect_End: ; c80c6 (32:40c6)
call EndBattleBGEffect
ret
Functionc80ca: ; c80ca (32:40ca)
ld hl, $1
add hl, bc
ld l, [hl]
ld h, $0
add hl, hl
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ret
BattleBGEffects_AnonJumptable: ; c80d7 (32:40d7)
pop de
ld hl, $1
add hl, bc
ld l, [hl]
ld h, $0
add hl, hl
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
Functionc80e5: ; c80e5 (32:40e5)
ld hl, $1
add hl, bc
inc [hl]
ret
BattleBGEffect_FlashInverted: ; c80eb (32:40eb)
ld de, .inverted
jp Functionc80fb
; c80f1 (32:40f1)
.inverted
db %11100100 ; 3210
db %00011011 ; 0123
; c80f3
BattleBGEffect_FlashWhite: ; c80f3 (32:40f3)
ld de, .white
jp Functionc80fb
; c80f9 (32:40f9)
.white
db %11100100 ; 3210
db %00000000 ; 0000
; c80fb
Functionc80fb: ; c80fb (32:40fb)
ld a, $1
ld [BattleAnimTemps], a
ld hl, $1
add hl, bc
ld a, [hl]
and a
jr z, .asm_c810a
dec [hl]
ret
.asm_c810a
ld hl, $2
add hl, bc
ld a, [hl]
ld hl, $1
add hl, bc
ld [hl], a
ld hl, $3
add hl, bc
ld a, [hl]
and a
jr nz, .asm_c8120
call EndBattleBGEffect
ret
.asm_c8120
dec a
ld [hl], a
and 1
ld l, a
ld h, 0
add hl, de
ld a, [hl]
ld [wcfc7], a
ret
BattleBGEffect_WhiteHues: ; c812d (32:412d)
ld de, Unknown_c813d
call Functionc8d57
jr c, .asm_c8139
ld [wcfc7], a
ret
.asm_c8139
call EndBattleBGEffect
ret
; c813d (32:413d)
Unknown_c813d:
db $e4, $e0, $d0, $ff
; c8141
BattleBGEffect_BlackHues: ; c8141 (32:4141)
ld de, Unknown_c8151
call Functionc8d57
jr c, .asm_c814d
ld [wcfc7], a
ret
.asm_c814d
call EndBattleBGEffect
ret
; c8151 (32:4151)
Unknown_c8151:
db $e4, $f4, $f8, $ff
; c8155
BattleBGEffect_AlternateHues: ; c8155 (32:4155)
ld de, Unknown_c8168
call Functionc8d57
jr c, .asm_c8164
ld [wcfc7], a
ld [wcfc9], a
ret
.asm_c8164
call EndBattleBGEffect
ret
; c8168 (32:4168)
Unknown_c8168:
db $e4, $f8, $fc, $f8, $e4, $90, $40, $90, $fe
; c8171
BattleBGEffect_06: ; c8171 (32:4171)
call Functionc9059
jr nz, .asm_c817b
ld de, Unknown_c8185
jr .asm_c817e
.asm_c817b
ld de, Unknown_c8188
.asm_c817e
call Functionc8d57
ld [wcfc8], a
ret
; c8185 (32:4185)
Unknown_c8185:
db $e4, $90, $fe
; c8188
Unknown_c8188:
db $f0, $c0, $fe
; c818b
BattleBGEffect_07: ; c818b (32:418b)
call Functionc9059
jr nz, .asm_c8195
ld de, Unknown_c819f
jr .asm_c8198
.asm_c8195
ld de, Unknown_c81a2
.asm_c8198
call Functionc8d57
ld [wcfc8], a
ret
; c819f (32:419f)
Unknown_c819f:
db $e4, $d8, $fe
; c81a2
Unknown_c81a2:
db $f0, $cc, $fe
; c81a5
BattleBGEffect_08: ; c81a5 (32:41a5)
ld de, Unknown_c81af
call Functionc8d57
ld [wcfc7], a
ret
; c81af (32:41af)
Unknown_c81af:
db $1b, $63, $87, $fe
; c81b3
BattleBGEffect_HideMon: ; c81b3 (32:41b3)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc81c0
dw Functionc80e5
dw Functionc80e5
dw Functionc80e5
dw Functionc81e3
Functionc81c0: ; c81c0 (32:41c0)
call Functionc80e5
push bc
call Functionc9038
jr nz, .six_by_six
hlcoord 12, 0
lb bc, 7, 7
jr .got_dims
.six_by_six
hlcoord 2, 6
lb bc, 6, 6
.got_dims
call ClearBox
pop bc
xor a
ld [hBGMapThird], a
ld a, $1
ld [hBGMapMode], a
ret
Functionc81e3: ; c81e3 (32:41e3)
xor a
ld [hBGMapMode], a
call EndBattleBGEffect
ret
BattleBGEffect_ShowMon: ; c81ea (32:41ea)
call Functionc9042
jr z, .asm_c81f3
call EndBattleBGEffect
ret
.asm_c81f3
call Functionc9038
jr nz, .six_by_six
ld de, Unknown_c8210
jr .got_dims
.six_by_six
ld de, Unknown_c820c
.got_dims
ld a, e
ld [BattleAnimTemps + 1], a
ld a, d
ld [BattleAnimTemps + 2], a
call Functionc83ed
ret
; c820c (32:420c)
Unknown_c820c:
db $00, $31, $00
db $ff
; c8210
Unknown_c8210:
db $03, $00, $03
db $ff
; c8214
BattleBGEffect_FeetFollow: ; c8214 (32:4214)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8223
dw Functionc825a
dw Functionc80e5
dw Functionc80e5
dw Functionc80e5
dw Functionc827a
Functionc8223: ; c8223 (32:4223)
call Functionc9042
jr z, .asm_c8230
ld hl, w5_d40e
inc [hl]
call EndBattleBGEffect
ret
.asm_c8230
call Functionc80e5
push bc
call Functionc9038
jr nz, .asm_c8242
ld a, $b8
ld [BattleAnimTemps], a
ld a, $84
jr .asm_c8249
.asm_c8242
ld a, $b9
ld [BattleAnimTemps], a
ld a, $30
.asm_c8249
ld [BattleAnimTemps + 1], a
ld a, $40
ld [BattleAnimTemps + 2], a
xor a
ld [BattleAnimTemps + 3], a
call _QueueBattleAnimation
pop bc
ret
Functionc825a: ; c825a (32:425a)
call Functionc80e5
push bc
call Functionc9038
jr nz, .asm_c826b
hlcoord 12, 6
ld bc, $107
jr .asm_c8271
.asm_c826b
hlcoord 2, 6
lb bc, 1, 6
.asm_c8271
call ClearBox
ld a, $1
ld [hBGMapMode], a
pop bc
ret
Functionc827a: ; c827a (32:427a)
xor a
ld [hBGMapMode], a
call EndBattleBGEffect
ret
BattleBGEffect_HeadFollow: ; c8281 (32:4281)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8290
dw Functionc82c7
dw Functionc80e5
dw Functionc80e5
dw Functionc80e5
dw Functionc82e7
Functionc8290: ; c8290 (32:4290)
call Functionc9042
jr z, .asm_c829d
ld hl, w5_d40e
inc [hl]
call EndBattleBGEffect
ret
.asm_c829d
call Functionc80e5
push bc
call Functionc9038
jr nz, .asm_c82af
ld a, $ba
ld [BattleAnimTemps], a
ld a, $84
jr .asm_c82b6
.asm_c82af
ld a, $bb
ld [BattleAnimTemps], a
ld a, $30
.asm_c82b6
ld [BattleAnimTemps + 1], a
ld a, $40
ld [BattleAnimTemps + 2], a
xor a
ld [BattleAnimTemps + 3], a
call _QueueBattleAnimation
pop bc
ret
Functionc82c7: ; c82c7 (32:42c7)
call Functionc80e5
push bc
call Functionc9038
jr nz, .asm_c82d8
hlcoord 12, 5
ld bc, $207
jr .asm_c82de
.asm_c82d8
hlcoord 2, 6
lb bc, 2, 6
.asm_c82de
call ClearBox
ld a, $1
ld [hBGMapMode], a
pop bc
ret
Functionc82e7: ; c82e7 (32:42e7)
xor a
ld [hBGMapMode], a
call EndBattleBGEffect
ret
_QueueBattleAnimation: ; c82ee (32:42ee)
callab QueueBattleAnimation
ret
BattleBGEffect_27: ; c82f5 (32:42f5)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8302
dw Functionc831d
dw Functionc80e5
dw Functionc80e5
dw Functionc8365
Functionc8302: ; c8302 (32:4302)
call Functionc80e5
call Functionc9038
ld [hl], a
ld hl, $2
add hl, bc
ld a, [hl]
and a
jr z, .asm_c8315
ld a, $9
jr .asm_c8317
.asm_c8315
ld a, $8
.asm_c8317
ld hl, $3
add hl, bc
ld [hl], a
ret
Functionc831d: ; c831d (32:431d)
ld hl, $2
add hl, bc
ld a, [hl]
and a
jr z, .asm_c833e
hlcoord 0, 6
ld de, $806
.asm_c832b
push de
push hl
.asm_c832d
inc hl
ld a, [hld]
ld [hli], a
dec d
jr nz, .asm_c832d
pop hl
ld de, $14
add hl, de
pop de
dec e
jr nz, .asm_c832b
jr .asm_c8355
.asm_c833e
hlcoord 19, 0
ld de, $807
.asm_c8344
push de
push hl
.asm_c8346
dec hl
ld a, [hli]
ld [hld], a
dec d
jr nz, .asm_c8346
pop hl
ld de, $14
add hl, de
pop de
dec e
jr nz, .asm_c8344
.asm_c8355
xor a
ld [hBGMapThird], a
ld a, $1
ld [hBGMapMode], a
call Functionc80e5
ld hl, $3
add hl, bc
dec [hl]
ret
Functionc8365: ; c8365 (32:4365)
xor a
ld [hBGMapMode], a
ld hl, $3
add hl, bc
ld a, [hl]
and a
jr z, .asm_c8377
ld hl, $1
add hl, bc
ld [hl], $1
ret
.asm_c8377
call EndBattleBGEffect
ret
BattleBGEffect_EnterMon: ; c837b (32:437b)
call Functionc9038
jr nz, .asm_c8385
ld de, Unknown_c839e
jr .asm_c8388
.asm_c8385
ld de, Unknown_c8394
.asm_c8388
ld a, e
ld [BattleAnimTemps + 1], a
ld a, d
ld [BattleAnimTemps + 2], a
call Functionc83ed
ret
; c8394 (32:4394)
Unknown_c8394:
db $02, $31, $02
db $01, $31, $01
db $00, $31, $00
db $ff
; c839e
Unknown_c839e:
db $05, $00, $05
db $04, $00, $04
db $03, $00, $03
db $ff
; c83a8
BattleBGEffect_ReturnMon: ; c83a8 (32:43a8)
call Functionc9038
jr nz, .asm_c83b2
ld de, Unknown_c83d7
jr .asm_c83b5
.asm_c83b2
ld de, Unknown_c83c1
.asm_c83b5
ld a, e
ld [BattleAnimTemps + 1], a
ld a, d
ld [BattleAnimTemps + 2], a
call Functionc83ed
ret
; c83c1 (32:43c1)
Unknown_c83c1:
db $00, $31, $00
db $fe, $66, $00
db $01, $31, $01
db $fe, $44, $01
db $02, $31, $02
db $fe, $22, $02
db $fd, $00, $00
db $ff
; c83d7
Unknown_c83d7:
db $03, $00, $03
db $fe, $77, $03
db $04, $00, $04
db $fe, $55, $04
db $05, $00, $05
db $fe, $33, $05
db $fd, $00, $00
db $ff
; c83ed
Functionc83ed: ; c83ed (32:43ed)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc83fa
dw Functionc80e5
dw Functionc80e5
dw Functionc842a
dw Functionc8434
Functionc83fa: ; c83fa (32:43fa)
ld hl, $3
add hl, bc
ld e, [hl]
ld d, $0
inc [hl]
ld a, [BattleAnimTemps + 1]
ld l, a
ld a, [BattleAnimTemps + 2]
ld h, a
rept 3
add hl, de
endr
ld a, [hl]
cp $ff
jr z, Functionc8434
cp $fe
jr z, .asm_c8425
cp $fd
jr z, .asm_c841d
call Functionc8458
.asm_c841d
call Functionc80e5
ld a, $1
ld [hBGMapMode], a
ret
.asm_c8425
call Functionc843b
jr Functionc83fa
Functionc842a: ; c842a (32:442a)
xor a
ld [hBGMapMode], a
ld hl, $1
add hl, bc
ld [hl], $0
ret
Functionc8434: ; c8434 (32:4434)
xor a
ld [hBGMapMode], a
call EndBattleBGEffect
ret
Functionc843b: ; c843b (32:443b)
push bc
inc hl
ld a, [hli]
ld b, a
and $f
ld c, a
ld a, b
swap a
and $f
ld b, a
ld e, [hl]
ld d, 0
ld hl, Unknown_c849c
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
call ClearBox
pop bc
ret
Functionc8458: ; c8458 (32:4458)
push bc
push hl
ld e, [hl]
ld d, 0
ld hl, Unknown_c84a8
rept 3
add hl, de
endr
ld a, [hli]
ld b, a
and $f
ld c, a
ld a, b
swap a
and $f
ld b, a
ld e, [hl]
inc hl
ld d, [hl]
pop hl
inc hl
ld a, [hli]
ld [BattleAnimTemps], a
push de
ld e, [hl]
ld d, 0
ld hl, Unknown_c849c
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
pop de
.asm_c8484
push bc
push hl
ld a, [BattleAnimTemps]
ld b, a
.asm_c848a
ld a, [de]
add b
ld [hli], a
inc de
dec c
jr nz, .asm_c848a
pop hl
ld bc, $14
add hl, bc
pop bc
dec b
jr nz, .asm_c8484
pop bc
ret
; c849c (32:449c)
Unknown_c849c: ; c849c
dwcoord 2, 6
dwcoord 3, 8
dwcoord 4, 10
dwcoord 12, 0
dwcoord 13, 2
dwcoord 14, 4
; c84a8
Unknown_c84a8: ; c84a8
dbw $66, Unknown_c84ba
dbw $44, Unknown_c84de
dbw $22, Unknown_c84ee
dbw $77, Unknown_c84f2
dbw $55, Unknown_c8523
dbw $33, Unknown_c853c
; c84ba
Unknown_c84ba: ; c84ba
db $00, $06, $0c, $12, $18, $1e
db $01, $07, $0d, $13, $19, $1f
db $02, $08, $0e, $14, $1a, $20
db $03, $09, $0f, $15, $1b, $21
db $04, $0a, $10, $16, $1c, $22
db $05, $0b, $11, $17, $1d, $23
; c84de
Unknown_c84de: ; c84de
db $00, $0c, $12, $1e
db $02, $0e, $14, $20
db $03, $0f, $15, $21
db $05, $11, $17, $23
; c84ee
Unknown_c84ee: ; c84ee
db $00, $1e
db $05, $23
; c84f2
Unknown_c84f2: ; c84f2
db $00, $07, $0e, $15, $1c, $23, $2a
db $01, $08, $0f, $16, $1d, $24, $2b
db $02, $09, $10, $17, $1e, $25, $2c
db $03, $0a, $11, $18, $1f, $26, $2d
db $04, $0b, $12, $19, $20, $27, $2e
db $05, $0c, $13, $1a, $21, $28, $2f
db $06, $0d, $14, $1b, $22, $29, $30
; c8523
Unknown_c8523: ; c8523
db $00, $07, $15, $23, $2a
db $01, $08, $16, $24, $2b
db $03, $0a, $18, $26, $2d
db $05, $0c, $1a, $28, $2f
db $06, $0d, $1b, $29, $30
; c853c
Unknown_c853c: ; c853c
db $00, $15, $2a
db $03, $18, $2d
db $06, $1b, $30
; c8545
BattleBGEffect_Surf: ; c8545 (32:4545)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc854e
dw Functionc8557
dw Functionc8561
Functionc854e: ; c854e (32:454e)
call Functionc80e5
ld de, $202
call Functionc8f69
Functionc8557: ; c8557 (32:4557)
ld a, [hLCDStatCustom]
and a
ret z
push bc
call Functionc8565
pop bc
ret
Functionc8561: ; c8561 (32:4561)
call Functionc8f0a
ret
Functionc8565: ; c8565 (32:4565)
ld hl, w5_d422
ld de, w5_d422 + 1
ld c, $3f
ld a, [hl]
push af
.asm_c856f
ld a, [de]
inc de
ld [hli], a
dec c
jr nz, .asm_c856f
pop af
ld [hl], a
ld de, LYOverridesBackup
ld hl, w5_d422
ld bc, $0
.asm_c8580
ld a, [hLCDStatCustom + 1]
cp e
jr nc, .asm_c858b
push hl
add hl, bc
ld a, [hl]
pop hl
jr .asm_c858c
.asm_c858b
xor a
.asm_c858c
ld [de], a
ld a, c
inc a
and $3f
ld c, a
inc de
ld a, e
cp $5f
jr c, .asm_c8580
ret
BattleBGEffect_Whirlpool: ; c8599 (32:4599)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc85a2
dw Functionc85ba
dw Functionc85be
Functionc85a2: ; c85a2 (32:45a2)
call Functionc80e5
call Functionc8eca
ld a, $42
ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $5e
ld [hLCDStatCustom + 2], a
ld de, $202
call Functionc8f2e
ret
Functionc85ba: ; c85ba (32:45ba)
call Functionc8fef
ret
Functionc85be: ; c85be (32:45be)
call Functionc8f0a
ret
BattleBGEffect_30: ; c85c2 (32:45c2)
call Functionc8eca
ld a, $42
call Functionc8ede
call EndBattleBGEffect
ret
BattleBGEffect_31: ; c85ce (32:45ce)
ld hl, $3
add hl, bc
ld a, [hl]
ld e, a
add $4
ld [hl], a
ld hl, $2
add hl, bc
ld a, [hl]
and $f0
swap a
xor $ff
add $4
ld d, a
ld hl, $1
add hl, bc
ld a, [hl]
ld [BattleAnimTemps], a
ld hl, $2
add hl, bc
ld a, [hl]
cp $20
jr nc, .asm_c85fc
rept 2
inc [hl]
endr
call Functionc8f9a
ret
.asm_c85fc
call Functionc8eca
call EndBattleBGEffect
ret
BattleBGEffect_32: ; c8603 (32:4603)
call Functionc8f0a
ret
BattleBGEffect_Psychic: ; c8607 (32:4607)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8610
dw Functionc862e
dw Functionc863b
Functionc8610: ; c8610 (32:4610)
call Functionc80e5
call Functionc8eca
ld a, $43
ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $5f
ld [hLCDStatCustom + 2], a
ld de, $605
call Functionc8f2e
ld hl, $3
add hl, bc
ld [hl], $0
ret
Functionc862e: ; c862e (32:462e)
ld hl, $3
add hl, bc
ld a, [hl]
inc [hl]
and $3
ret nz
call Functionc8fef
ret
Functionc863b: ; c863b (32:463b)
call Functionc8f0a
ret
BattleBGEffect_Teleport: ; c863f (32:463f)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8648
dw Functionc865a
dw Functionc865e
Functionc8648: ; c8648 (32:4648)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ld de, $605
call Functionc8f2e
ret
Functionc865a: ; c865a (32:465a)
call Functionc8fef
ret
Functionc865e: ; c865e (32:465e)
call Functionc8f0a
ret
BattleBGEffect_NightShade: ; c8662 (32:4662)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc866b
dw Functionc8681
dw Functionc8685
Functionc866b: ; c866b (32:466b)
call Functionc80e5
call Functionc8eca
ld a, $42
call Functionc8ede
ld hl, $3
add hl, bc
ld e, [hl]
ld d, $2
call Functionc8f2e
ret
Functionc8681: ; c8681 (32:4681)
call Functionc8fef
ret
Functionc8685: ; c8685 (32:4685)
call Functionc8f0a
ret
BattleBGEffect_DoubleTeam: ; c8689 (32:4689)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8698
dw Functionc86af
dw Functionc86cf
dw Functionc86bd
dw Functionc86e9
dw Functionc8705
Functionc8698: ; c8698 (32:4698)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $2
add hl, bc
ld [hl], $0
ret
Functionc86af: ; c86af (32:46af)
ld hl, $3
add hl, bc
ld a, [hl]
cp $10
jr nc, asm_c86cb
inc [hl]
call Functionc86ea
ret
Functionc86bd: ; c86bd (32:46bd)
ld hl, $3
add hl, bc
ld a, [hl]
cp $ff
jr z, asm_c86cb
dec [hl]
call Functionc86ea
ret
asm_c86cb: ; c86cb (32:46cb)
call Functionc80e5
ret
Functionc86cf: ; c86cf (32:46cf)
ld hl, $2
add hl, bc
ld a, [hl]
ld d, $2
call Functionc905d
ld hl, $3
add hl, bc
add [hl]
call Functionc86ea
ld hl, $2
add hl, bc
ld a, [hl]
add $4
ld [hl], a
Functionc86e9: ; c86e9 (32:46e9)
ret
Functionc86ea: ; c86ea (32:46ea)
ld e, a
xor $ff
inc a
ld d, a
ld h, $d2
ld a, [hLCDStatCustom + 1]
ld l, a
ld a, [hLCDStatCustom + 2]
sub l
srl a
push af
.asm_c86fa
ld [hl], e
inc hl
ld [hl], d
inc hl
dec a
jr nz, .asm_c86fa
pop af
ret nc
ld [hl], e
ret
Functionc8705: ; c8705 (32:4705)
call Functionc8f0a
ret
BattleBGEffect_AcidArmor: ; c8709 (32:4709)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8712
dw Functionc8732
dw Functionc875d
Functionc8712: ; c8712 (32:4712)
call Functionc80e5
call Functionc8eca
ld a, $42
call Functionc8ede
ld hl, $3
add hl, bc
ld e, [hl]
ld d, $2
call Functionc8f2e
ld h, $d2
ld a, [hLCDStatCustom + 2]
ld l, a
ld [hl], $0
dec l
ld [hl], $0
ret
Functionc8732: ; c8732 (32:4732)
ld a, [hLCDStatCustom + 2]
ld l, a
ld h, $d2
ld e, l
ld d, h
dec de
.asm_c873a
ld a, [de]
dec de
ld [hld], a
ld a, [hLCDStatCustom + 1]
cp l
jr nz, .asm_c873a
ld [hl], $90
ld a, [hLCDStatCustom + 2]
ld l, a
ld a, [hl]
cp $1
jr c, .asm_c8752
cp $90
jr z, .asm_c8752
ld [hl], $0
.asm_c8752
dec l
ld a, [hl]
cp $2
ret c
cp $90
ret z
ld [hl], $0
ret
Functionc875d: ; c875d (32:475d)
call Functionc8f0a
ret
BattleBGEffect_21: ; c8761 (32:4761)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc876a
dw Functionc8781
dw Functionc87a3
Functionc876a: ; c876a (32:476a)
call Functionc80e5
call Functionc8eca
ld a, $42
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $2
add hl, bc
ld [hl], $1
ret
Functionc8781: ; c8781 (32:4781)
ld hl, $3
add hl, bc
ld a, [hl]
and $3f
ld d, a
ld hl, $2
add hl, bc
ld a, [hl]
cp d
ret nc
call Functionc901b
ld hl, $3
add hl, bc
ld a, [hl]
rlca
rlca
and $3
ld hl, $2
add hl, bc
add [hl]
ld [hl], a
ret
Functionc87a3: ; c87a3 (32:47a3)
call Functionc8f0a
ret
BattleBGEffect_23: ; c87a7 (32:47a7)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc87b2
dw Functionc87cf
dw Functionc87de
dw Functionc8801
Functionc87b2: ; c87b2 (32:47b2)
call Functionc80e5
call Functionc8eca
ld a, $42
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $2
add hl, bc
ld [hl], $2
ld hl, $3
add hl, bc
ld [hl], $0
ret
Functionc87cf: ; c87cf (32:47cf)
ld hl, $3
add hl, bc
ld a, [hl]
and a
jr z, .asm_c87d9
dec [hl]
ret
.asm_c87d9
ld [hl], $10
call Functionc80e5
Functionc87de: ; c87de (32:47de)
ld a, [hLCDStatCustom + 1]
ld l, a
ld a, [hLCDStatCustom + 2]
sub l
dec a
ld hl, $2
add hl, bc
cp [hl]
ret c
ld a, [hl]
push af
and $7
jr nz, .asm_c87f6
ld hl, $1
add hl, bc
dec [hl]
.asm_c87f6
pop af
call Functionc901b
ld hl, $2
add hl, bc
rept 2
inc [hl]
endr
ret
Functionc8801: ; c8801 (32:4801)
call Functionc8f0a
ret
BattleBGEffect_Tackle: ; c8805 (32:4805)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8810
dw Functionc8869
dw Functionc8888
dw Functionc8833
Functionc8810: ; c8810 (32:4810)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $3
add hl, bc
ld [hl], $0
call Functionc9038
jr nz, .asm_c882f
ld a, $2
jr .asm_c8831
.asm_c882f
ld a, $fe
.asm_c8831
ld [hl], a
ret
Functionc8833: ; c8833 (32:4833)
call Functionc8f0a
ret
BattleBGEffect_25: ; c8837 (32:4837)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8842
dw Functionc8869
dw Functionc8888
dw Functionc8865
Functionc8842: ; c8842 (32:4842)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ef4
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $3
add hl, bc
ld [hl], $0
call Functionc9038
jr nz, .asm_c8861
ld a, $2
jr .asm_c8863
.asm_c8861
ld a, $fe
.asm_c8863
ld [hl], a
ret
Functionc8865: ; c8865 (32:4865)
call Functionc8f0a
ret
Functionc8869: ; c8869 (32:4869)
ld hl, $3
add hl, bc
ld a, [hl]
cp $f8
jr z, .asm_c8876
cp $8
jr nz, .asm_c8879
.asm_c8876
call Functionc80e5
.asm_c8879
call Functionc88a5
ld hl, $2
add hl, bc
ld a, [hl]
ld hl, $3
add hl, bc
add [hl]
ld [hl], a
ret
Functionc8888: ; c8888 (32:4888)
ld hl, $3
add hl, bc
ld a, [hl]
and a
jr nz, .asm_c8893
call Functionc80e5
.asm_c8893
call Functionc88a5
ld hl, $2
add hl, bc
ld a, [hl]
xor $ff
inc a
ld hl, $3
add hl, bc
add [hl]
ld [hl], a
ret
Functionc88a5: ; c88a5 (32:48a5)
push af
ld a, [FXAnimIDHi] ; FXAnimIDHi
or a
jr nz, .asm_c88b3
ld a, [FXAnimIDLo] ; FXAnimID
cp ROLLOUT
jr z, .asm_c88b7
.asm_c88b3
pop af
jp Functionc900b
.asm_c88b7
ld a, [hLCDStatCustom + 1]
ld d, a
ld a, [hLCDStatCustom + 2]
sub d
ld d, a
ld h, LYOverridesBackup / $100
ld a, [hSCY]
or a
jr nz, .asm_c88d0
ld a, [hLCDStatCustom + 1]
or a
jr z, .asm_c88d6
dec a
ld l, a
ld [hl], $0
jr .asm_c88d6
.asm_c88d0
ld a, [hLCDStatCustom + 2]
dec a
ld l, a
ld [hl], $0
.asm_c88d6
ld a, [hSCY]
ld l, a
ld a, [hLCDStatCustom + 1]
sub l
jr nc, .asm_c88e0
xor a
dec d
.asm_c88e0
ld l, a
pop af
.asm_c88e2
ld [hli], a
dec d
jr nz, .asm_c88e2
ret
BattleBGEffect_2d: ; c88e7 (32:48e7)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc88f6
dw Functionc8869
dw Functionc8888
dw Functionc88f2
Functionc88f2: ; c88f2 (32:48f2)
call Functionc8f0a
ret
Functionc88f6: ; c88f6 (32:48f6)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $3
add hl, bc
ld [hl], $0
call Functionc9038
jr nz, .asm_c8915
ld a, $fe
jr .asm_c8917
.asm_c8915
ld a, $2
.asm_c8917
ld [hl], a
ret
BattleBGEffect_2f: ; c8919 (32:4919)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc88f6
dw Functionc8869
dw Functionc8929
dw Functionc8888
dw Functionc8926
Functionc8926: ; c8926 (32:4926)
call Functionc8f0a
Functionc8929: ; c8929 (32:4929)
ret
BattleBGEffect_26: ; c892a (32:492a)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8933
dw Functionc894a
dw Functionc8960
Functionc8933: ; c8933 (32:4933)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $3
add hl, bc
ld [hl], $0
ret
Functionc894a: ; c894a (32:494a)
ld hl, $3
add hl, bc
ld a, [hl]
ld d, $8
call Functionc905d
call Functionc900b
ld hl, $3
add hl, bc
ld a, [hl]
add $4
ld [hl], a
ret
Functionc8960: ; c8960 (32:4960)
call Functionc8f0a
ret
BattleBGEffect_2c: ; c8964 (32:4964)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc896d
dw Functionc8985
dw Functionc89b1
Functionc896d: ; c896d (32:496d)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
xor a
ld hl, $2
add hl, bc
ld [hli], a
ld [hl], a
ret
Functionc8985: ; c8985 (32:4985)
ld hl, $3
add hl, bc
ld a, [hl]
ld d, $6
call Functionc905d
push af
ld hl, $2
add hl, bc
ld a, [hl]
ld d, $2
call Functionc905d
ld e, a
pop af
add e
call Functionc900b
ld hl, $2
add hl, bc
ld a, [hl]
add $8
ld [hl], a
ld hl, $3
add hl, bc
ld a, [hl]
add $2
ld [hl], a
ret
Functionc89b1: ; c89b1 (32:49b1)
call Functionc8f0a
ret
BattleBGEffect_28: ; c89b5 (32:49b5)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc89be
dw Functionc89ca
dw Functionc89da
Functionc89be: ; c89be (32:49be)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ret
Functionc89ca: ; c89ca (32:49ca)
ld hl, $3
add hl, bc
ld a, [hl]
cp $20
ret nc
inc [hl]
ld d, a
ld e, $4
call Functionc8f2e
ret
Functionc89da: ; c89da (32:49da)
ld hl, $3
add hl, bc
ld a, [hl]
and a
jr z, .asm_c89ea
dec [hl]
ld d, a
ld e, $4
call Functionc8f2e
ret
.asm_c89ea
call Functionc8f0a
ret
BattleBGEffect_22: ; c89ee (32:49ee)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc89f7
dw Functionc8a14
dw Functionc8a36
Functionc89f7: ; c89f7 (32:49f7)
call Functionc80e5
call Functionc8eca
ld a, $42
call Functionc8ef4
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $2
add hl, bc
ld [hl], $1
ld hl, $3
add hl, bc
ld [hl], $20
ret
Functionc8a14: ; c8a14 (32:4a14)
ld hl, $2
add hl, bc
ld a, [hl]
cp $38
ret nc
push af
ld hl, $3
add hl, bc
ld a, [hl]
ld d, $10
call Functionc9066
add $10
ld d, a
pop af
add d
call Functionc901b
ld hl, $3
add hl, bc
rept 2
inc [hl]
endr
ret
Functionc8a36: ; c8a36 (32:4a36)
call Functionc8f0a
ret
BattleBGEffect_2a: ; c8a3a (32:4a3a)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8a49
dw Functionc8a6f
dw Functionc8a70
dw Functionc8a88
dw Functionc8a6f
dw Functionc8aac
Functionc8a49: ; c8a49 (32:4a49)
call Functionc80e5
ld a, $e4
call Functionc8ecb
ld a, $47
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld a, [hLCDStatCustom + 1]
ld l, a
ld h, $d2
.asm_c8a60
ld a, [hLCDStatCustom + 2]
cp l
jr z, .asm_c8a69
xor a
ld [hli], a
jr .asm_c8a60
.asm_c8a69
ld hl, $3
add hl, bc
ld [hl], $0
Functionc8a6f: ; c8a6f (32:4a6f)
ret
Functionc8a70: ; c8a70 (32:4a70)
call Functionc8ab0
jr nc, .asm_c8a79
call Functionc8a9a
ret
.asm_c8a79
ld hl, $3
add hl, bc
ld [hl], $0
ld a, [hLCDStatCustom + 1]
inc a
ld [hLCDStatCustom + 1], a
call Functionc80e5
ret
Functionc8a88: ; c8a88 (32:4a88)
call Functionc8ab0
jr nc, .asm_c8a96
call Functionc8a9a
ld a, [hLCDStatCustom + 2]
dec a
ld l, a
ld [hl], e
ret
.asm_c8a96
call Functionc80e5
ret
Functionc8a9a: ; c8a9a (32:4a9a)
ld e, a
ld a, [hLCDStatCustom + 1]
ld l, a
ld a, [hLCDStatCustom + 2]
sub l
srl a
ld h, $d2
.asm_c8aa5
ld [hl], e
rept 2
inc hl
endr
dec a
jr nz, .asm_c8aa5
ret
Functionc8aac: ; c8aac (32:4aac)
call Functionc8f19
ret
Functionc8ab0: ; c8ab0 (32:4ab0)
ld hl, $3
add hl, bc
ld a, [hl]
inc [hl]
srl a
srl a
srl a
ld e, a
ld d, 0
ld hl, Unknown_c8ac7
add hl, de
ld a, [hl]
cp $ff
ret
; c8ac7 (32:4ac7)
Unknown_c8ac7:
db $00, $40, $90, $e4, $ff
; c8acc
BattleBGEffect_2b: ; c8acc (32:4acc)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8ad3
dw Functionc8ae5
Functionc8ad3: ; c8ad3 (32:4ad3)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ld hl, $2
add hl, bc
ld [hl], $40
ret
Functionc8ae5: ; c8ae5 (32:4ae5)
ld hl, $2
add hl, bc
ld a, [hl]
and a
jr z, .asm_c8afc
dec [hl]
srl a
srl a
srl a
and $f
ld d, a
ld e, a
call Functionc8f2e
ret
.asm_c8afc
call Functionc8f0a
ret
BattleBGEffect_1c: ; c8b00 (32:4b00)
ld a, [hCGB]
and a
jr nz, asm_c8b7a
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8b0e
dw Functionc8b22
dw Functionc8b60
Functionc8b0e: ; c8b0e (32:4b0e)
call Functionc80e5
ld a, $e4
call Functionc8ecb
ld a, $47
ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $60
ld [hLCDStatCustom + 2], a
ret
Functionc8b22: ; c8b22 (32:4b22)
ld hl, $3
add hl, bc
ld a, [hl]
inc [hl]
ld e, a
and $7
ret nz
ld a, e
and $18
sla a
swap a
sla a
ld e, a
ld d, $0
push bc
call Functionc9038
jr nz, .asm_c8b4d
ld hl, Unknown_c8bd8
add hl, de
ld a, [hli]
ld [wcfc9], a
ld d, a
ld e, [hl]
ld bc, $2f30
jr .asm_c8b5b
.asm_c8b4d
ld hl, Unknown_c8be0
add hl, de
ld d, [hl]
inc hl
ld a, [hl]
ld [wcfc9], a
ld e, a
ld bc, $3728
.asm_c8b5b
call Functionc8b6c
pop bc
ret
Functionc8b60: ; c8b60 (32:4b60)
call Functionc8f19
ld a, $e4
ld [wcfc7], a
ld [wcfc9], a
ret
Functionc8b6c: ; c8b6c (32:4b6c)
ld hl, LYOverridesBackup
.asm_c8b6f
ld [hl], d
inc hl
dec b
jr nz, .asm_c8b6f
.asm_c8b74
ld [hl], e
inc hl
dec c
jr nz, .asm_c8b74
ret
asm_c8b7a: ; c8b7a (32:4b7a)
ld de, Jumptable_c8b81
call Functionc80ca
jp [hl]
; c8b81 (32:4b81)
Jumptable_c8b81: ; c8b81
dw Functionc8b87
dw Functionc8b91
dw Functionc8bca
; c8b87
Functionc8b87: ; c8b87
call Functionc80e5
ld hl, $3
add hl, bc
ld [hl], $0
ret
; c8b91
Functionc8b91: ; c8b91
ld hl, $3
add hl, bc
ld a, [hl]
inc [hl]
ld e, a
and $7
ret nz
ld a, e
and $18
sla a
swap a
sla a
ld e, a
ld d, 0
call Functionc9038
jr nz, .asm_c8bbb
ld hl, Unknown_c8bd8
add hl, de
ld a, [hli]
push hl
call Functionc8e7f
pop hl
ld a, [hl]
call Functionc8e52
ret
.asm_c8bbb
ld hl, Unknown_c8bd8
add hl, de
ld a, [hli]
push hl
call Functionc8e52
pop hl
ld a, [hl]
call Functionc8e7f
ret
; c8bca
Functionc8bca: ; c8bca
ld a, $e4
call Functionc8e52
ld a, $e4
call Functionc8e7f
call EndBattleBGEffect
ret
; c8bd8
Unknown_c8bd8: ; c8bd8
db $e4, $e4
db $f8, $90
db $fc, $40
db $f8, $90
; c8be0
Unknown_c8be0: ; c8be0
db $e4, $e4
db $90, $f8
db $40, $fc
db $90, $f8
; c8be8
BattleBGEffect_RapidFlash: ; c8be8 (32:4be8)
ld de, Unknown_c8bef
call Functionc8d77
ret
; c8bef (32:4bef)
Unknown_c8bef: ; c8bef
db $e4, $6c, $fe
; c8bf2
BattleBGEffect_16: ; c8bf2 (32:4bf2)
ld de, Unknown_c8bf9
call Functionc8d77
ret
; c8bf9 (32:4bf9)
Unknown_c8bf9: ; c8bf9
db $e4, $90, $40, $ff
; c8bfd
BattleBGEffect_17: ; c8bfd (32:4bfd)
ld de, Unknown_c8c04
call Functionc8d77
ret
; c8c04 (32:4c04)
Unknown_c8c04: ; c8c04
db $e4, $f8, $fc, $ff
; c8c08
BattleBGEffect_18: ; c8c08 (32:4c08)
ld de, Unknown_c8c0f
call Functionc8d77
ret
; c8c0f (32:4c0f)
Unknown_c8c0f: ; c8c0f
db $e4, $90, $40, $90, $fe
; c8c14
BattleBGEffect_19: ; c8c14 (32:4c14)
ld de, Unknown_c8c1b
call Functionc8d77
ret
; c8c1b (32:4c1b)
Unknown_c8c1b: ; c8c1b
db $e4, $f8, $fc, $f8, $fe
; c8c20
BattleBGEffect_1a: ; c8c20 (32:4c20)
ld de, Unknown_c8c27
call Functionc8d77
ret
; c8c27 (32:4c27)
Unknown_c8c27: ; c8c27
db $e4, $f8, $fc, $f8, $e4, $90, $40, $90, $fe
; c8c30
BattleBGEffect_1b: ; c8c30 (32:4c30)
ld de, Unknown_c8c37
call Functionc8d77
ret
; c8c37 (32:4c37)
Unknown_c8c37:
db $e4, $fc, $e4, $00, $fe
; c8c3c
BattleBGEffect_1d: ; c8c3c (32:4c3c)
ld de, Unknown_c8c43
call Functionc8d77
ret
; c8c43 (32:4c43)
Unknown_c8c43:
db $e4, $90, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $90, $e4, $ff
; c8c55
BattleBGEffect_1e: ; c8c55 (32:4c55)
ld de, Unknown_c8c5c
call Functionc8d77
ret
; c8c5c (32:4c5c)
Unknown_c8c5c:
db $00, $40, $90, $e4, $ff
; c8c61
BattleBGEffect_VibrateMon: ; c8c61 (32:4c61)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8c68
dw Functionc8c85
Functionc8c68: ; c8c68 (32:4c68)
call Functionc80e5
call Functionc8eca
ld a, $43
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $2
add hl, bc
ld [hl], $1
ld hl, $3
add hl, bc
ld [hl], $20
ret
Functionc8c85: ; c8c85 (32:4c85)
ld hl, $3
add hl, bc
ld a, [hl]
and a
jr z, .asm_c8c9e
dec [hl]
and $1
ret nz
ld hl, $2
add hl, bc
ld a, [hl]
xor $ff
inc a
ld [hl], a
call Functionc900b
ret
.asm_c8c9e
call Functionc8f0a
ret
BattleBGEffect_WobbleMon: ; c8ca2 (32:4ca2)
call BattleBGEffects_AnonJumptable
.anon_jumptable
dw Functionc8cab
dw Functionc8cc3
dw Functionc8cdd
Functionc8cab: ; c8cab (32:4cab)
call Functionc80e5
call Functionc8eca
ld a, $43
ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $37
ld [hLCDStatCustom + 2], a
ld hl, $3
add hl, bc
ld [hl], $0
ret
Functionc8cc3: ; c8cc3 (32:4cc3)
ld hl, $3
add hl, bc
ld a, [hl]
cp $40
jr nc, Functionc8cdd
ld d, $6
call Functionc905d
call Functionc900b
ld hl, $3
add hl, bc
ld a, [hl]
add $2
ld [hl], a
ret
Functionc8cdd: ; c8cdd (32:4cdd)
call Functionc8f0a
ret
BattleBGEffect_2e: ; c8ce1 (32:4ce1)
call Functionc8d0b
jr c, .asm_c8cea
bit 7, a
jr z, .asm_c8ceb
.asm_c8cea
xor a
.asm_c8ceb
push af
call DelayFrame
pop af
ld [hSCY], a
xor $ff
inc a
ld [OTPartyMon3SpclAtk], a
ret
BattleBGEffect_1f: ; c8cf9 (32:4cf9)
call Functionc8d0b
jr nc, .asm_c8cff
xor a
.asm_c8cff
ld [hSCX], a
ret
BattleBGEffect_20: ; c8d02 (32:4d02)
call Functionc8d0b
jr nc, .asm_c8d08
xor a
.asm_c8d08
ld [hSCY], a
ret
Functionc8d0b: ; c8d0b (32:4d0b)
ld hl, $1
add hl, bc
ld a, [hl]
and a
jr nz, .asm_c8d18
call EndBattleBGEffect
scf
ret
.asm_c8d18
dec [hl]
ld hl, $3
add hl, bc
ld a, [hl]
and $f
jr z, .asm_c8d2a
dec [hl]
ld hl, $2
add hl, bc
ld a, [hl]
and a
ret
.asm_c8d2a
ld a, [hl]
swap a
or [hl]
ld [hl], a
ld hl, $2
add hl, bc
ld a, [hl]
xor $ff
inc a
ld [hl], a
and a
ret
BattleBGEffect_35: ; c8d3a (32:4d3a)
ld hl, $3
add hl, bc
ld a, [hl]
cp $40
jr nc, .asm_c8d53
ld d, $6
call Functionc905d
ld [hSCX], a
ld hl, $3
add hl, bc
ld a, [hl]
add $2
ld [hl], a
ret
.asm_c8d53
xor a
ld [hSCX], a
ret
Functionc8d57: ; c8d57 (32:4d57)
ld hl, $1
add hl, bc
ld a, [hl]
and a
jr z, .asm_c8d69
dec [hl]
ld hl, $3
add hl, bc
ld a, [hl]
call Functionc8eb2
ret
.asm_c8d69
ld hl, $2
add hl, bc
ld a, [hl]
ld hl, $1
add hl, bc
ld [hl], a
call Functionc8eac
ret
Functionc8d77: ; c8d77 (32:4d77)
ld a, [hCGB]
and a
jr nz, asm_c8dd4
push de
ld de, Jumptable_c8d85
call Functionc80ca
pop de
jp [hl]
Jumptable_c8d85: ; c8d85 (32:4d85)
dw Functionc8d8b
dw Functionc8daa
dw Functionc8dc9
Functionc8d8b: ; c8d8b (32:4d8b)
call Functionc80e5
ld a, $e4
call Functionc8ecb
ld a, $47
call Functionc8ede
ld a, [hLCDStatCustom + 2]
inc a
ld [hLCDStatCustom + 2], a
ld hl, $3
add hl, bc
ld a, [hl]
ld [hl], $0
ld hl, $2
add hl, bc
ld [hl], a
ret
Functionc8daa: ; c8daa (32:4daa)
ld hl, $2
add hl, bc
ld a, [hl]
and $f
jr z, .asm_c8db5
dec [hl]
ret
.asm_c8db5
ld a, [hl]
swap a
or [hl]
ld [hl], a
call Functionc8eac
jr c, .asm_c8dc3
call Functionc900b
ret
.asm_c8dc3
ld hl, $3
add hl, bc
dec [hl]
ret
Functionc8dc9: ; c8dc9 (32:4dc9)
call Functionc8f19
ld a, $e4
ld [rBGP], a
call EndBattleBGEffect
ret
asm_c8dd4: ; c8dd4 (32:4dd4)
push de
ld de, Jumptable_c8ddd
call Functionc80ca
pop de
jp [hl]
Jumptable_c8ddd: ; c8ddd (32:4ddd)
dw Functionc8de7
dw Functionc8e02
dw Functionc8e21
dw Functionc8e2a
dw Functionc8e49
Functionc8de7: ; c8de7 (32:4de7)
call Functionc9038
jr nz, .asm_c8df2
call Functionc80e5
call Functionc80e5
.asm_c8df2
call Functionc80e5
ld hl, $3
add hl, bc
ld a, [hl]
ld [hl], $0
ld hl, $2
add hl, bc
ld [hl], a
ret
Functionc8e02: ; c8e02 (32:4e02)
ld hl, $2
add hl, bc
ld a, [hl]
and $f
jr z, .asm_c8e0d
dec [hl]
ret
.asm_c8e0d
ld a, [hl]
swap a
or [hl]
ld [hl], a
call Functionc8eac
jr c, .asm_c8e1b
call Functionc8e52
ret
.asm_c8e1b
ld hl, $3
add hl, bc
dec [hl]
ret
Functionc8e21: ; c8e21 (32:4e21)
ld a, $e4
call Functionc8e52
call EndBattleBGEffect
ret
Functionc8e2a: ; c8e2a (32:4e2a)
ld hl, $2
add hl, bc
ld a, [hl]
and $f
jr z, .asm_c8e35
dec [hl]
ret
.asm_c8e35
ld a, [hl]
swap a
or [hl]
ld [hl], a
call Functionc8eac
jr c, .asm_c8e43
call Functionc8e7f
ret
.asm_c8e43
ld hl, $3
add hl, bc
dec [hl]
ret
Functionc8e49: ; c8e49 (32:4e49)
ld a, $e4
call Functionc8e7f
call EndBattleBGEffect
ret
Functionc8e52: ; c8e52 (32:4e52)
ld h, a
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld a, h
push bc
push af
ld hl, BGPals ; BGPals
ld de, UnknBGPals ; wd000
ld b, a
ld c, $1
call CopyPals
ld hl, OBPals + 8
ld de, UnknOBPals + 8
pop af
ld b, a
ld c, $1
call CopyPals
pop bc
pop af
ld [rSVBK], a
ld a, $1
ld [hCGBPalUpdate], a
ret
Functionc8e7f: ; c8e7f (32:4e7f)
ld h, a
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld a, h
push bc
push af
ld hl, BGPals + 8
ld de, UnknBGPals + 8
ld b, a
ld c, $1
call CopyPals
ld hl, OBPals ; OBPals
ld de, UnknOBPals ; wd040
pop af
ld b, a
ld c, $1
call CopyPals
pop bc
pop af
ld [rSVBK], a
ld a, $1
ld [hCGBPalUpdate], a
ret
Functionc8eac: ; c8eac (32:4eac)
ld hl, $3
add hl, bc
ld a, [hl]
inc [hl]
Functionc8eb2: ; c8eb2 (32:4eb2)
ld l, a
ld h, $0
add hl, de
ld a, [hl]
cp $ff
jr z, .asm_c8ec8
cp $fe
jr nz, .asm_c8ec6
ld a, [de]
ld hl, $3
add hl, bc
ld [hl], $0
.asm_c8ec6
and a
ret
.asm_c8ec8
scf
ret
Functionc8eca: ; c8eca (32:4eca)
xor a
Functionc8ecb: ; c8ecb (32:4ecb)
ld hl, LYOverrides ; wd100
ld e, $99
.asm_c8ed0
ld [hli], a
dec e
jr nz, .asm_c8ed0
ld hl, LYOverridesBackup
ld e, $91
.asm_c8ed9
ld [hli], a
dec e
jr nz, .asm_c8ed9
ret
Functionc8ede: ; c8ede (32:4ede)
ld [hLCDStatCustom], a
call Functionc9038
jr nz, .asm_c8eea
ld de, $36
jr .asm_c8eed
.asm_c8eea
ld de, $2f5e
.asm_c8eed
ld a, d
ld [hLCDStatCustom + 1], a
ld a, e
ld [hLCDStatCustom + 2], a
ret
Functionc8ef4: ; c8ef4 (32:4ef4)
ld [hLCDStatCustom], a
call Functionc9038
jr nz, .asm_c8f00
ld de, $36
jr .asm_c8f03
.asm_c8f00
ld de, $2d5e
.asm_c8f03
ld a, d
ld [hLCDStatCustom + 1], a
ld a, e
ld [hLCDStatCustom + 2], a
ret
Functionc8f0a: ; c8f0a (32:4f0a)
xor a
ld [hLCDStatCustom + 1], a
ld [hLCDStatCustom + 2], a
call Functionc8eca
xor a
ld [hLCDStatCustom], a
call EndBattleBGEffect
ret
Functionc8f19: ; c8f19 (32:4f19)
xor a
ld [hLCDStatCustom], a
ld a, $e4
ld [rBGP], a
ld [wcfc7], a
ld [wcfc9], a
ld [hLCDStatCustom + 1], a
ld [hLCDStatCustom + 2], a
call Functionc8eca
ret
Functionc8f2e: ; c8f2e (32:4f2e)
push bc
xor a
ld [BattleAnimTemps], a
ld a, e
ld [BattleAnimTemps + 1], a
ld a, d
ld [BattleAnimTemps + 2], a
ld a, $80
ld [BattleAnimTemps + 3], a
ld bc, LYOverridesBackup
.asm_c8f43
ld a, [hLCDStatCustom + 1]
cp c
jr nc, .asm_c8f58
ld a, [hLCDStatCustom + 2]
cp c
jr c, .asm_c8f58
ld a, [BattleAnimTemps + 2]
ld d, a
ld a, [BattleAnimTemps]
call Functionc905d
ld [bc], a
.asm_c8f58
inc bc
ld a, [BattleAnimTemps + 1]
ld hl, BattleAnimTemps
add [hl]
ld [hl], a
ld hl, BattleAnimTemps + 3
dec [hl]
jr nz, .asm_c8f43
pop bc
ret
Functionc8f69: ; c8f69 (32:4f69)
push bc
xor a
ld [BattleAnimTemps], a
ld a, e
ld [BattleAnimTemps + 1], a
ld a, d
ld [BattleAnimTemps + 2], a
ld a, $40
ld [BattleAnimTemps + 3], a
ld bc, w5_d422
.asm_c8f7e
ld a, [BattleAnimTemps + 2]
ld d, a
ld a, [BattleAnimTemps]
call Functionc905d
ld [bc], a
inc bc
ld a, [BattleAnimTemps + 1]
ld hl, BattleAnimTemps
add [hl]
ld [hl], a
ld hl, BattleAnimTemps + 3
dec [hl]
jr nz, .asm_c8f7e
pop bc
ret
Functionc8f9a: ; c8f9a (32:4f9a)
push bc
ld [BattleAnimTemps + 3], a
ld a, e
ld [BattleAnimTemps + 1], a
ld a, d
ld [BattleAnimTemps + 2], a
call Functionc8fe4
ld hl, LYOverridesBackup
add hl, de
ld c, l
ld b, h
.asm_c8faf
ld a, [BattleAnimTemps + 3]
and a
jr z, .asm_c8fe1
dec a
ld [BattleAnimTemps + 3], a
push af
ld a, [BattleAnimTemps + 2]
ld d, a
ld a, [BattleAnimTemps + 1]
push hl
call Functionc905d
ld e, a
pop hl
ld a, [hLCDStatCustom + 2]
cp c
jr c, .asm_c8fcf
ld a, e
ld [bc], a
inc bc
.asm_c8fcf
ld a, [hLCDStatCustom + 1]
cp l
jr nc, .asm_c8fd6
ld [hl], e
dec hl
.asm_c8fd6
ld a, [BattleAnimTemps + 1]
add $4
ld [BattleAnimTemps + 1], a
pop af
jr .asm_c8faf
.asm_c8fe1
pop bc
and a
ret
Functionc8fe4: ; c8fe4 (32:4fe4)
ld a, [hLCDStatCustom + 1]
ld e, a
ld a, [BattleAnimTemps]
add e
ld e, a
ld d, $0
ret
Functionc8fef: ; c8fef (32:4fef)
push bc
ld a, [hLCDStatCustom + 1]
ld l, a
inc a
ld e, a
ld h, $d2
ld d, h
ld a, [hLCDStatCustom + 2]
sub l
and a
jr z, .asm_c9009
ld c, a
ld a, [hl]
push af
.asm_c9001
ld a, [de]
inc de
ld [hli], a
dec c
jr nz, .asm_c9001
pop af
ld [hl], a
.asm_c9009
pop bc
ret
Functionc900b: ; c900b (32:500b)
push af
ld h, $d2
ld a, [hLCDStatCustom + 1]
ld l, a
ld a, [hLCDStatCustom + 2]
sub l
ld d, a
pop af
.asm_c9016
ld [hli], a
dec d
jr nz, .asm_c9016
ret
Functionc901b: ; c901b (32:501b)
push af
ld e, a
ld a, [hLCDStatCustom + 1]
ld l, a
ld a, [hLCDStatCustom + 2]
sub l
sub e
ld d, a
ld h, $d2
ld a, [hLCDStatCustom + 1]
ld l, a
ld a, $90
.asm_c902c
ld [hli], a
dec e
jr nz, .asm_c902c
pop af
xor $ff
.asm_c9033
ld [hli], a
dec d
jr nz, .asm_c9033
ret
Functionc9038: ; c9038 (32:5038)
ld hl, $2
add hl, bc
ld a, [hBattleTurn]
and $1
xor [hl]
ret
Functionc9042: ; c9042 (32:5042)
ld hl, $2
add hl, bc
ld a, [hBattleTurn]
and $1
xor [hl]
jr nz, .asm_c9053
ld a, [EnemySubStatus3] ; EnemySubStatus3
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
ret
.asm_c9053
ld a, [PlayerSubStatus3] ; PlayerSubStatus3
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
ret
Functionc9059: ; c9059 (32:5059)
ld a, [hSGB]
and a
ret
Functionc905d: ; c905d (32:505d)
ld e, a
callab BattleAnim_Sine_e
ld a, e
ret
Functionc9066: ; c9066 (32:5066)
ld e, a
callab BattleAnim_Cosine_e
ld a, e
ret
; c906f (32:506f)