summaryrefslogtreecommitdiff
path: root/battle/bg_effects.asm
diff options
context:
space:
mode:
Diffstat (limited to 'battle/bg_effects.asm')
-rw-r--r--battle/bg_effects.asm2805
1 files changed, 1410 insertions, 1395 deletions
diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm
index b6b1901da..188a3e43d 100644
--- a/battle/bg_effects.asm
+++ b/battle/bg_effects.asm
@@ -1,140 +1,148 @@
+ const_def
+ const BGSQUARE_SIX
+ const BGSQUARE_FOUR
+ const BGSQUARE_TWO
+ const BGSQUARE_SEVEN
+ const BGSQUARE_FIVE
+ const BGSQUARE_THREE
+
; BG effects for use in battle animations.
-Functionc8000: ; c8000 (32:4000)
+ExecuteBGEffects: ; c8000 (32:4000)
ld hl, ActiveBGEffects
- ld e, $5
-.asm_c8005
+ ld e, 5
+.loop
ld a, [hl]
and a
- jr z, .asm_c8012
+ jr z, .next
ld c, l
ld b, h
push hl
push de
- call Functionc804a
+ call DoBattleBGEffectFunction
pop de
pop hl
-.asm_c8012
- ld bc, $4
+.next
+ ld bc, 4
add hl, bc
dec e
- jr nz, .asm_c8005
+ jr nz, .loop
ret
-Functionc801a: ; c801a (32:401a)
+QueueBGEffect: ; c801a (32:401a)
ld hl, ActiveBGEffects
- ld e, $5
-.asm_c801f
+ ld e, 5
+.loop
ld a, [hl]
and a
- jr z, .asm_c802c
- ld bc, $4
+ jr z, .load
+ ld bc, 4
add hl, bc
dec e
- jr nz, .asm_c801f
+ jr nz, .loop
scf
ret
-.asm_c802c
+
+.load
ld c, l
ld b, h
- ld hl, $0
+ ld hl, BG_EFFECT_STRUCT_FUNCTION
add hl, bc
- ld a, [BattleAnimTemps]
+ ld a, [wBattleAnimTemp0]
ld [hli], a
- ld a, [BattleAnimTemps + 1]
+ ld a, [wBattleAnimTemp1]
ld [hli], a
- ld a, [BattleAnimTemps + 2]
+ ld a, [wBattleAnimTemp2]
ld [hli], a
- ld a, [BattleAnimTemps + 3]
+ ld a, [wBattleAnimTemp3]
ld [hl], a
ret
EndBattleBGEffect: ; c8043 (32:4043)
- ld hl, 0
+ ld hl, BG_EFFECT_STRUCT_FUNCTION
add hl, bc
ld [hl], 0
ret
-Functionc804a: ; c804a (32:404a)
- ld hl, 0
+DoBattleBGEffectFunction: ; c804a (32:404a)
+ ld hl, BG_EFFECT_STRUCT_FUNCTION
add hl, bc
ld e, [hl]
ld d, 0
ld hl, BattleBGEffects
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
BattleBGEffects: ; c805a (32:405a)
- dw BattleBGEffect_0
- dw Functionc80eb
- dw Functionc80f3
- dw Functionc812d
- dw Functionc8141
- dw Functionc8155
- dw Functionc8171
- dw Functionc818b
- dw Functionc81a5
- dw Functionc81b3
- dw Functionc81ea
- dw Functionc837b
- dw Functionc83a8
- dw Functionc8545
- dw Functionc8599
- dw Functionc863f
- dw Functionc8662
- dw Functionc8214
- dw Functionc8281
- dw Functionc8689
- dw Functionc8709
- dw Functionc8be8
- dw Functionc8bf2
- dw Functionc8bfd
- dw Functionc8c08
- dw Functionc8c14
- dw Functionc8c20
- dw Functionc8c30
- dw Functionc8b00
- dw Functionc8c3c
- dw Functionc8c55
- dw Functionc8cf9
- dw Functionc8d02
- dw Functionc8761
- dw Functionc89ee
- dw Functionc87a7
- dw Functionc8805
- dw Functionc8837
- dw Functionc892a
- dw Functionc82f5
- dw Functionc89b5
- dw Functionc8607
- dw Functionc8a3a
- dw Functionc8acc
- dw Functionc8964
- dw Functionc88e7
- dw Functionc8ce1
- dw Functionc8919
- dw Functionc85c2
- dw Functionc85ce
- dw Functionc8603
- dw Functionc8c61
- dw Functionc8ca2
- dw Functionc8d3a
-
-
-BattleBGEffect_0: ; c80c6 (32:40c6)
+ 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_BounceDown
+ dw BattleBGEffect_Dig
+ 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
+BatttleBGEffects_GetNamedJumptablePointer: ; c80ca (32:40ca)
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld l, [hl]
- ld h, $0
+ ld h, 0
add hl, hl
add hl, de
ld a, [hli]
@@ -142,12 +150,12 @@ Functionc80ca: ; c80ca (32:40ca)
ld l, a
ret
-Functionc80d7: ; c80d7 (32:40d7)
+BattleBGEffects_AnonJumptable: ; c80d7 (32:40d7)
pop de
- ld hl, $1
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld l, [hl]
- ld h, $0
+ ld h, 0
add hl, hl
add hl, de
ld a, [hli]
@@ -155,59 +163,58 @@ Functionc80d7: ; c80d7 (32:40d7)
ld l, a
jp [hl]
-Functionc80e5: ; c80e5 (32:40e5)
- ld hl, $1
+BattleBGEffects_IncrementJumptable: ; c80e5 (32:40e5)
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
inc [hl]
ret
-Functionc80eb: ; c80eb (32:40eb)
+BattleBGEffect_FlashInverted: ; c80eb (32:40eb)
ld de, .inverted
- jp Functionc80fb
-; c80f1 (32:40f1)
+ jp BattleBGEffect_FlashContinue
.inverted
db %11100100 ; 3210
db %00011011 ; 0123
; c80f3
-Functionc80f3: ; c80f3 (32:40f3)
+BattleBGEffect_FlashWhite: ; c80f3 (32:40f3)
ld de, .white
- jp Functionc80fb
-; c80f9 (32:40f9)
+ jp BattleBGEffect_FlashContinue
.white
db %11100100 ; 3210
db %00000000 ; 0000
; c80fb
-Functionc80fb: ; c80fb (32:40fb)
+BattleBGEffect_FlashContinue: ; c80fb (32:40fb)
+; current timer, flash duration, number of flashes
ld a, $1
- ld [BattleAnimTemps], a
- ld hl, $1
+ ld [wBattleAnimTemp0], a
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c810a
+ jr z, .init
dec [hl]
ret
-.asm_c810a
- ld hl, $2
+.init
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
- ld hl, $1
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld [hl], a
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
and a
- jr nz, .asm_c8120
+ jr nz, .apply_pal
call EndBattleBGEffect
ret
-.asm_c8120
+.apply_pal
dec a
ld [hl], a
and 1
@@ -215,131 +222,153 @@ Functionc80fb: ; c80fb (32:40fb)
ld h, 0
add hl, de
ld a, [hl]
- ld [wcfc7], a
+ ld [wBGP], a
ret
-Functionc812d: ; c812d (32:412d)
- ld de, Unknown_c813d
- call Functionc8d57
- jr c, .asm_c8139
- ld [wcfc7], a
+BattleBGEffect_WhiteHues: ; c812d (32:412d)
+ ld de, .Pals
+ call BattleBGEffect_GetNthDMGPal
+ jr c, .quit
+ ld [wBGP], a
ret
-.asm_c8139
+
+.quit
call EndBattleBGEffect
ret
-; c813d (32:413d)
-Unknown_c813d:
- db $e4, $e0, $d0, $ff
+.Pals
+ db %11100100
+ db %11100000
+ db %11010000
+ db -1
; c8141
-Functionc8141: ; c8141 (32:4141)
- ld de, Unknown_c8151
- call Functionc8d57
- jr c, .asm_c814d
- ld [wcfc7], a
+BattleBGEffect_BlackHues: ; c8141 (32:4141)
+ ld de, .Pals
+ call BattleBGEffect_GetNthDMGPal
+ jr c, .quit
+ ld [wBGP], a
ret
-.asm_c814d
+
+.quit
call EndBattleBGEffect
ret
-; c8151 (32:4151)
-Unknown_c8151:
- db $e4, $f4, $f8, $ff
+.Pals
+ db %11100100
+ db %11110100
+ db %11111000
+ db -1
; c8155
-Functionc8155: ; c8155 (32:4155)
- ld de, Unknown_c8168
- call Functionc8d57
- jr c, .asm_c8164
- ld [wcfc7], a
- ld [wcfc9], a
+BattleBGEffect_AlternateHues: ; c8155 (32:4155)
+ ld de, .Pals
+ call BattleBGEffect_GetNthDMGPal
+ jr c, .quit
+ ld [wBGP], a
+ ld [wOBP1], a
ret
-.asm_c8164
+
+.quit
call EndBattleBGEffect
ret
-; c8168 (32:4168)
-Unknown_c8168:
- db $e4, $f8, $fc, $f8, $e4, $90, $40, $90, $fe
+.Pals
+ db %11100100
+ db %11111000
+ db %11111100
+ db %11111000
+ db %11100100
+ db %10010000
+ db %01000000
+ db %10010000
+ db -2
; c8171
-Functionc8171: ; 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
+BattleBGEffect_06: ; c8171 (32:4171)
+ call BattleBGEffects_CheckSGB
+ jr nz, .sgb
+ ld de, .PalsCGB
+ jr .okay
+
+.sgb
+ ld de, .PalsSGB
+.okay
+ call BattleBGEffect_GetNthDMGPal
+ ld [wOBP0], a
+ ret
+
+.PalsCGB
+ db %11100100
+ db %10010000
+ db -2
+
+.PalsSGB
+ db %11110000
+ db %11000000
+ db -2
; c818b
-Functionc818b: ; 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
+BattleBGEffect_07: ; c818b (32:418b)
+ call BattleBGEffects_CheckSGB
+ jr nz, .sgb
+ ld de, .PalsCGB
+ jr .okay
+
+.sgb
+ ld de, .PalsSGB
+.okay
+ call BattleBGEffect_GetNthDMGPal
+ ld [wOBP0], a
+ ret
+
+.PalsCGB
+ db %11100100
+ db %11011000
+ db -2
+
+.PalsSGB
+ db %11110000
+ db %11001100
+ db -2
; c81a5
-Functionc81a5: ; c81a5 (32:41a5)
- ld de, Unknown_c81af
- call Functionc8d57
- ld [wcfc7], a
+BattleBGEffect_08: ; c81a5 (32:41a5)
+ ld de, .Pals
+ call BattleBGEffect_GetNthDMGPal
+ ld [wBGP], a
ret
-; c81af (32:41af)
-Unknown_c81af:
- db $1b, $63, $87, $fe
+.Pals
+ db %00011011
+ db %01100011
+ db %10000111
+ db -2
; c81b3
-Functionc81b3: ; c81b3 (32:41b3)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_HideMon: ; c81b3 (32:41b3)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw BattleBGEffects_IncrementJumptable
+ dw BattleBGEffects_IncrementJumptable
+ dw BattleBGEffects_IncrementJumptable
+ dw .four
-Jumptable_c81b6: ; c81b6 (32:41b6)
- dw Functionc81c0
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc81e3
-
-Functionc81c0: ; c81c0 (32:41c0)
- call Functionc80e5
+.zero
+ call BattleBGEffects_IncrementJumptable
push bc
- call Functionc9038
- jr nz, .asm_c81d1
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_side
hlcoord 12, 0
- ld bc, $707
- jr .asm_c81d7
-.asm_c81d1
+ lb bc, 7, 7
+ jr .got_pointer
+
+.player_side
hlcoord 2, 6
lb bc, 6, 6
-.asm_c81d7
+.got_pointer
call ClearBox
pop bc
xor a
@@ -348,402 +377,404 @@ Functionc81c0: ; c81c0 (32:41c0)
ld [hBGMapMode], a
ret
-Functionc81e3: ; c81e3 (32:41e3)
+.four
xor a
ld [hBGMapMode], a
call EndBattleBGEffect
ret
-Functionc81ea: ; c81ea (32:41ea)
- call Functionc9042
- jr z, .asm_c81f3
+BattleBGEffect_ShowMon: ; c81ea (32:41ea)
+ call BGEffect_CheckFlyDigStatus
+ jr z, .not_flying
call EndBattleBGEffect
ret
-.asm_c81f3
- call Functionc9038
- jr nz, .asm_c81fd
- ld de, Unknown_c8210
- jr .asm_c8200
-.asm_c81fd
- ld de, Unknown_c820c
-.asm_c8200
+
+.not_flying
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_side
+ ld de, .EnemyData
+ jr .got_pointer
+
+.player_side
+ ld de, .PlayerData
+.got_pointer
ld a, e
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], a
ld a, d
- ld [BattleAnimTemps + 2], a
- call Functionc83ed
+ ld [wBattleAnimTemp2], a
+ call BattleBGEffect_RunPicResizeScript
ret
-; c820c (32:420c)
-Unknown_c820c:
- db $00, $31, $00
- db $ff
-; c8210
-
-Unknown_c8210:
- db $03, $00, $03
- db $ff
+.PlayerData
+ db 0, $31, 0
+ db -1
+.EnemyData
+ db 3, $00, 3
+ db -1
; c8214
-Functionc8214: ; c8214 (32:4214)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8217: ; c8217 (32:4217)
- 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
+BattleBGEffect_FeetFollow: ; c8214 (32:4214)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw BattleBGEffects_IncrementJumptable
+ dw BattleBGEffects_IncrementJumptable
+ dw BattleBGEffects_IncrementJumptable
+ dw .five
+
+
+.zero
+ call BGEffect_CheckFlyDigStatus
+ jr z, .not_flying_digging
+ ld hl, wNumActiveBattleAnims
inc [hl]
call EndBattleBGEffect
ret
-.asm_c8230
- call Functionc80e5
+
+.not_flying_digging
+ call BattleBGEffects_IncrementJumptable
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
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn
+ ld a, ANIM_OBJ_PLAYERFEETFOLLOW
+ ld [wBattleAnimTemp0], a
+ ld a, 16 * 8 + 4
+ jr .okay
+
+.player_turn
+ ld a, ANIM_OBJ_ENEMYFEETFOLLOW
+ ld [wBattleAnimTemp0], a
+ ld a, 6 * 8
+.okay
+ ld [wBattleAnimTemp1], a
+ ld a, 8 * 8
+ ld [wBattleAnimTemp2], a
xor a
- ld [BattleAnimTemps + 3], a
- call Functionc82ee
+ ld [wBattleAnimTemp3], a
+ call _QueueBattleAnimation
pop bc
ret
-Functionc825a: ; c825a (32:425a)
- call Functionc80e5
+.one
+ call BattleBGEffects_IncrementJumptable
push bc
- call Functionc9038
- jr nz, .asm_c826b
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn_2
hlcoord 12, 6
- ld bc, $107
- jr .asm_c8271
-.asm_c826b
+ lb bc, 1, 7
+ jr .okay2
+
+.player_turn_2
hlcoord 2, 6
lb bc, 1, 6
-.asm_c8271
+.okay2
call ClearBox
ld a, $1
ld [hBGMapMode], a
pop bc
ret
-Functionc827a: ; c827a (32:427a)
+.five
xor a
ld [hBGMapMode], a
call EndBattleBGEffect
ret
-Functionc8281: ; c8281 (32:4281)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8284: ; c8284 (32:4284)
- dw Functionc8290
- dw Functionc82c7
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc82e7
+BattleBGEffect_HeadFollow: ; c8281 (32:4281)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw BattleBGEffects_IncrementJumptable
+ dw BattleBGEffects_IncrementJumptable
+ dw BattleBGEffects_IncrementJumptable
+ dw .five
-Functionc8290: ; c8290 (32:4290)
- call Functionc9042
- jr z, .asm_c829d
- ld hl, w5_d40e
+.zero
+ call BGEffect_CheckFlyDigStatus
+ jr z, .not_flying_digging
+ ld hl, wNumActiveBattleAnims
inc [hl]
call EndBattleBGEffect
ret
-.asm_c829d
- call Functionc80e5
+
+.not_flying_digging
+ call BattleBGEffects_IncrementJumptable
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
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn
+ ld a, ANIM_OBJ_BA
+ ld [wBattleAnimTemp0], a
+ ld a, 16 * 8 + 4
+ jr .okay
+
+.player_turn
+ ld a, ANIM_OBJ_BB
+ ld [wBattleAnimTemp0], a
+ ld a, 6 * 8
+.okay
+ ld [wBattleAnimTemp1], a
+ ld a, 8 * 8
+ ld [wBattleAnimTemp2], a
xor a
- ld [BattleAnimTemps + 3], a
- call Functionc82ee
+ ld [wBattleAnimTemp3], a
+ call _QueueBattleAnimation
pop bc
ret
-Functionc82c7: ; c82c7 (32:42c7)
- call Functionc80e5
+.one
+ call BattleBGEffects_IncrementJumptable
push bc
- call Functionc9038
- jr nz, .asm_c82d8
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn_2
hlcoord 12, 5
- ld bc, $207
- jr .asm_c82de
-.asm_c82d8
+ lb bc, 2, 7
+ jr .okay2
+
+.player_turn_2
hlcoord 2, 6
lb bc, 2, 6
-.asm_c82de
+.okay2
call ClearBox
ld a, $1
ld [hBGMapMode], a
pop bc
ret
-Functionc82e7: ; c82e7 (32:42e7)
+.five
xor a
ld [hBGMapMode], a
call EndBattleBGEffect
ret
-Functionc82ee: ; c82ee (32:42ee)
- callab Functioncc9a1
+_QueueBattleAnimation: ; c82ee (32:42ee)
+ callab QueueBattleAnimation
ret
-Functionc82f5: ; c82f5 (32:42f5)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c82f8: ; c82f8 (32:42f8)
- dw Functionc8302
- dw Functionc831d
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc8365
+BattleBGEffect_27: ; c82f5 (32:42f5)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw BattleBGEffects_IncrementJumptable
+ dw BattleBGEffects_IncrementJumptable
+ dw .four
-Functionc8302: ; c8302 (32:4302)
- call Functionc80e5
- call Functionc9038
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BGEffect_CheckBattleTurn
ld [hl], a
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c8315
+ jr z, .user
ld a, $9
- jr .asm_c8317
-.asm_c8315
+ jr .okay
+
+.user
ld a, $8
-.asm_c8317
- ld hl, $3
+.okay
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], a
ret
-Functionc831d: ; c831d (32:431d)
- ld hl, $2
+.one
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c833e
+ jr z, .user_2
hlcoord 0, 6
- ld de, $806
-.asm_c832b
+ lb de, 8, 6
+.row1
push de
push hl
-.asm_c832d
+.col1
inc hl
ld a, [hld]
ld [hli], a
dec d
- jr nz, .asm_c832d
+ jr nz, .col1
pop hl
- ld de, $14
+ ld de, SCREEN_WIDTH
add hl, de
pop de
dec e
- jr nz, .asm_c832b
- jr .asm_c8355
-.asm_c833e
+ jr nz, .row1
+ jr .okay2
+
+.user_2
hlcoord 19, 0
- ld de, $807
-.asm_c8344
+ lb de, 8, 7
+.row2
push de
push hl
-.asm_c8346
+.col2
dec hl
ld a, [hli]
ld [hld], a
dec d
- jr nz, .asm_c8346
+ jr nz, .col2
pop hl
- ld de, $14
+ ld de, SCREEN_WIDTH
add hl, de
pop de
dec e
- jr nz, .asm_c8344
-.asm_c8355
+ jr nz, .row2
+.okay2
xor a
ld [hBGMapThird], a
ld a, $1
ld [hBGMapMode], a
- call Functionc80e5
- ld hl, $3
+ call BattleBGEffects_IncrementJumptable
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
dec [hl]
ret
-Functionc8365: ; c8365 (32:4365)
+.four
xor a
ld [hBGMapMode], a
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c8377
- ld hl, $1
+ jr z, .done
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld [hl], $1
ret
-.asm_c8377
+
+.done
call EndBattleBGEffect
ret
-Functionc837b: ; c837b (32:437b)
- call Functionc9038
- jr nz, .asm_c8385
- ld de, Unknown_c839e
- jr .asm_c8388
-.asm_c8385
- ld de, Unknown_c8394
-.asm_c8388
+BattleBGEffect_EnterMon: ; c837b (32:437b)
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn
+ ld de, .EnemyData
+ jr .okay
+
+.player_turn
+ ld de, .PlayerData
+.okay
ld a, e
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], 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
+ ld [wBattleAnimTemp2], a
+ call BattleBGEffect_RunPicResizeScript
+ ret
+
+.PlayerData
+ db 2, $31, 2
+ db 1, $31, 1
+ db 0, $31, 0
+ db -1
+.EnemyData
+ db 5, $00, 5
+ db 4, $00, 4
+ db 3, $00, 3
+ db -1
; c83a8
-Functionc83a8: ; c83a8 (32:43a8)
- call Functionc9038
- jr nz, .asm_c83b2
- ld de, Unknown_c83d7
- jr .asm_c83b5
-.asm_c83b2
- ld de, Unknown_c83c1
-.asm_c83b5
+BattleBGEffect_ReturnMon: ; c83a8 (32:43a8)
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn
+ ld de, .EnemyData
+ jr .okay
+
+.player_turn
+ ld de, .PlayerData
+.okay
ld a, e
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], 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
+ ld [wBattleAnimTemp2], a
+ call BattleBGEffect_RunPicResizeScript
+ ret
+
+.PlayerData
+ db 0, $31, 0
+ db -2, $66, 0
+ db 1, $31, 1
+ db -2, $44, 1
+ db 2, $31, 2
+ db -2, $22, 2
+ db -3, $00, 0
+ db -1
+.EnemyData
+ db 3, $00, 3
+ db -2, $77, 3
+ db 4, $00, 4
+ db -2, $55, 4
+ db 5, $00, 5
+ db -2, $33, 5
+ db -3, $00, 0
+ db -1
; c83ed
-Functionc83ed: ; c83ed (32:43ed)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_RunPicResizeScript: ; c83ed (32:43ed)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw BattleBGEffects_IncrementJumptable
+ dw BattleBGEffects_IncrementJumptable
+ dw .restart
+ dw .end
-Jumptable_c83f0: ; c83f0 (32:43f0)
- dw Functionc83fa
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc842a
- dw Functionc8434
-
-Functionc83fa: ; c83fa (32:43fa)
- ld hl, $3
+.zero
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld e, [hl]
ld d, $0
inc [hl]
- ld a, [BattleAnimTemps + 1]
+ ld a, [wBattleAnimTemp1]
ld l, a
- ld a, [BattleAnimTemps + 2]
+ ld a, [wBattleAnimTemp2]
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
+ cp -1
+ jr z, .end
+ cp -2
+ jr z, .clear
+ cp -3
+ jr z, .skip
+ call .FillBox
+.skip
+ call BattleBGEffects_IncrementJumptable
ld a, $1
ld [hBGMapMode], a
ret
-.asm_c8425
- call Functionc843b
- jr Functionc83fa
-Functionc842a: ; c842a (32:442a)
+.clear
+ call .ClearBox
+ jr .zero
+
+.restart
xor a
ld [hBGMapMode], a
- ld hl, $1
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld [hl], $0
ret
-Functionc8434: ; c8434 (32:4434)
+.end
xor a
ld [hBGMapMode], a
call EndBattleBGEffect
ret
-Functionc843b: ; c843b (32:443b)
+.ClearBox
+; get dims
push bc
inc hl
ld a, [hli]
@@ -754,12 +785,12 @@ Functionc843b: ; c843b (32:443b)
swap a
and $f
ld b, a
+; get coords
ld e, [hl]
ld d, 0
- ld hl, Unknown_c849c
-rept 2
+ ld hl, .Coords
+ add hl, de
add hl, de
-endr
ld a, [hli]
ld h, [hl]
ld l, a
@@ -767,12 +798,13 @@ endr
pop bc
ret
-Functionc8458: ; c8458 (32:4458)
+.FillBox
+; get dims
push bc
push hl
ld e, [hl]
ld d, 0
- ld hl, Unknown_c84a8
+ ld hl, .BGSquares
rept 3
add hl, de
endr
@@ -784,86 +816,88 @@ endr
swap a
and $f
ld b, a
+; store pointer
ld e, [hl]
inc hl
ld d, [hl]
+; get byte
pop hl
inc hl
ld a, [hli]
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
+; get coord
push de
ld e, [hl]
ld d, 0
- ld hl, Unknown_c849c
-rept 2
+ ld hl, .Coords
+ add hl, de
add hl, de
-endr
ld a, [hli]
ld h, [hl]
ld l, a
pop de
-.asm_c8484
+; fill box
+.row
push bc
push hl
- ld a, [BattleAnimTemps]
+ ld a, [wBattleAnimTemp0]
ld b, a
-.asm_c848a
+.col
ld a, [de]
add b
ld [hli], a
inc de
dec c
- jr nz, .asm_c848a
+ jr nz, .col
pop hl
- ld bc, $14
+ ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_c8484
+ jr nz, .row
pop bc
ret
-; c849c (32:449c)
-Unknown_c849c: ; c849c
+.Coords
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
+
+.BGSquares
+bgsquare: MACRO
+ dn \1,\2
+ dw \3
+endm
+
+ bgsquare 6, 6, .SixBySix
+ bgsquare 4, 4, .FourByFour
+ bgsquare 2, 2, .TwoByTwo
+ bgsquare 7, 7, .SevenBySeven
+ bgsquare 5, 5, .FiveByFive
+ bgsquare 3, 3, .ThreeByThree
+
+.SixBySix
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
+.FourByFour
db $00, $0c, $12, $1e
db $02, $0e, $14, $20
db $03, $0f, $15, $21
db $05, $11, $17, $23
-; c84ee
-Unknown_c84ee: ; c84ee
+.TwoByTwo
db $00, $1e
db $05, $23
-; c84f2
-Unknown_c84f2: ; c84f2
+.SevenBySeven
db $00, $07, $0e, $15, $1c, $23, $2a
db $01, $08, $0f, $16, $1d, $24, $2b
db $02, $09, $10, $17, $1e, $25, $2c
@@ -871,78 +905,76 @@ Unknown_c84f2: ; c84f2
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
+.FiveByFive
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
+.ThreeByThree
db $00, $15, $2a
db $03, $18, $2d
db $06, $1b, $30
; c8545
-Functionc8545: ; c8545 (32:4545)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_Surf: ; c8545 (32:4545)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Jumptable_c8548: ; c8548 (32:4548)
- dw Functionc854e
- dw Functionc8557
- dw Functionc8561
+.zero
+ call BattleBGEffects_IncrementJumptable
+ lb de, 2, 2
+ call InitSurfWaves
-Functionc854e: ; c854e (32:454e)
- call Functionc80e5
- ld de, $202
- call Functionc8f69
-
-Functionc8557: ; c8557 (32:4557)
- ld a, [hLCDStatCustom]
+.one
+ ld a, [hFFC6]
and a
ret z
push bc
- call Functionc8565
+ call .RotatewSurfWaveBGEffect
pop bc
ret
-Functionc8561: ; c8561 (32:4561)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8565: ; c8565 (32:4565)
- ld hl, w5_d422
- ld de, w5_d422 + 1
- ld c, $3f
+.RotatewSurfWaveBGEffect
+ ld hl, wSurfWaveBGEffect
+ ld de, wSurfWaveBGEffect + 1
+ ld c, wSurfWaveBGEffectEnd - wSurfWaveBGEffect - 1
ld a, [hl]
push af
-.asm_c856f
+.loop
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_c856f
+ jr nz, .loop
pop af
ld [hl], a
ld de, LYOverridesBackup
- ld hl, w5_d422
+ ld hl, wSurfWaveBGEffect
ld bc, $0
-.asm_c8580
- ld a, [hLCDStatCustom + 1]
+.loop2
+ ld a, [hFFC7]
cp e
- jr nc, .asm_c858b
+ jr nc, .load_zero
push hl
add hl, bc
ld a, [hl]
pop hl
- jr .asm_c858c
-.asm_c858b
+ jr .okay
+
+.load_zero
xor a
-.asm_c858c
+.okay
ld [de], a
ld a, c
inc a
@@ -951,54 +983,53 @@ Functionc8565: ; c8565 (32:4565)
inc de
ld a, e
cp $5f
- jr c, .asm_c8580
+ jr c, .loop2
ret
-Functionc8599: ; c8599 (32:4599)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c859c: ; c859c (32:459c)
- dw Functionc85a2
- dw Functionc85ba
- dw Functionc85be
+BattleBGEffect_Whirlpool: ; c8599 (32:4599)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc85a2: ; c85a2 (32:45a2)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $42
- ld [hLCDStatCustom], a
+ ld [hFFC6], a
xor a
- ld [hLCDStatCustom + 1], a
+ ld [hFFC7], a
ld a, $5e
- ld [hLCDStatCustom + 2], a
- ld de, $202
+ ld [hFFC8], a
+ lb de, 2, 2
call Functionc8f2e
ret
-Functionc85ba: ; c85ba (32:45ba)
- call Functionc8fef
+.one
+ call BattleBGEffect_WavyScreenFX
ret
-Functionc85be: ; c85be (32:45be)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc85c2: ; c85c2 (32:45c2)
- call Functionc8eca
+BattleBGEffect_30: ; c85c2 (32:45c2)
+ call BattleBGEffects_ClearLYOverrides
ld a, $42
- call Functionc8ede
+ call BattleBGEffect_SetLCDStatCustoms1
call EndBattleBGEffect
ret
-Functionc85ce: ; c85ce (32:45ce)
- ld hl, $3
+BattleBGEffect_31: ; c85ce (32:45ce)
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
ld e, a
add $4
ld [hl], a
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
and $f0
@@ -1006,269 +1037,265 @@ Functionc85ce: ; c85ce (32:45ce)
xor $ff
add $4
ld d, a
- ld hl, $1
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld a, [hl]
- ld [BattleAnimTemps], a
- ld hl, $2
+ ld [wBattleAnimTemp0], a
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
cp $20
- jr nc, .asm_c85fc
-rept 2
+ jr nc, .done
+ inc [hl]
inc [hl]
-endr
call Functionc8f9a
ret
-.asm_c85fc
- call Functionc8eca
+
+.done
+ call BattleBGEffects_ClearLYOverrides
call EndBattleBGEffect
ret
-Functionc8603: ; c8603 (32:4603)
- call Functionc8f0a
+BattleBGEffect_32: ; c8603 (32:4603)
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8607: ; c8607 (32:4607)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c860a: ; c860a (32:460a)
- dw Functionc8610
- dw Functionc862e
- dw Functionc863b
+BattleBGEffect_Psychic: ; c8607 (32:4607)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc8610: ; c8610 (32:4610)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- ld [hLCDStatCustom], a
+ ld [hFFC6], a
xor a
- ld [hLCDStatCustom + 1], a
+ ld [hFFC7], a
ld a, $5f
- ld [hLCDStatCustom + 2], a
- ld de, $605
+ ld [hFFC8], a
+ lb de, 6, 5
call Functionc8f2e
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $0
ret
-Functionc862e: ; c862e (32:462e)
- ld hl, $3
+.one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
inc [hl]
and $3
ret nz
- call Functionc8fef
+ call BattleBGEffect_WavyScreenFX
ret
-Functionc863b: ; c863b (32:463b)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc863f: ; c863f (32:463f)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_Teleport: ; c863f (32:463f)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Jumptable_c8642: ; c8642 (32:4642)
- dw Functionc8648
- dw Functionc865a
- dw Functionc865e
-
-Functionc8648: ; c8648 (32:4648)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
- ld de, $605
+ call BattleBGEffect_SetLCDStatCustoms1
+ lb de, 6, 5
call Functionc8f2e
ret
-Functionc865a: ; c865a (32:465a)
- call Functionc8fef
+.one
+ call BattleBGEffect_WavyScreenFX
ret
-Functionc865e: ; c865e (32:465e)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8662: ; c8662 (32:4662)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8665: ; c8665 (32:4665)
- dw Functionc866b
- dw Functionc8681
- dw Functionc8685
+BattleBGEffect_NightShade: ; c8662 (32:4662)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc866b: ; c866b (32:466b)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $42
- call Functionc8ede
- ld hl, $3
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld e, [hl]
- ld d, $2
+ ld d, 2
call Functionc8f2e
ret
-Functionc8681: ; c8681 (32:4681)
- call Functionc8fef
+.one
+ call BattleBGEffect_WavyScreenFX
ret
-Functionc8685: ; c8685 (32:4685)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8689: ; c8689 (32:4689)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c868c: ; c868c (32:468c)
- dw Functionc8698
- dw Functionc86af
- dw Functionc86cf
- dw Functionc86bd
- dw Functionc86e9
- dw Functionc8705
+BattleBGEffect_DoubleTeam: ; c8689 (32:4689)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
-Functionc8698: ; c8698 (32:4698)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $2
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hl], $0
ret
-Functionc86af: ; c86af (32:46af)
- ld hl, $3
+.one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
cp $10
- jr nc, asm_c86cb
+ jr nc, .next
inc [hl]
- call Functionc86ea
+ call .UpdateLYOverrides
ret
-Functionc86bd: ; c86bd (32:46bd)
- ld hl, $3
+.three
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
cp $ff
- jr z, asm_c86cb
+ jr z, .next
dec [hl]
- call Functionc86ea
+ call .UpdateLYOverrides
ret
-asm_c86cb: ; c86cb (32:46cb)
- call Functionc80e5
+
+.next
+ call BattleBGEffects_IncrementJumptable
ret
-Functionc86cf: ; c86cf (32:46cf)
- ld hl, $2
+.two
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
ld d, $2
- call Functionc905d
- ld hl, $3
+ call BattleBGEffects_Sine
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
add [hl]
- call Functionc86ea
- ld hl, $2
+ call .UpdateLYOverrides
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
add $4
ld [hl], a
-Functionc86e9: ; c86e9 (32:46e9)
+.four
ret
-Functionc86ea: ; c86ea (32:46ea)
+.UpdateLYOverrides
ld e, a
xor $ff
inc a
ld d, a
- ld h, $d2
- ld a, [hLCDStatCustom + 1]
+ ld h, LYOverridesBackup / $100
+ ld a, [hFFC7]
ld l, a
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
sub l
srl a
push af
-.asm_c86fa
+.loop
ld [hl], e
inc hl
ld [hl], d
inc hl
dec a
- jr nz, .asm_c86fa
+ jr nz, .loop
pop af
ret nc
ld [hl], e
ret
-Functionc8705: ; c8705 (32:4705)
- call Functionc8f0a
+.five
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8709: ; c8709 (32:4709)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c870c: ; c870c (32:470c)
- dw Functionc8712
- dw Functionc8732
- dw Functionc875d
+BattleBGEffect_AcidArmor: ; c8709 (32:4709)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc8712: ; c8712 (32:4712)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $42
- call Functionc8ede
- ld hl, $3
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld e, [hl]
- ld d, $2
+ ld d, 2
call Functionc8f2e
ld h, $d2
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
ld l, a
ld [hl], $0
dec l
ld [hl], $0
ret
-Functionc8732: ; c8732 (32:4732)
- ld a, [hLCDStatCustom + 2]
+.one
+ ld a, [hFFC8]
ld l, a
ld h, $d2
ld e, l
ld d, h
dec de
-.asm_c873a
+.loop
ld a, [de]
dec de
ld [hld], a
- ld a, [hLCDStatCustom + 1]
+ ld a, [hFFC7]
cp l
- jr nz, .asm_c873a
+ jr nz, .loop
ld [hl], $90
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
ld l, a
ld a, [hl]
cp $1
- jr c, .asm_c8752
+ jr c, .okay
cp $90
- jr z, .asm_c8752
+ jr z, .okay
ld [hl], $0
-.asm_c8752
+.okay
dec l
ld a, [hl]
cp $2
@@ -1278,235 +1305,232 @@ Functionc8732: ; c8732 (32:4732)
ld [hl], $0
ret
-Functionc875d: ; c875d (32:475d)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8761: ; c8761 (32:4761)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8764: ; c8764 (32:4764)
- dw Functionc876a
- dw Functionc8781
- dw Functionc87a3
+BattleBGEffect_21: ; c8761 (32:4761)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc876a: ; c876a (32:476a)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $42
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $2
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hl], $1
ret
-Functionc8781: ; c8781 (32:4781)
- ld hl, $3
+.one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
and $3f
ld d, a
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
cp d
ret nc
call Functionc901b
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
rlca
rlca
and $3
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
add [hl]
ld [hl], a
ret
-Functionc87a3: ; c87a3 (32:47a3)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc87a7: ; c87a7 (32:47a7)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_Dig: ; c87a7 (32:47a7)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
-Jumptable_c87aa: ; c87aa (32:47aa)
- dw Functionc87b2
- dw Functionc87cf
- dw Functionc87de
- dw Functionc8801
-
-Functionc87b2: ; c87b2 (32:47b2)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $42
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $2
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hl], $2
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $0
ret
-Functionc87cf: ; c87cf (32:47cf)
- ld hl, $3
+.one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c87d9
+ jr z, .next
dec [hl]
ret
-.asm_c87d9
- ld [hl], $10
- call Functionc80e5
-Functionc87de: ; c87de (32:47de)
- ld a, [hLCDStatCustom + 1]
+.next
+ ld [hl], $10
+ call BattleBGEffects_IncrementJumptable
+.two
+ ld a, [hFFC7]
ld l, a
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
sub l
dec a
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
cp [hl]
ret c
ld a, [hl]
push af
and $7
- jr nz, .asm_c87f6
- ld hl, $1
+ jr nz, .skip
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
dec [hl]
-.asm_c87f6
+.skip
pop af
call Functionc901b
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
-rept 2
inc [hl]
-endr
+ inc [hl]
ret
-Functionc8801: ; c8801 (32:4801)
- call Functionc8f0a
+.three
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8805: ; c8805 (32:4805)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_Tackle: ; c8805 (32:4805)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw Tackle_BGEffect25_2d_one
+ dw Tackle_BGEffect25_2d_two
+ dw .three
-Jumptable_c8808: ; c8808 (32:4808)
- dw Functionc8810
- dw Functionc8869
- dw Functionc8888
- dw Functionc8833
-
-Functionc8810: ; c8810 (32:4810)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $3
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_03
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
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_side
+ ld a, 2
+ jr .okay
+
+.player_side
+ ld a, -2
+.okay
ld [hl], a
ret
-Functionc8833: ; c8833 (32:4833)
- call Functionc8f0a
+.three
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8837: ; c8837 (32:4837)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c883a: ; c883a (32:483a)
- dw Functionc8842
- dw Functionc8869
- dw Functionc8888
- dw Functionc8865
+BattleBGEffect_25: ; c8837 (32:4837)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw Tackle_BGEffect25_2d_one
+ dw Tackle_BGEffect25_2d_two
+ dw .three
-Functionc8842: ; c8842 (32:4842)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ef4
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms2
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $3
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_03
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
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_side
+ ld a, 2
+ jr .okay
+
+.player_side
+ ld a, -2
+.okay
ld [hl], a
ret
-Functionc8865: ; c8865 (32:4865)
- call Functionc8f0a
+.three
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8869: ; c8869 (32:4869)
- ld hl, $3
+Tackle_BGEffect25_2d_one:
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
- cp $f8
- jr z, .asm_c8876
- cp $8
- jr nz, .asm_c8879
-.asm_c8876
- call Functionc80e5
-.asm_c8879
+ cp -8
+ jr z, .reached_limit
+ cp 8
+ jr nz, .finish
+.reached_limit
+ call BattleBGEffects_IncrementJumptable
+.finish
call Functionc88a5
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
add [hl]
ld [hl], a
ret
-Functionc8888: ; c8888 (32:4888)
- ld hl, $3
+Tackle_BGEffect25_2d_two:
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
and a
jr nz, .asm_c8893
- call Functionc80e5
+ call BattleBGEffects_IncrementJumptable
.asm_c8893
call Functionc88a5
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
xor $ff
inc a
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
add [hl]
ld [hl], a
@@ -1516,386 +1540,381 @@ Functionc88a5: ; c88a5 (32:48a5)
push af
ld a, [FXAnimIDHi] ; FXAnimIDHi
or a
- jr nz, .asm_c88b3
+ jr nz, .not_rollout
ld a, [FXAnimIDLo] ; FXAnimID
cp ROLLOUT
- jr z, .asm_c88b7
-.asm_c88b3
+ jr z, .rollout
+.not_rollout
pop af
jp Functionc900b
-.asm_c88b7
- ld a, [hLCDStatCustom + 1]
+
+.rollout
+ ld a, [hFFC7]
ld d, a
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
sub d
ld d, a
ld h, LYOverridesBackup / $100
ld a, [hSCY]
or a
- jr nz, .asm_c88d0
- ld a, [hLCDStatCustom + 1]
+ jr nz, .skip1
+ ld a, [hFFC7]
or a
- jr z, .asm_c88d6
+ jr z, .skip2
dec a
ld l, a
ld [hl], $0
- jr .asm_c88d6
-.asm_c88d0
- ld a, [hLCDStatCustom + 2]
+ jr .skip2
+
+.skip1
+ ld a, [hFFC8]
dec a
ld l, a
ld [hl], $0
-.asm_c88d6
+.skip2
ld a, [hSCY]
ld l, a
- ld a, [hLCDStatCustom + 1]
+ ld a, [hFFC7]
sub l
- jr nc, .asm_c88e0
+ jr nc, .skip3
xor a
dec d
-.asm_c88e0
+.skip3
ld l, a
pop af
-.asm_c88e2
+.loop
ld [hli], a
dec d
- jr nz, .asm_c88e2
+ jr nz, .loop
ret
-Functionc88e7: ; c88e7 (32:48e7)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_2d: ; c88e7 (32:48e7)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw BGEffect2d_2f_zero
+ dw Tackle_BGEffect25_2d_one
+ dw Tackle_BGEffect25_2d_two
+ dw .three
-Jumptable_c88ea: ; c88ea (32:48ea)
- dw Functionc88f6
- dw Functionc8869
- dw Functionc8888
- dw Functionc88f2
-
-Functionc88f2: ; c88f2 (32:48f2)
- call Functionc8f0a
+.three
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc88f6: ; c88f6 (32:48f6)
- call Functionc80e5
- call Functionc8eca
+BGEffect2d_2f_zero:
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $3
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_03
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
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn
+ ld a, -2
+ jr .okay
+
+.player_turn
+ ld a, 2
+.okay
ld [hl], a
ret
-Functionc8919: ; c8919 (32:4919)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c891c: ; c891c (32:491c)
- dw Functionc88f6
- dw Functionc8869
- dw Functionc8929
- dw Functionc8888
- dw Functionc8926
-
-
-Functionc8926: ; c8926 (32:4926)
- call Functionc8f0a
+BattleBGEffect_2f: ; c8919 (32:4919)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw BGEffect2d_2f_zero
+ dw Tackle_BGEffect25_2d_one
+ dw .two
+ dw Tackle_BGEffect25_2d_two
+ dw .four
-Functionc8929: ; c8929 (32:4929)
+.four
+ call BattleAnim_ResetLCDStatCustom
+.two
ret
-Functionc892a: ; c892a (32:492a)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_26: ; c892a (32:492a)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Jumptable_c892d: ; c892d (32:492d)
- dw Functionc8933
- dw Functionc894a
- dw Functionc8960
-
-Functionc8933: ; c8933 (32:4933)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $3
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $0
ret
-Functionc894a: ; c894a (32:494a)
- ld hl, $3
+.one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
ld d, $8
- call Functionc905d
+ call BattleBGEffects_Sine
call Functionc900b
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
add $4
ld [hl], a
ret
-Functionc8960: ; c8960 (32:4960)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8964: ; c8964 (32:4964)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8967: ; c8967 (32:4967)
- dw Functionc896d
- dw Functionc8985
- dw Functionc89b1
+BattleBGEffect_2c: ; c8964 (32:4964)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc896d: ; c896d (32:496d)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
+ ld [hFFC8], a
xor a
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hli], a
ld [hl], a
ret
-Functionc8985: ; c8985 (32:4985)
- ld hl, $3
+.one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
ld d, $6
- call Functionc905d
+ call BattleBGEffects_Sine
push af
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
ld d, $2
- call Functionc905d
+ call BattleBGEffects_Sine
ld e, a
pop af
add e
call Functionc900b
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
add $8
ld [hl], a
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
add $2
ld [hl], a
ret
-Functionc89b1: ; c89b1 (32:49b1)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc89b5: ; c89b5 (32:49b5)
- call Functionc80d7 ; ; ; call does not return
+BattleBGEffect_28: ; c89b5 (32:49b5)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Jumptable_c89b8: ; c89b8 (32:49b8)
- dw Functionc89be
- dw Functionc89ca
- dw Functionc89da
-
-Functionc89be: ; c89be (32:49be)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
+ call BattleBGEffect_SetLCDStatCustoms1
ret
-Functionc89ca: ; c89ca (32:49ca)
- ld hl, $3
+.one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
cp $20
ret nc
inc [hl]
ld d, a
- ld e, $4
+ ld e, 4
call Functionc8f2e
ret
-Functionc89da: ; c89da (32:49da)
- ld hl, $3
+.two
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c89ea
+ jr z, .reset
dec [hl]
ld d, a
- ld e, $4
+ ld e, 4
call Functionc8f2e
ret
-.asm_c89ea
- call Functionc8f0a
- ret
-Functionc89ee: ; c89ee (32:49ee)
- call Functionc80d7 ; ; ; call does not return
+.reset
+ call BattleAnim_ResetLCDStatCustom
+ ret
-Jumptable_c89f1: ; c89f1 (32:49f1)
- dw Functionc89f7
- dw Functionc8a14
- dw Functionc8a36
+BattleBGEffect_BounceDown: ; c89ee (32:49ee)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc89f7: ; c89f7 (32:49f7)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $42
- call Functionc8ef4
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms2
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $2
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hl], $1
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $20
ret
-Functionc8a14: ; c8a14 (32:4a14)
- ld hl, $2
+.one
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
cp $38
ret nc
push af
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
ld d, $10
- call Functionc9066
+ call BattleBGEffects_Cosine
add $10
ld d, a
pop af
add d
call Functionc901b
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
-rept 2
inc [hl]
-endr
+ inc [hl]
ret
-Functionc8a36: ; c8a36 (32:4a36)
- call Functionc8f0a
+.two
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8a3a: ; c8a3a (32:4a3a)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8a3d: ; c8a3d (32:4a3d)
- dw Functionc8a49
- dw Functionc8a6f
- dw Functionc8a70
- dw Functionc8a88
- dw Functionc8a6f
- dw Functionc8aac
-
+BattleBGEffect_2a: ; c8a3a (32:4a3a)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
-Functionc8a49: ; c8a49 (32:4a49)
- call Functionc80e5
+.zero
+ call BattleBGEffects_IncrementJumptable
ld a, $e4
- call Functionc8ecb
+ call BattleBGEffects_SetLYOverrides
ld a, $47
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld a, [hLCDStatCustom + 1]
+ ld [hFFC8], a
+ ld a, [hFFC7]
ld l, a
ld h, $d2
-.asm_c8a60
- ld a, [hLCDStatCustom + 2]
+.loop
+ ld a, [hFFC8]
cp l
- jr z, .asm_c8a69
+ jr z, .done
xor a
ld [hli], a
- jr .asm_c8a60
-.asm_c8a69
- ld hl, $3
+ jr .loop
+
+.done
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $0
-
-Functionc8a6f: ; c8a6f (32:4a6f)
+.one
+.four
ret
-Functionc8a70: ; c8a70 (32:4a70)
- call Functionc8ab0
- jr nc, .asm_c8a79
- call Functionc8a9a
+.two
+ call .GetLYOverride
+ jr nc, .next
+ call .SetLYOverridesBackup
ret
-.asm_c8a79
- ld hl, $3
+
+.next
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $0
- ld a, [hLCDStatCustom + 1]
+ ld a, [hFFC7]
inc a
- ld [hLCDStatCustom + 1], a
- call Functionc80e5
+ ld [hFFC7], a
+ call BattleBGEffects_IncrementJumptable
ret
-Functionc8a88: ; c8a88 (32:4a88)
- call Functionc8ab0
- jr nc, .asm_c8a96
- call Functionc8a9a
- ld a, [hLCDStatCustom + 2]
+.three
+ call .GetLYOverride
+ jr nc, .finish
+ call .SetLYOverridesBackup
+ ld a, [hFFC8]
dec a
ld l, a
ld [hl], e
ret
-.asm_c8a96
- call Functionc80e5
+
+.finish
+ call BattleBGEffects_IncrementJumptable
ret
-Functionc8a9a: ; c8a9a (32:4a9a)
+.SetLYOverridesBackup
ld e, a
- ld a, [hLCDStatCustom + 1]
+ ld a, [hFFC7]
ld l, a
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
sub l
srl a
- ld h, $d2
-.asm_c8aa5
+ ld h, LYOverridesBackup / $100
+.loop2
ld [hl], e
-rept 2
inc hl
-endr
+ inc hl
dec a
- jr nz, .asm_c8aa5
+ jr nz, .loop2
ret
-Functionc8aac: ; c8aac (32:4aac)
- call Functionc8f19
+.five
+ call BattleBGEffects_ResetVideoHRAM
ret
-Functionc8ab0: ; c8ab0 (32:4ab0)
- ld hl, $3
+.GetLYOverride
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
inc [hl]
@@ -1904,41 +1923,40 @@ Functionc8ab0: ; c8ab0 (32:4ab0)
srl a
ld e, a
ld d, 0
- ld hl, Unknown_c8ac7
+ ld hl, .data
add hl, de
ld a, [hl]
cp $ff
ret
-; c8ac7 (32:4ac7)
-Unknown_c8ac7:
- db $00, $40, $90, $e4, $ff
+.data
+ db $00, $40, $90, $e4
+ db -1
; c8acc
-Functionc8acc: ; c8acc (32:4acc)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8acf: ; c8acf (32:4acf)
- dw Functionc8ad3
- dw Functionc8ae5
+BattleBGEffect_2b: ; c8acc (32:4acc)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
-Functionc8ad3: ; c8ad3 (32:4ad3)
- call Functionc80e5
- call Functionc8eca
+.zero
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
- ld hl, $2
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hl], $40
ret
-Functionc8ae5: ; c8ae5 (32:4ae5)
- ld hl, $2
+.one
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c8afc
+ jr z, .done
dec [hl]
srl a
srl a
@@ -1948,36 +1966,36 @@ Functionc8ae5: ; c8ae5 (32:4ae5)
ld e, a
call Functionc8f2e
ret
-.asm_c8afc
- call Functionc8f0a
+
+.done
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8b00: ; c8b00 (32:4b00)
+BattleBGEffect_1c: ; c8b00 (32:4b00)
ld a, [hCGB]
and a
- jr nz, asm_c8b7a
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8b08: ; c8b08 (32:4b08)
- dw Functionc8b0e
- dw Functionc8b22
- dw Functionc8b60
+ jr nz, .cgb
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc8b0e: ; c8b0e (32:4b0e)
- call Functionc80e5
+.zero
+ call BattleBGEffects_IncrementJumptable
ld a, $e4
- call Functionc8ecb
+ call BattleBGEffects_SetLYOverrides
ld a, $47
- ld [hLCDStatCustom], a
+ ld [hFFC6], a
xor a
- ld [hLCDStatCustom + 1], a
+ ld [hFFC7], a
ld a, $60
- ld [hLCDStatCustom + 2], a
+ ld [hFFC8], a
ret
-Functionc8b22: ; c8b22 (32:4b22)
- ld hl, $3
+.one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
inc [hl]
@@ -1992,72 +2010,70 @@ Functionc8b22: ; c8b22 (32:4b22)
ld e, a
ld d, $0
push bc
- call Functionc9038
- jr nz, .asm_c8b4d
- ld hl, Unknown_c8bd8
+ call BGEffect_CheckBattleTurn
+ jr nz, .player
+ ld hl, .CGB_DMGEnemyData
add hl, de
ld a, [hli]
- ld [wcfc9], a
+ ld [wOBP1], a
ld d, a
ld e, [hl]
- ld bc, $2f30
- jr .asm_c8b5b
-.asm_c8b4d
- ld hl, Unknown_c8be0
+ lb bc, $2f, $30
+ jr .okay
+
+.player
+ ld hl, .DMG_PlayerData
add hl, de
ld d, [hl]
inc hl
ld a, [hl]
- ld [wcfc9], a
+ ld [wOBP1], a
ld e, a
- ld bc, $3728
-.asm_c8b5b
- call Functionc8b6c
+ lb bc, $37, $28
+.okay
+ call .DMG_LYOverrideLoads
pop bc
ret
-Functionc8b60: ; c8b60 (32:4b60)
- call Functionc8f19
+.two
+ call BattleBGEffects_ResetVideoHRAM
ld a, $e4
- ld [wcfc7], a
- ld [wcfc9], a
+ ld [wBGP], a
+ ld [wOBP1], a
ret
-Functionc8b6c: ; c8b6c (32:4b6c)
+.DMG_LYOverrideLoads
ld hl, LYOverridesBackup
-.asm_c8b6f
+.loop1
ld [hl], d
inc hl
dec b
- jr nz, .asm_c8b6f
-.asm_c8b74
+ jr nz, .loop1
+.loop2
ld [hl], e
inc hl
dec c
- jr nz, .asm_c8b74
+ jr nz, .loop2
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
+.cgb
+ ld de, .Jumptable
+ call BatttleBGEffects_GetNamedJumptablePointer
+ jp [hl]
-Functionc8b87: ; c8b87
- call Functionc80e5
- ld hl, $0003
+.Jumptable
+ dw .cgb_zero
+ dw .cgb_one
+ dw .cgb_two
+.cgb_zero
+ call BattleBGEffects_IncrementJumptable
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $0
ret
-; c8b91
-Functionc8b91: ; c8b91
- ld hl, $0003
+.cgb_one
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
inc [hl]
@@ -2071,177 +2087,163 @@ Functionc8b91: ; c8b91
sla a
ld e, a
ld d, 0
- call Functionc9038
- jr nz, .asm_c8bbb
- ld hl, Unknown_c8bd8
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_2
+ ld hl, .CGB_DMGEnemyData
add hl, de
ld a, [hli]
push hl
- call Functionc8e7f
+ call BGEffects_LoadBGPal1_OBPal0
pop hl
ld a, [hl]
- call Functionc8e52
+ call BGEffects_LoadBGPal0_OBPal1
ret
-.asm_c8bbb
- ld hl, Unknown_c8bd8
+.player_2
+ ld hl, .CGB_DMGEnemyData
add hl, de
ld a, [hli]
push hl
- call Functionc8e52
+ call BGEffects_LoadBGPal0_OBPal1
pop hl
ld a, [hl]
- call Functionc8e7f
+ call BGEffects_LoadBGPal1_OBPal0
ret
-; c8bca
-Functionc8bca: ; c8bca
+.cgb_two
ld a, $e4
- call Functionc8e52
+ call BGEffects_LoadBGPal0_OBPal1
ld a, $e4
- call Functionc8e7f
+ call BGEffects_LoadBGPal1_OBPal0
call EndBattleBGEffect
ret
-; c8bd8
-Unknown_c8bd8: ; c8bd8
+.CGB_DMGEnemyData
db $e4, $e4
db $f8, $90
db $fc, $40
db $f8, $90
-; c8be0
-
-Unknown_c8be0: ; c8be0
+.DMG_PlayerData
db $e4, $e4
db $90, $f8
db $40, $fc
db $90, $f8
; c8be8
-Functionc8be8: ; c8be8 (32:4be8)
- ld de, Unknown_c8bef
- call Functionc8d77
+BattleBGEffect_RapidFlash: ; c8be8 (32:4be8)
+ ld de, .FlashPals
+ call BGEffect_RapidCyclePals
ret
-; c8bef (32:4bef)
-Unknown_c8bef: ; c8bef
+.FlashPals
db $e4, $6c, $fe
; c8bf2
-Functionc8bf2: ; c8bf2 (32:4bf2)
- ld de, Unknown_c8bf9
- call Functionc8d77
+BattleBGEffect_16: ; c8bf2 (32:4bf2)
+ ld de, .Pals
+ call BGEffect_RapidCyclePals
ret
-; c8bf9 (32:4bf9)
-Unknown_c8bf9: ; c8bf9
+.Pals
db $e4, $90, $40, $ff
; c8bfd
-Functionc8bfd: ; c8bfd (32:4bfd)
- ld de, Unknown_c8c04
- call Functionc8d77
+BattleBGEffect_17: ; c8bfd (32:4bfd)
+ ld de, .Pals
+ call BGEffect_RapidCyclePals
ret
-; c8c04 (32:4c04)
-Unknown_c8c04: ; c8c04
+.Pals
db $e4, $f8, $fc, $ff
; c8c08
-Functionc8c08: ; c8c08 (32:4c08)
- ld de, Unknown_c8c0f
- call Functionc8d77
+BattleBGEffect_18: ; c8c08 (32:4c08)
+ ld de, .Pals
+ call BGEffect_RapidCyclePals
ret
-; c8c0f (32:4c0f)
-Unknown_c8c0f: ; c8c0f
+.Pals
db $e4, $90, $40, $90, $fe
; c8c14
-Functionc8c14: ; c8c14 (32:4c14)
- ld de, Unknown_c8c1b
- call Functionc8d77
+BattleBGEffect_19: ; c8c14 (32:4c14)
+ ld de, .Pals
+ call BGEffect_RapidCyclePals
ret
-; c8c1b (32:4c1b)
-Unknown_c8c1b: ; c8c1b
+.Pals
db $e4, $f8, $fc, $f8, $fe
; c8c20
-Functionc8c20: ; c8c20 (32:4c20)
- ld de, Unknown_c8c27
- call Functionc8d77
+BattleBGEffect_1a: ; c8c20 (32:4c20)
+ ld de, .Pals
+ call BGEffect_RapidCyclePals
ret
-; c8c27 (32:4c27)
-Unknown_c8c27: ; c8c27
+.Pals
db $e4, $f8, $fc, $f8, $e4, $90, $40, $90, $fe
; c8c30
-Functionc8c30: ; c8c30 (32:4c30)
- ld de, Unknown_c8c37
- call Functionc8d77
+BattleBGEffect_1b: ; c8c30 (32:4c30)
+ ld de, .Pals
+ call BGEffect_RapidCyclePals
ret
-; c8c37 (32:4c37)
-Unknown_c8c37:
+.Pals
db $e4, $fc, $e4, $00, $fe
; c8c3c
-Functionc8c3c: ; c8c3c (32:4c3c)
- ld de, Unknown_c8c43
- call Functionc8d77
+BattleBGEffect_1d: ; c8c3c (32:4c3c)
+ ld de, .Pals
+ call BGEffect_RapidCyclePals
ret
-; c8c43 (32:4c43)
-Unknown_c8c43:
+.Pals
db $e4, $90, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $90, $e4, $ff
; c8c55
-Functionc8c55: ; c8c55 (32:4c55)
- ld de, Unknown_c8c5c
- call Functionc8d77
+BattleBGEffect_1e: ; c8c55 (32:4c55)
+ ld de, .Pals
+ call BGEffect_RapidCyclePals
ret
-; c8c5c (32:4c5c)
-Unknown_c8c5c:
+.Pals
db $00, $40, $90, $e4, $ff
; c8c61
-Functionc8c61: ; c8c61 (32:4c61)
- call Functionc80d7 ; ; ; call does not return
-
-Jumptable_c8c64: ; c8c64 (32:4c64)
- dw Functionc8c68
- dw Functionc8c85
+BattleBGEffect_VibrateMon: ; c8c61 (32:4c61)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
-Functionc8c68: ; c8c68 (32:4c68)
- call Functionc80e5
- call Functionc8eca
+.zero: ; c8c68 (32:4c68)
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $2
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hl], $1
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $20
ret
-Functionc8c85: ; c8c85 (32:4c85)
- ld hl, $3
+.one: ; c8c85 (32:4c85)
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c8c9e
+ jr z, .finish
dec [hl]
and $1
ret nz
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
xor $ff
@@ -2249,114 +2251,116 @@ Functionc8c85: ; c8c85 (32:4c85)
ld [hl], a
call Functionc900b
ret
-.asm_c8c9e
- call Functionc8f0a
- ret
-Functionc8ca2: ; c8ca2 (32:4ca2)
- call Functionc80d7 ; ; ; call does not return
+.finish
+ call BattleAnim_ResetLCDStatCustom
+ ret
-Jumptable_c8ca5: ; c8ca5 (32:4ca5)
- dw Functionc8cab
- dw Functionc8cc3
- dw Functionc8cdd
+BattleBGEffect_WobbleMon: ; c8ca2 (32:4ca2)
+ call BattleBGEffects_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
-Functionc8cab: ; c8cab (32:4cab)
- call Functionc80e5
- call Functionc8eca
+.zero: ; c8cab (32:4cab)
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_ClearLYOverrides
ld a, $43
- ld [hLCDStatCustom], a
+ ld [hFFC6], a
xor a
- ld [hLCDStatCustom + 1], a
+ ld [hFFC7], a
ld a, $37
- ld [hLCDStatCustom + 2], a
- ld hl, $3
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $0
ret
-Functionc8cc3: ; c8cc3 (32:4cc3)
- ld hl, $3
+.one: ; c8cc3 (32:4cc3)
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
cp $40
- jr nc, Functionc8cdd
+ jr nc, .two
ld d, $6
- call Functionc905d
+ call BattleBGEffects_Sine
call Functionc900b
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
add $2
ld [hl], a
ret
-Functionc8cdd: ; c8cdd (32:4cdd)
- call Functionc8f0a
+.two: ; c8cdd (32:4cdd)
+ call BattleAnim_ResetLCDStatCustom
ret
-Functionc8ce1: ; c8ce1 (32:4ce1)
+BattleBGEffect_2e: ; c8ce1 (32:4ce1)
call Functionc8d0b
- jr c, .asm_c8cea
+ jr c, .xor_a
bit 7, a
- jr z, .asm_c8ceb
-.asm_c8cea
+ jr z, .okay
+.xor_a
xor a
-.asm_c8ceb
+.okay
push af
call DelayFrame
pop af
ld [hSCY], a
xor $ff
inc a
- ld [OTPartyMon3SpclAtk], a
+ ld [AnimObject01_YOffset], a
ret
-Functionc8cf9: ; c8cf9 (32:4cf9)
+BattleBGEffect_1f: ; c8cf9 (32:4cf9)
call Functionc8d0b
- jr nc, .asm_c8cff
+ jr nc, .skip
xor a
-.asm_c8cff
+.skip
ld [hSCX], a
ret
-Functionc8d02: ; c8d02 (32:4d02)
+BattleBGEffect_20: ; c8d02 (32:4d02)
call Functionc8d0b
- jr nc, .asm_c8d08
+ jr nc, .skip
xor a
-.asm_c8d08
+.skip
ld [hSCY], a
ret
Functionc8d0b: ; c8d0b (32:4d0b)
- ld hl, $1
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld a, [hl]
and a
- jr nz, .asm_c8d18
+ jr nz, .okay
call EndBattleBGEffect
scf
ret
-.asm_c8d18
+
+.okay
dec [hl]
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
and $f
- jr z, .asm_c8d2a
+ jr z, .every_16_frames
dec [hl]
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
and a
ret
-.asm_c8d2a
+
+.every_16_frames
ld a, [hl]
swap a
or [hl]
ld [hl], a
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
xor $ff
@@ -2365,203 +2369,210 @@ Functionc8d0b: ; c8d0b (32:4d0b)
and a
ret
-Functionc8d3a: ; c8d3a (32:4d3a)
- ld hl, $3
+BattleBGEffect_35: ; c8d3a (32:4d3a)
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
cp $40
- jr nc, .asm_c8d53
+ jr nc, .finish
ld d, $6
- call Functionc905d
+ call BattleBGEffects_Sine
ld [hSCX], a
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
add $2
ld [hl], a
ret
-.asm_c8d53
+
+.finish
xor a
ld [hSCX], a
ret
-Functionc8d57: ; c8d57 (32:4d57)
- ld hl, $1
+BattleBGEffect_GetNthDMGPal: ; c8d57 (32:4d57)
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld a, [hl]
and a
- jr z, .asm_c8d69
-
+ jr z, .zero
dec [hl]
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
- call Functionc8eb2
+ call BattleBGEffect_GetNextDMGPal
ret
-.asm_c8d69
- ld hl, $2
+.zero
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
- ld hl, $1
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
ld [hl], a
- call Functionc8eac
+ call BattleBGEffect_GetFirstDMGPal
ret
-Functionc8d77: ; c8d77 (32:4d77)
+BGEffect_RapidCyclePals: ; c8d77 (32:4d77)
ld a, [hCGB]
and a
- jr nz, asm_c8dd4
+ jr nz, .cgb
push de
- ld de, Jumptable_c8d85
- call Functionc80ca
+ ld de, .Jumptable_DMG
+ call BatttleBGEffects_GetNamedJumptablePointer
pop de
jp [hl]
-Jumptable_c8d85: ; c8d85 (32:4d85)
- dw Functionc8d8b
- dw Functionc8daa
- dw Functionc8dc9
+.Jumptable_DMG
+ dw .zero_dmg
+ dw .one_dmg
+ dw .two_dmg
-Functionc8d8b: ; c8d8b (32:4d8b)
- call Functionc80e5
+.zero_dmg: ; c8d8b (32:4d8b)
+ call BattleBGEffects_IncrementJumptable
ld a, $e4
- call Functionc8ecb
+ call BattleBGEffects_SetLYOverrides
ld a, $47
- call Functionc8ede
- ld a, [hLCDStatCustom + 2]
+ call BattleBGEffect_SetLCDStatCustoms1
+ ld a, [hFFC8]
inc a
- ld [hLCDStatCustom + 2], a
- ld hl, $3
+ ld [hFFC8], a
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
ld [hl], $0
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hl], a
ret
-Functionc8daa: ; c8daa (32:4daa)
- ld hl, $2
+.one_dmg: ; c8daa (32:4daa)
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
and $f
- jr z, .asm_c8db5
+ jr z, .okay_1_dmg
dec [hl]
ret
-.asm_c8db5
+
+.okay_1_dmg
ld a, [hl]
swap a
or [hl]
ld [hl], a
- call Functionc8eac
- jr c, .asm_c8dc3
+ call BattleBGEffect_GetFirstDMGPal
+ jr c, .okay_2_dmg
call Functionc900b
ret
-.asm_c8dc3
- ld hl, $3
+
+.okay_2_dmg
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
dec [hl]
ret
-Functionc8dc9: ; c8dc9 (32:4dc9)
- call Functionc8f19
- ld a, $e4
+.two_dmg: ; c8dc9 (32:4dc9)
+ call BattleBGEffects_ResetVideoHRAM
+ ld a, %11100100
ld [rBGP], a
call EndBattleBGEffect
ret
-asm_c8dd4: ; c8dd4 (32:4dd4)
+
+.cgb
push de
- ld de, Jumptable_c8ddd
- call Functionc80ca
+ ld de, .Jumptable_CGB
+ call BatttleBGEffects_GetNamedJumptablePointer
pop de
jp [hl]
-Jumptable_c8ddd: ; c8ddd (32:4ddd)
- dw Functionc8de7
- dw Functionc8e02
- dw Functionc8e21
- dw Functionc8e2a
- dw Functionc8e49
+.Jumptable_CGB: ; c8ddd (32:4ddd)
+ dw .zero_cgb
+ dw .one_cgb
+ dw .two_cgb
+ dw .three_cgb
+ dw .four_cgb
-Functionc8de7: ; c8de7 (32:4de7)
- call Functionc9038
- jr nz, .asm_c8df2
- call Functionc80e5
- call Functionc80e5
-.asm_c8df2
- call Functionc80e5
- ld hl, $3
+.zero_cgb: ; c8de7 (32:4de7)
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn_cgb
+ call BattleBGEffects_IncrementJumptable
+ call BattleBGEffects_IncrementJumptable
+.player_turn_cgb
+ call BattleBGEffects_IncrementJumptable
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
ld [hl], $0
- ld hl, $2
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld [hl], a
ret
-Functionc8e02: ; c8e02 (32:4e02)
- ld hl, $2
+.one_cgb: ; c8e02 (32:4e02)
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
and $f
- jr z, .asm_c8e0d
+ jr z, .okay_1_cgb
dec [hl]
ret
-.asm_c8e0d
+
+.okay_1_cgb
ld a, [hl]
swap a
or [hl]
ld [hl], a
- call Functionc8eac
- jr c, .asm_c8e1b
- call Functionc8e52
+ call BattleBGEffect_GetFirstDMGPal
+ jr c, .okay_2_cgb
+ call BGEffects_LoadBGPal0_OBPal1
ret
-.asm_c8e1b
- ld hl, $3
+
+.okay_2_cgb
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
dec [hl]
ret
-Functionc8e21: ; c8e21 (32:4e21)
+.two_cgb: ; c8e21 (32:4e21)
ld a, $e4
- call Functionc8e52
+ call BGEffects_LoadBGPal0_OBPal1
call EndBattleBGEffect
ret
-Functionc8e2a: ; c8e2a (32:4e2a)
- ld hl, $2
+.three_cgb: ; c8e2a (32:4e2a)
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hl]
and $f
- jr z, .asm_c8e35
+ jr z, .okay_3_cgb
dec [hl]
ret
-.asm_c8e35
+
+.okay_3_cgb
ld a, [hl]
swap a
or [hl]
ld [hl], a
- call Functionc8eac
- jr c, .asm_c8e43
- call Functionc8e7f
+ call BattleBGEffect_GetFirstDMGPal
+ jr c, .okay_4_cgb
+ call BGEffects_LoadBGPal1_OBPal0
ret
-.asm_c8e43
- ld hl, $3
+
+.okay_4_cgb
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
dec [hl]
ret
-Functionc8e49: ; c8e49 (32:4e49)
+.four_cgb: ; c8e49 (32:4e49)
ld a, $e4
- call Functionc8e7f
+ call BGEffects_LoadBGPal1_OBPal0
call EndBattleBGEffect
ret
-Functionc8e52: ; c8e52 (32:4e52)
+BGEffects_LoadBGPal0_OBPal1: ; c8e52 (32:4e52)
ld h, a
ld a, [rSVBK]
push af
@@ -2588,7 +2599,7 @@ Functionc8e52: ; c8e52 (32:4e52)
ld [hCGBPalUpdate], a
ret
-Functionc8e7f: ; c8e7f (32:4e7f)
+BGEffects_LoadBGPal1_OBPal0: ; c8e7f (32:4e7f)
ld h, a
ld a, [rSVBK]
push af
@@ -2615,256 +2626,258 @@ Functionc8e7f: ; c8e7f (32:4e7f)
ld [hCGBPalUpdate], a
ret
-Functionc8eac: ; c8eac (32:4eac)
- ld hl, $3
+BattleBGEffect_GetFirstDMGPal: ; c8eac (32:4eac)
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld a, [hl]
inc [hl]
-
-Functionc8eb2: ; c8eb2 (32:4eb2)
+BattleBGEffect_GetNextDMGPal: ; 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
+ cp -1
+ jr z, .quit
+ cp -2
+ jr nz, .repeat
ld a, [de]
- ld hl, $3
+ ld hl, BG_EFFECT_STRUCT_03
add hl, bc
ld [hl], $0
-.asm_c8ec6
+.repeat
and a
ret
-.asm_c8ec8
+
+.quit
scf
ret
-Functionc8eca: ; c8eca (32:4eca)
+BattleBGEffects_ClearLYOverrides: ; c8eca (32:4eca)
xor a
-
-Functionc8ecb: ; c8ecb (32:4ecb)
+BattleBGEffects_SetLYOverrides: ; c8ecb (32:4ecb)
ld hl, LYOverrides ; wd100
ld e, $99
-.asm_c8ed0
+.loop1
ld [hli], a
dec e
- jr nz, .asm_c8ed0
+ jr nz, .loop1
ld hl, LYOverridesBackup
ld e, $91
-.asm_c8ed9
+.loop2
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
+ jr nz, .loop2
+ ret
+
+BattleBGEffect_SetLCDStatCustoms1: ; c8ede (32:4ede)
+ ld [hFFC6], a
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn
+ lb de, $00, $36
+ jr .okay
+
+.player_turn
+ lb de, $2f, $5e
+.okay
ld a, d
- ld [hLCDStatCustom + 1], a
+ ld [hFFC7], 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 [hFFC8], a
+ ret
+
+BattleBGEffect_SetLCDStatCustoms2: ; c8ef4 (32:4ef4)
+ ld [hFFC6], a
+ call BGEffect_CheckBattleTurn
+ jr nz, .player_turn
+ lb de, $00, $36
+ jr .okay
+
+.player_turn
+ lb de, $2d, $5e
+.okay
ld a, d
- ld [hLCDStatCustom + 1], a
+ ld [hFFC7], a
ld a, e
- ld [hLCDStatCustom + 2], a
+ ld [hFFC8], a
ret
-Functionc8f0a: ; c8f0a (32:4f0a)
+BattleAnim_ResetLCDStatCustom: ; c8f0a (32:4f0a)
xor a
- ld [hLCDStatCustom + 1], a
- ld [hLCDStatCustom + 2], a
- call Functionc8eca
+ ld [hFFC7], a
+ ld [hFFC8], a
+ call BattleBGEffects_ClearLYOverrides
xor a
- ld [hLCDStatCustom], a
+ ld [hFFC6], a
call EndBattleBGEffect
ret
-Functionc8f19: ; c8f19 (32:4f19)
+BattleBGEffects_ResetVideoHRAM: ; c8f19 (32:4f19)
xor a
- ld [hLCDStatCustom], a
- ld a, $e4
+ ld [hFFC6], a
+ ld a, %11100100
ld [rBGP], a
- ld [wcfc7], a
- ld [wcfc9], a
- ld [hLCDStatCustom + 1], a
- ld [hLCDStatCustom + 2], a
- call Functionc8eca
+ ld [wBGP], a
+ ld [wOBP1], a
+ ld [hFFC7], a
+ ld [hFFC8], a
+ call BattleBGEffects_ClearLYOverrides
ret
Functionc8f2e: ; c8f2e (32:4f2e)
push bc
xor a
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
ld a, e
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], a
ld a, d
- ld [BattleAnimTemps + 2], a
+ ld [wBattleAnimTemp2], a
ld a, $80
- ld [BattleAnimTemps + 3], a
+ ld [wBattleAnimTemp3], a
ld bc, LYOverridesBackup
-.asm_c8f43
- ld a, [hLCDStatCustom + 1]
+.loop
+ ld a, [hFFC7]
cp c
- jr nc, .asm_c8f58
- ld a, [hLCDStatCustom + 2]
+ jr nc, .next
+ ld a, [hFFC8]
cp c
- jr c, .asm_c8f58
- ld a, [BattleAnimTemps + 2]
+ jr c, .next
+ ld a, [wBattleAnimTemp2]
ld d, a
- ld a, [BattleAnimTemps]
- call Functionc905d
+ ld a, [wBattleAnimTemp0]
+ call BattleBGEffects_Sine
ld [bc], a
-.asm_c8f58
+.next
inc bc
- ld a, [BattleAnimTemps + 1]
- ld hl, BattleAnimTemps
+ ld a, [wBattleAnimTemp1]
+ ld hl, wBattleAnimTemp0
add [hl]
ld [hl], a
- ld hl, BattleAnimTemps + 3
+ ld hl, wBattleAnimTemp3
dec [hl]
- jr nz, .asm_c8f43
+ jr nz, .loop
pop bc
ret
-Functionc8f69: ; c8f69 (32:4f69)
+InitSurfWaves: ; c8f69 (32:4f69)
push bc
xor a
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
ld a, e
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], a
ld a, d
- ld [BattleAnimTemps + 2], a
+ ld [wBattleAnimTemp2], a
ld a, $40
- ld [BattleAnimTemps + 3], a
- ld bc, w5_d422
-.asm_c8f7e
- ld a, [BattleAnimTemps + 2]
+ ld [wBattleAnimTemp3], a
+ ld bc, wSurfWaveBGEffect
+.loop
+ ld a, [wBattleAnimTemp2]
ld d, a
- ld a, [BattleAnimTemps]
- call Functionc905d
+ ld a, [wBattleAnimTemp0]
+ call BattleBGEffects_Sine
ld [bc], a
inc bc
- ld a, [BattleAnimTemps + 1]
- ld hl, BattleAnimTemps
+ ld a, [wBattleAnimTemp1]
+ ld hl, wBattleAnimTemp0
add [hl]
ld [hl], a
- ld hl, BattleAnimTemps + 3
+ ld hl, wBattleAnimTemp3
dec [hl]
- jr nz, .asm_c8f7e
+ jr nz, .loop
pop bc
ret
Functionc8f9a: ; c8f9a (32:4f9a)
push bc
- ld [BattleAnimTemps + 3], a
+ ld [wBattleAnimTemp3], a
ld a, e
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], a
ld a, d
- ld [BattleAnimTemps + 2], a
- call Functionc8fe4
+ ld [wBattleAnimTemp2], a
+ call .GetLYOverrideBackupAddrOffset
ld hl, LYOverridesBackup
add hl, de
ld c, l
ld b, h
-.asm_c8faf
- ld a, [BattleAnimTemps + 3]
+.loop
+ ld a, [wBattleAnimTemp3]
and a
- jr z, .asm_c8fe1
+ jr z, .done
dec a
- ld [BattleAnimTemps + 3], a
+ ld [wBattleAnimTemp3], a
push af
- ld a, [BattleAnimTemps + 2]
+ ld a, [wBattleAnimTemp2]
ld d, a
- ld a, [BattleAnimTemps + 1]
+ ld a, [wBattleAnimTemp1]
push hl
- call Functionc905d
+ call BattleBGEffects_Sine
ld e, a
pop hl
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
cp c
- jr c, .asm_c8fcf
+ jr c, .skip1
ld a, e
ld [bc], a
inc bc
-.asm_c8fcf
- ld a, [hLCDStatCustom + 1]
+.skip1
+ ld a, [hFFC7]
cp l
- jr nc, .asm_c8fd6
+ jr nc, .skip2
ld [hl], e
dec hl
-.asm_c8fd6
- ld a, [BattleAnimTemps + 1]
+.skip2
+ ld a, [wBattleAnimTemp1]
add $4
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], a
pop af
- jr .asm_c8faf
-.asm_c8fe1
+ jr .loop
+
+.done
pop bc
and a
ret
-Functionc8fe4: ; c8fe4 (32:4fe4)
- ld a, [hLCDStatCustom + 1]
+.GetLYOverrideBackupAddrOffset
+ ld a, [hFFC7]
ld e, a
- ld a, [BattleAnimTemps]
+ ld a, [wBattleAnimTemp0]
add e
ld e, a
ld d, $0
ret
-Functionc8fef: ; c8fef (32:4fef)
+BattleBGEffect_WavyScreenFX: ; c8fef (32:4fef)
push bc
- ld a, [hLCDStatCustom + 1]
+ ld a, [hFFC7]
ld l, a
inc a
ld e, a
ld h, $d2
ld d, h
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
sub l
and a
- jr z, .asm_c9009
+ jr z, .done
ld c, a
ld a, [hl]
push af
-.asm_c9001
+.loop
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_c9001
+ jr nz, .loop
pop af
ld [hl], a
-.asm_c9009
+.done
pop bc
ret
Functionc900b: ; c900b (32:500b)
push af
ld h, $d2
- ld a, [hLCDStatCustom + 1]
+ ld a, [hFFC7]
ld l, a
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
sub l
ld d, a
pop af
@@ -2877,14 +2890,14 @@ Functionc900b: ; c900b (32:500b)
Functionc901b: ; c901b (32:501b)
push af
ld e, a
- ld a, [hLCDStatCustom + 1]
+ ld a, [hFFC7]
ld l, a
- ld a, [hLCDStatCustom + 2]
+ ld a, [hFFC8]
sub l
sub e
ld d, a
ld h, $d2
- ld a, [hLCDStatCustom + 1]
+ ld a, [hFFC7]
ld l, a
ld a, $90
.asm_c902c
@@ -2899,43 +2912,45 @@ Functionc901b: ; c901b (32:501b)
jr nz, .asm_c9033
ret
-Functionc9038: ; c9038 (32:5038)
- ld hl, $2
+BGEffect_CheckBattleTurn: ; c9038 (32:5038)
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hBattleTurn]
and $1
xor [hl]
ret
-Functionc9042: ; c9042 (32:5042)
- ld hl, $2
+BGEffect_CheckFlyDigStatus: ; c9042 (32:5042)
+ ld hl, BG_EFFECT_STRUCT_BATTLE_TURN
add hl, bc
ld a, [hBattleTurn]
and $1
xor [hl]
- jr nz, .asm_c9053
+ jr nz, .player
ld a, [EnemySubStatus3] ; EnemySubStatus3
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
ret
-.asm_c9053
+
+.player
ld a, [PlayerSubStatus3] ; PlayerSubStatus3
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
ret
-Functionc9059: ; c9059 (32:5059)
+BattleBGEffects_CheckSGB: ; c9059 (32:5059)
ld a, [hSGB]
and a
ret
-Functionc905d: ; c905d (32:505d)
+BattleBGEffects_Sine: ; c905d (32:505d)
ld e, a
- callab Functionce765
+ callab BattleAnim_Sine_e
ld a, e
ret
-Functionc9066: ; c9066 (32:5066)
+BattleBGEffects_Cosine: ; c9066 (32:5066)
ld e, a
- callab Functionce76b
+ callab BattleAnim_Cosine_e
ld a, e
ret
+
; c906f (32:506f)