summaryrefslogtreecommitdiff
path: root/battle
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2016-01-04 07:41:19 -0500
committeryenatch <yenatch@gmail.com>2016-01-04 07:41:19 -0500
commit0add51451cda9d4221af137f83e2429d3577310c (patch)
treefd05f8f0ad49d88b032dc9e10af85a42dfa0e402 /battle
parentda87d2a929b1d58175efe063833c124d8ba702c9 (diff)
parent2a263629a40e201b1702e2f4e65f1c61360cc2b2 (diff)
Merge pull request #330 from PikalaxALT/scriptmacrorenaming
Scriptmacrorenaming
Diffstat (limited to 'battle')
-rw-r--r--battle/ai/items.asm6
-rwxr-xr-xbattle/ai/move.asm222
-rwxr-xr-xbattle/ai/redundant.asm198
-rw-r--r--battle/anim_commands.asm436
-rw-r--r--battle/anim_objects.asm6479
-rw-r--r--battle/anims.asm4332
-rw-r--r--battle/bg_effects.asm2805
-rw-r--r--battle/core.asm609
-rw-r--r--battle/effect_commands.asm1196
-rwxr-xr-xbattle/menu.asm118
-rwxr-xr-xbattle/objects/data.asm573
-rwxr-xr-xbattle/objects/engine.asm314
-rwxr-xr-xbattle/objects/framesets.asm1270
-rwxr-xr-xbattle/objects/functions.asm4156
-rwxr-xr-xbattle/objects/gfx_headers.asm52
-rwxr-xr-xbattle/objects/helpers.asm130
-rwxr-xr-xbattle/objects/oam.asm1086
-rwxr-xr-xbattle/sliding_intro.asm8
-rwxr-xr-xbattle/trainer_huds.asm269
-rwxr-xr-xbattle/used_move_text.asm20
20 files changed, 13141 insertions, 11138 deletions
diff --git a/battle/ai/items.asm b/battle/ai/items.asm
index 7c11e70b2..2fb479590 100644
--- a/battle/ai/items.asm
+++ b/battle/ai/items.asm
@@ -20,7 +20,7 @@ AI_SwitchOrTryItem: ; 38000
and a
jr nz, DontSwitch
- ld hl, TrainerClassAttributes + 5
+ ld hl, TrainerClassAttributes + TRNATTR_AI_ITEM_SWITCH
ld a, [InBattleTowerBattle] ; Load always the first TrainerClass for BattleTower-Trainers
and a
jr nz, .ok
@@ -663,7 +663,7 @@ EnemyPotionFinish: ; 38436
call PrintText_UsedItemOn
hlcoord 2, 2
xor a
- ld [wd10a], a
+ ld [wWhichHPBar], a
call AIUsedItemSound
predef AnimateHPBar
jp AIUpdateHUD
@@ -866,7 +866,7 @@ PrintText_UsedItemOn: ; 38571
ld [wd265], a
call GetItemName
ld hl, StringBuffer1
- ld de, wd050
+ ld de, wMonOrItemNameBuffer
ld bc, ITEM_NAME_LENGTH
call CopyBytes
ld hl, TextJump_EnemyUsedOn
diff --git a/battle/ai/move.asm b/battle/ai/move.asm
new file mode 100755
index 000000000..5f58bae3e
--- /dev/null
+++ b/battle/ai/move.asm
@@ -0,0 +1,222 @@
+AIChooseMove: ; 440ce
+; Score each move in EnemyMonMoves starting from Buffer1. Lower is better.
+; Pick the move with the lowest score.
+
+; Wildmons attack at random.
+ ld a, [wBattleMode]
+ dec a
+ ret z
+
+ ld a, [wLinkMode]
+ and a
+ ret nz
+
+; No use picking a move if there's no choice.
+ callba CheckSubstatus_RechargeChargedRampageBideRollout
+ ret nz
+
+
+; The default score is 20. Unusable moves are given a score of 80.
+ ld a, 20
+ ld hl, Buffer1
+rept 3
+ ld [hli], a
+endr
+ ld [hl], a
+
+; Don't pick disabled moves.
+ ld a, [EnemyDisabledMove]
+ and a
+ jr z, .CheckPP
+
+ ld hl, EnemyMonMoves
+ ld c, 0
+.CheckDisabledMove
+ cp [hl]
+ jr z, .ScoreDisabledMove
+ inc c
+ inc hl
+ jr .CheckDisabledMove
+.ScoreDisabledMove
+ ld hl, Buffer1
+ ld b, 0
+ add hl, bc
+ ld [hl], 80
+
+; Don't pick moves with 0 PP.
+.CheckPP
+ ld hl, Buffer1 - 1
+ ld de, EnemyMonPP
+ ld b, 0
+.CheckMovePP
+ inc b
+ ld a, b
+ cp EnemyMonMovesEnd - EnemyMonMoves + 1
+ jr z, .ApplyLayers
+ inc hl
+ ld a, [de]
+ inc de
+ and $3f
+ jr nz, .CheckMovePP
+ ld [hl], 80
+ jr .CheckMovePP
+
+
+; Apply AI scoring layers depending on the trainer class.
+.ApplyLayers
+ ld hl, TrainerClassAttributes + TRNATTR_AI_MOVE_WEIGHTS
+
+ ; If we have a battle in BattleTower just load the Attributes of the first TrainerClass (Falkner)
+ ; so we have always the same AI, regardless of the loaded class of trainer
+ ld a, [InBattleTowerBattle]
+ bit 0, a
+ jr nz, .battle_tower_skip
+
+ ld a, [TrainerClass]
+ dec a
+ ld bc, 7 ; Trainer2AI - Trainer1AI
+ call AddNTimes
+
+.battle_tower_skip
+ lb bc, CHECK_FLAG, 0
+ push bc
+ push hl
+
+.CheckLayer
+ pop hl
+ pop bc
+
+ ld a, c
+ cp 16 ; up to 16 scoring layers
+ jr z, .DecrementScores
+
+ push bc
+ ld d, BANK(TrainerClassAttributes)
+ predef FlagPredef
+ ld d, c
+ pop bc
+
+ inc c
+ push bc
+ push hl
+
+ ld a, d
+ and a
+ jr z, .CheckLayer
+
+ ld hl, AIScoringPointers
+ dec c
+ ld b, 0
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, BANK(AIScoring)
+ call FarCall_hl
+
+ jr .CheckLayer
+
+; Decrement the scores of all moves one by one until one reaches 0.
+.DecrementScores
+ ld hl, Buffer1
+ ld de, EnemyMonMoves
+ ld c, EnemyMonMovesEnd - EnemyMonMoves
+
+.DecrementNextScore
+ ; If the enemy has no moves, this will infinite.
+ ld a, [de]
+ inc de
+ and a
+ jr z, .DecrementScores
+
+ ; We are done whenever a score reaches 0
+ dec [hl]
+ jr z, .PickLowestScoreMoves
+
+ ; If we just decremented the fourth move's score, go back to the first move
+ inc hl
+ dec c
+ jr z, .DecrementScores
+
+ jr .DecrementNextScore
+
+; In order to avoid bias towards the moves located first in memory, increment the scores
+; that were decremented one more time than the rest (in case there was a tie).
+; This means that the minimum score will be 1.
+.PickLowestScoreMoves
+ ld a, c
+
+.move_loop
+ inc [hl]
+ dec hl
+ inc a
+ cp NUM_MOVES + 1
+ jr nz, .move_loop
+
+ ld hl, Buffer1
+ ld de, EnemyMonMoves
+ ld c, NUM_MOVES
+
+; Give a score of 0 to a blank move
+.loop2
+ ld a, [de]
+ and a
+ jr nz, .skip_load
+ ld [hl], a
+
+; Disregard the move if its score is not 1
+.skip_load
+ ld a, [hl]
+ dec a
+ jr z, .keep
+ xor a
+ ld [hli], a
+ jr .after_toss
+
+.keep
+ ld a, [de]
+ ld [hli], a
+.after_toss
+ inc de
+ dec c
+ jr nz, .loop2
+
+; Randomly choose one of the moves with a score of 1
+.ChooseMove
+ ld hl, Buffer1
+ call Random
+ and 3
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .ChooseMove
+
+ ld [CurEnemyMove], a
+ ld a, c
+ ld [CurEnemyMoveNum], a
+ ret
+; 441af
+
+
+AIScoringPointers: ; 441af
+ dw AI_Basic
+ dw AI_Setup
+ dw AI_Types
+ dw AI_Offensive
+ dw AI_Smart
+ dw AI_Opportunist
+ dw AI_Aggressive
+ dw AI_Cautious
+ dw AI_Status
+ dw AI_Risky
+ dw AI_None
+ dw AI_None
+ dw AI_None
+ dw AI_None
+ dw AI_None
+ dw AI_None
+; 441cf
diff --git a/battle/ai/redundant.asm b/battle/ai/redundant.asm
new file mode 100755
index 000000000..da71d0ece
--- /dev/null
+++ b/battle/ai/redundant.asm
@@ -0,0 +1,198 @@
+AI_Redundant: ; 2c41a
+; Check if move effect c will fail because it's already been used.
+; Return z if the move is a good choice.
+; Return nz if the move is a bad choice.
+ ld a, c
+ ld de, 3
+ ld hl, .Moves
+ call IsInArray
+ jp nc, .NotRedundant
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.Moves: ; 2c42c
+ dbw EFFECT_DREAM_EATER, .DreamEater
+ dbw EFFECT_HEAL, .Heal
+ dbw EFFECT_LIGHT_SCREEN, .LightScreen
+ dbw EFFECT_MIST, .Mist
+ dbw EFFECT_FOCUS_ENERGY, .FocusEnergy
+ dbw EFFECT_CONFUSE, .Confuse
+ dbw EFFECT_TRANSFORM, .Transform
+ dbw EFFECT_REFLECT, .Reflect
+ dbw EFFECT_SUBSTITUTE, .Substitute
+ dbw EFFECT_LEECH_SEED, .LeechSeed
+ dbw EFFECT_DISABLE, .Disable
+ dbw EFFECT_ENCORE, .Encore
+ dbw EFFECT_SNORE, .Snore
+ dbw EFFECT_SLEEP_TALK, .SleepTalk
+ dbw EFFECT_MEAN_LOOK, .MeanLook
+ dbw EFFECT_NIGHTMARE, .Nightmare
+ dbw EFFECT_SPIKES, .Spikes
+ dbw EFFECT_FORESIGHT, .Foresight
+ dbw EFFECT_PERISH_SONG, .PerishSong
+ dbw EFFECT_SANDSTORM, .Sandstorm
+ dbw EFFECT_ATTRACT, .Attract
+ dbw EFFECT_SAFEGUARD, .Safeguard
+ dbw EFFECT_RAIN_DANCE, .RainDance
+ dbw EFFECT_SUNNY_DAY, .SunnyDay
+ dbw EFFECT_TELEPORT, .Teleport
+ dbw EFFECT_MORNING_SUN, .MorningSun
+ dbw EFFECT_SYNTHESIS, .Synthesis
+ dbw EFFECT_MOONLIGHT, .Moonlight
+ dbw EFFECT_SWAGGER, .Swagger
+ dbw EFFECT_FUTURE_SIGHT, .FutureSight
+ db -1
+
+.LightScreen: ; 2c487
+ ld a, [EnemyScreens]
+ bit SCREENS_LIGHT_SCREEN, a
+ ret
+
+.Mist: ; 2c48d
+ ld a, [EnemySubStatus4]
+ bit SUBSTATUS_MIST, a
+ ret
+
+.FocusEnergy: ; 2c493
+ ld a, [EnemySubStatus4]
+ bit SUBSTATUS_FOCUS_ENERGY, a
+ ret
+
+.Confuse: ; 2c499
+ ld a, [PlayerSubStatus3]
+ bit SUBSTATUS_CONFUSED, a
+ ret nz
+ ld a, [PlayerScreens]
+ bit SCREENS_SAFEGUARD, a
+ ret
+
+.Transform: ; 2c4a5
+ ld a, [EnemySubStatus5]
+ bit SUBSTATUS_TRANSFORMED, a
+ ret
+
+.Reflect: ; 2c4ab
+ ld a, [EnemyScreens]
+ bit SCREENS_REFLECT, a
+ ret
+
+.Substitute: ; 2c4b1
+ ld a, [EnemySubStatus4]
+ bit SUBSTATUS_SUBSTITUTE, a
+ ret
+
+.LeechSeed: ; 2c4b7
+ ld a, [PlayerSubStatus4]
+ bit SUBSTATUS_LEECH_SEED, a
+ ret
+
+.Disable: ; 2c4bd
+ ld a, [PlayerDisableCount]
+ and a
+ ret
+
+.Encore: ; 2c4c2
+ ld a, [PlayerSubStatus5]
+ bit SUBSTATUS_ENCORED, a
+ ret
+
+.Snore:
+.SleepTalk: ; 2c4c8
+ ld a, [EnemyMonStatus]
+ and SLP
+ jr z, .Redundant
+ jr .NotRedundant
+
+.MeanLook: ; 2c4d1
+ ld a, [EnemySubStatus5]
+ bit SUBSTATUS_CANT_RUN, a
+ ret
+
+.Nightmare: ; 2c4d7
+ ld a, [BattleMonStatus]
+ and a
+ jr z, .Redundant
+ ld a, [PlayerSubStatus1]
+ bit SUBSTATUS_NIGHTMARE, a
+ ret
+
+.Spikes: ; 2c4e3
+ ld a, [PlayerScreens]
+ bit SCREENS_SPIKES, a
+ ret
+
+.Foresight: ; 2c4e9
+ ld a, [PlayerSubStatus1]
+ bit SUBSTATUS_IDENTIFIED, a
+ ret
+
+.PerishSong: ; 2c4ef
+ ld a, [PlayerSubStatus1]
+ bit SUBSTATUS_PERISH, a
+ ret
+
+.Sandstorm: ; 2c4f5
+ ld a, [Weather]
+ cp WEATHER_SANDSTORM
+ jr z, .Redundant
+ jr .NotRedundant
+
+.Attract: ; 2c4fe
+ callba CheckOppositeGender
+ jr c, .Redundant
+ ld a, [PlayerSubStatus1]
+ bit SUBSTATUS_IN_LOVE, a
+ ret
+
+.Safeguard: ; 2c50c
+ ld a, [EnemyScreens]
+ bit SCREENS_SAFEGUARD, a
+ ret
+
+.RainDance: ; 2c512
+ ld a, [Weather]
+ cp WEATHER_RAIN
+ jr z, .Redundant
+ jr .NotRedundant
+
+.SunnyDay: ; 2c51b
+ ld a, [Weather]
+ cp WEATHER_SUN
+ jr z, .Redundant
+ jr .NotRedundant
+
+.DreamEater: ; 2c524
+ ld a, [BattleMonStatus]
+ and SLP
+ jr z, .Redundant
+ jr .NotRedundant
+
+.Swagger: ; 2c52d
+ ld a, [PlayerSubStatus3]
+ bit SUBSTATUS_CONFUSED, a
+ ret
+
+.FutureSight: ; 2c533
+ ld a, [EnemyScreens]
+ bit 5, a
+ ret
+
+.Heal:
+.MorningSun:
+.Synthesis:
+.Moonlight: ; 2c539
+ callba AICheckEnemyMaxHP
+ jr nc, .NotRedundant
+
+.Teleport:
+.Redundant: ; 2c541
+ ld a, 1
+ and a
+ ret
+
+.NotRedundant: ; 2c545
+ xor a
+ ret
diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm
index ebc6a8a43..266b76af2 100644
--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -77,7 +77,7 @@ BattleAnimRunScript: ; cc11c
call BattleAnimRestoreHuds
.disabled
- ld a, [wcfca]
+ ld a, [wNumHits]
and a
jr z, .done
@@ -92,54 +92,54 @@ BattleAnimRunScript: ; cc11c
.hi_byte
call WaitSFX
- call Functioncc881
+ call PlayHitSound
call RunBattleAnimScript
.done
- call Functioncc8f6
+ call BattleAnim_RevertPals
ret
; cc163
RunBattleAnimScript: ; cc163
- call Functioncc8d3
+ call ClearBattleAnims
.playframe
- call Functioncc25f
- call Functionccb48
- call Functioncc96e
+ call RunBattleAnimCommand
+ call _ExecuteBGEffects
+ call BattleAnim_UpdateOAM_All
call Function3b0c
call BattleAnimRequestPals
; Speed up Rollout's animation.
ld a, [FXAnimIDHi]
or a
- jr nz, .asm_cc193
+ jr nz, .not_rollout
ld a, [FXAnimIDLo]
cp ROLLOUT
- jr nz, .asm_cc193
+ jr nz, .not_rollout
ld a, $2e
ld b, 5
ld de, 4
ld hl, ActiveBGEffects
-.asm_cc18c
+.find
cp [hl]
- jr z, .asm_cc196
+ jr z, .done
add hl, de
dec b
- jr nz, .asm_cc18c
+ jr nz, .find
-.asm_cc193
+.not_rollout
call BattleAnimDelayFrame
-.asm_cc196
+.done
ld a, [BattleAnimFlags]
bit 0, a
jr z, .playframe
- call Functioncc23d
+ call BattleAnim_ClearCGB_OAMFlags
ret
; cc1a1
@@ -191,15 +191,15 @@ BattleAnimRequestPals: ; cc1e2
ld a, [rBGP]
ld b, a
- ld a, [wcfc7]
+ ld a, [wBGP]
cp b
- call nz, Functioncc91a
+ call nz, BattleAnim_SetBGPals
ld a, [rOBP0]
ld b, a
- ld a, [wcfc8]
+ ld a, [wOBP0]
cp b
- call nz, Functioncc94b
+ call nz, BattleAnim_SetOBPals
ret
; cc1fb
@@ -241,7 +241,7 @@ Functioncc220: ; cc220
ld [hBGMapAddress], a
ld a, (VBGMap0 tile $28) / $100
ld [hBGMapAddress + 1], a
- call Function3200
+ call WaitBGMap2
ld a, $60
ld [hWY], a
xor a
@@ -253,11 +253,11 @@ Functioncc220: ; cc220
; cc23d
-Functioncc23d: ; cc23d
+BattleAnim_ClearCGB_OAMFlags: ; cc23d
ld a, [BattleAnimFlags]
bit 3, a
- jr z, .skip
+ jr z, .delete
ld hl, Sprites + 3
ld c, (SpritesEnd - Sprites) / 4
@@ -272,7 +272,7 @@ endr
jr nz, .loop
ret
-.skip
+.delete
ld hl, Sprites
ld c, SpritesEnd - Sprites
xor a
@@ -283,7 +283,7 @@ endr
ret
; cc25f
-Functioncc25f: ; cc25f
+RunBattleAnimCommand: ; cc25f
call .CheckTimer
ret nc
call .RunScript
@@ -341,9 +341,8 @@ Functioncc25f: ; cc25f
ld e, a
ld d, 0
ld hl, BattleAnimCommands
-rept 2
add hl, de
-endr
+ add hl, de
ld a, [hli]
ld h, [hl]
@@ -460,19 +459,19 @@ BattleAnimCmd_Loop: ; cc348 (33:4348)
call GetBattleAnimByte
ld hl, BattleAnimFlags
bit 2, [hl]
- jr nz, .asm_cc35b
+ jr nz, .continue_loop
and a
- jr z, .asm_cc363
+ jr z, .perpetual
dec a
set 2, [hl]
ld [BattleAnimLoops], a
-.asm_cc35b
+.continue_loop
ld hl, BattleAnimLoops
ld a, [hl]
and a
- jr z, .asm_cc372
+ jr z, .return_from_loop
dec [hl]
-.asm_cc363
+.perpetual
call GetBattleAnimByte
ld e, a
call GetBattleAnimByte
@@ -482,26 +481,26 @@ BattleAnimCmd_Loop: ; cc348 (33:4348)
inc hl
ld [hl], d
ret
-.asm_cc372
+
+.return_from_loop
ld hl, BattleAnimFlags
res 2, [hl]
ld hl, BattleAnimAddress
ld e, [hl]
inc hl
ld d, [hl]
-rept 2
inc de
-endr
+ inc de
ld [hl], d
dec hl
ld [hl], e
ret
BattleAnimCmd_JumpUntil: ; cc383 (33:4383)
- ld hl, wKickCounter
+ ld hl, wBattleAnimParam
ld a, [hl]
and a
- jr z, .asm_cc39a
+ jr z, .dont_jump
dec [hl]
call GetBattleAnimByte
@@ -514,14 +513,13 @@ BattleAnimCmd_JumpUntil: ; cc383 (33:4383)
ld [hl], d
ret
-.asm_cc39a
+.dont_jump
ld hl, BattleAnimAddress
ld e, [hl]
inc hl
ld d, [hl]
-rept 2
inc de
-endr
+ inc de
ld [hl], d
dec hl
ld [hl], e
@@ -547,9 +545,8 @@ BattleAnimCmd_JumpVar: ; cc3b2 (33:43b2)
ld e, [hl]
inc hl
ld d, [hl]
-rept 2
inc de
-endr
+ inc de
ld [hl], d
dec hl
ld [hl], e
@@ -568,7 +565,7 @@ endr
BattleAnimCmd_JumpIf: ; cc3d6 (33:43d6)
call GetBattleAnimByte
- ld hl, wKickCounter
+ ld hl, wBattleAnimParam
cp [hl]
jr z, .jump
@@ -576,9 +573,8 @@ BattleAnimCmd_JumpIf: ; cc3d6 (33:43d6)
ld e, [hl]
inc hl
ld d, [hl]
-rept 2
inc de
-endr
+ inc de
ld [hl], d
dec hl
ld [hl], e
@@ -598,7 +594,7 @@ endr
BattleAnimCmd_JumpAnd: ; cc3fa (33:43fa)
call GetBattleAnimByte
ld e, a
- ld a, [wKickCounter]
+ ld a, [wBattleAnimParam]
and e
jr nz, .jump
@@ -606,9 +602,8 @@ BattleAnimCmd_JumpAnd: ; cc3fa (33:43fa)
ld e, [hl]
inc hl
ld d, [hl]
-rept 2
inc de
-endr
+ inc de
ld [hl], d
dec hl
ld [hl], e
@@ -625,62 +620,63 @@ endr
ret
BattleAnimCmd_Obj: ; cc41f (33:441f)
+; index, x, y, param
call GetBattleAnimByte
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
call GetBattleAnimByte
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], a
call GetBattleAnimByte
- ld [BattleAnimTemps + 2], a
+ ld [wBattleAnimTemp2], a
call GetBattleAnimByte
- ld [BattleAnimTemps + 3], a
- call Functioncc9a1
+ ld [wBattleAnimTemp3], a
+ call QueueBattleAnimation
ret
BattleAnimCmd_BGEffect: ; cc43b (33:443b)
call GetBattleAnimByte
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
call GetBattleAnimByte
- ld [BattleAnimTemps + 1], a
+ ld [wBattleAnimTemp1], a
call GetBattleAnimByte
- ld [BattleAnimTemps + 2], a
+ ld [wBattleAnimTemp2], a
call GetBattleAnimByte
- ld [BattleAnimTemps + 3], a
- call Functionccb4f
+ ld [wBattleAnimTemp3], a
+ call _QueueBGEffect
ret
BattleAnimCmd_BGP: ; cc457 (33:4457)
call GetBattleAnimByte
- ld [wcfc7], a
+ ld [wBGP], a
ret
BattleAnimCmd_OBP0: ; cc45e (33:445e)
call GetBattleAnimByte
- ld [wcfc8], a
+ ld [wOBP0], a
ret
BattleAnimCmd_OBP1: ; cc465 (33:4465)
call GetBattleAnimByte
- ld [wcfc9], a
+ ld [wOBP1], a
ret
BattleAnimCmd_ResetObp0: ; cc46c (33:446c)
ld a, [hSGB]
and a
ld a, $e0
- jr z, .asm_cc475
+ jr z, .not_sgb
ld a, $f0
-.asm_cc475
- ld [wcfc8], a
+.not_sgb
+ ld [wOBP0], a
ret
BattleAnimCmd_ClearObjs: ; cc479 (33:4479)
- ld hl, OTPartyMon3HP
+ ld hl, ActiveAnimObjects
ld a, $a0
-.asm_cc47e
+.loop
ld [hl], $0
inc hl
dec a
- jr nz, .asm_cc47e
+ jr nz, .loop
ret
BattleAnimCmd_1GFX:
@@ -691,16 +687,16 @@ BattleAnimCmd_5GFX: ; cc485 (33:4485)
ld a, [BattleAnimByte]
and $f
ld c, a
- ld hl, w5_d300
+ ld hl, wBattleAnimTileDict
xor a
- ld [BattleAnimTemps], a
-.asm_cc492
- ld a, [BattleAnimTemps]
- cp $4f
+ ld [wBattleAnimTemp0], a
+.loop
+ ld a, [wBattleAnimTemp0]
+ cp (VTiles1 - VTiles0) / $10 - $31
ret nc
call GetBattleAnimByte
ld [hli], a
- ld a, [BattleAnimTemps]
+ ld a, [wBattleAnimTemp0]
ld [hli], a
push bc
push hl
@@ -712,102 +708,104 @@ endr
ld de, VTiles0 tile $31
add hl, de
ld a, [BattleAnimByte]
- call Functionce846
- ld a, [BattleAnimTemps]
+ call LoadBattleAnimObj
+ ld a, [wBattleAnimTemp0]
add c
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
pop hl
pop bc
dec c
- jr nz, .asm_cc492
+ jr nz, .loop
ret
BattleAnimCmd_IncObj: ; cc4c0 (33:44c0)
call GetBattleAnimByte
- ld e, $a
- ld bc, OTPartyMon3HP
-.asm_cc4c8
- ld hl, $0
+ ld e, 10
+ ld bc, ActiveAnimObjects
+.loop
+ ld hl, BATTLEANIMSTRUCT_INDEX
add hl, bc
ld d, [hl]
ld a, [BattleAnimByte]
cp d
- jr z, .asm_cc4dd
- ld hl, $18
+ jr z, .found
+ ld hl, BATTLEANIMSTRUCT_LENGTH
add hl, bc
ld c, l
ld b, h
dec e
- jr nz, .asm_cc4c8
+ jr nz, .loop
ret
-.asm_cc4dd
- ld hl, $e
+
+.found
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
inc [hl]
ret
BattleAnimCmd_IncBGEffect: ; cc4e3 (33:44e3)
call GetBattleAnimByte
- ld e, $5
+ ld e, 5
ld bc, ActiveBGEffects
-.asm_cc4eb
+.loop
ld hl, $0
add hl, bc
ld d, [hl]
ld a, [BattleAnimByte]
cp d
- jr z, .asm_cc500
- ld hl, $4
+ jr z, .found
+ ld hl, 4
add hl, bc
ld c, l
ld b, h
dec e
- jr nz, .asm_cc4eb
+ jr nz, .loop
ret
-.asm_cc500
- ld hl, $1
+
+.found
+ ld hl, BG_EFFECT_STRUCT_JT_INDEX
add hl, bc
inc [hl]
ret
BattleAnimCmd_SetObj: ; cc506 (33:4506)
call GetBattleAnimByte
- ld e, $a
- ld bc, OTPartyMon3HP
-.asm_cc50e
- ld hl, $0
+ ld e, 10
+ ld bc, ActiveAnimObjects
+.loop
+ ld hl, BATTLEANIMSTRUCT_INDEX
add hl, bc
ld d, [hl]
ld a, [BattleAnimByte]
cp d
- jr z, .asm_cc523
- ld hl, $18
+ jr z, .found
+ ld hl, BATTLEANIMSTRUCT_LENGTH
add hl, bc
ld c, l
ld b, h
dec e
- jr nz, .asm_cc50e
+ jr nz, .loop
ret
-.asm_cc523
+
+.found
call GetBattleAnimByte
- ld hl, $e
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
add hl, bc
ld [hl], a
ret
BattleAnimCmd_EnemyFeetObj: ; cc52c (33:452c)
- ld hl, w5_d300
-.asm_cc52f
+ ld hl, wBattleAnimTileDict
+.loop
ld a, [hl]
and a
- jr z, .asm_cc537
-rept 2
+ jr z, .okay
inc hl
-endr
- jr .asm_cc52f
+ inc hl
+ jr .loop
-.asm_cc537
+.okay
ld a, $28
ld [hli], a
ld a, $42
@@ -820,50 +818,49 @@ endr
ld hl, VTiles0 tile $73
ld de, VTiles2 tile $06
ld a, $70
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
ld a, $7
- call Functioncc561
+ call .LoadFootprint
ld de, VTiles2 tile $31
ld a, $60
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
ld a, $6
- call Functioncc561
+ call .LoadFootprint
ret
-Functioncc561: ; cc561 (33:4561)
+.LoadFootprint: ; cc561 (33:4561)
push af
push hl
push de
- ld bc, $3301
+ lb bc, BANK(BattleAnimCmd_EnemyFeetObj), 1
call Request2bpp
pop de
- ld a, [BattleAnimTemps]
+ ld a, [wBattleAnimTemp0]
ld l, a
- ld h, $0
+ ld h, 0
add hl, de
ld e, l
ld d, h
pop hl
- ld bc, $10
+ ld bc, 1 tiles
add hl, bc
pop af
dec a
- jr nz, Functioncc561
+ jr nz, .LoadFootprint
ret
BattleAnimCmd_PlayerHeadObj: ; cc57e (33:457e)
- ld hl, w5_d300
-.asm_cc581
+ ld hl, wBattleAnimTileDict
+.loop
ld a, [hl]
and a
- jr z, .asm_cc589
-rept 2
+ jr z, .okay
inc hl
-endr
- jr .asm_cc581
+ inc hl
+ jr .loop
-.asm_cc589
+.okay
ld a, $28
ld [hli], a
ld a, $35
@@ -876,35 +873,35 @@ endr
ld hl, VTiles0 tile $66
ld de, VTiles2 tile $05
ld a, $70
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
ld a, $7
- call Functioncc5b3
+ call .LoadHead
ld de, VTiles2 tile $31
ld a, $60
- ld [BattleAnimTemps], a
+ ld [wBattleAnimTemp0], a
ld a, $6
- call Functioncc5b3
+ call .LoadHead
ret
-Functioncc5b3: ; cc5b3 (33:45b3)
+.LoadHead: ; cc5b3 (33:45b3)
push af
push hl
push de
- ld bc, $3302
+ lb bc, BANK(BattleAnimCmd_EnemyFeetObj), 2
call Request2bpp
pop de
- ld a, [BattleAnimTemps]
+ ld a, [wBattleAnimTemp0]
ld l, a
- ld h, $0
+ ld h, 0
add hl, de
ld e, l
ld d, h
pop hl
- ld bc, $20
+ ld bc, 2 tiles
add hl, bc
pop af
dec a
- jr nz, Functioncc5b3
+ jr nz, .LoadHead
ret
BattleAnimCmd_CheckPokeball: ; cc5d0 (33:45d0)
@@ -996,18 +993,18 @@ GetSubstitutePic: ; cc64c
and a
jr z, .player
- ld hl, MonsterSpriteGFX
- ld de, sScratch + $130
- call CopyMonsterSpriteTile
- ld hl, MonsterSpriteGFX + $10
- ld de, sScratch + $1a0
- call CopyMonsterSpriteTile
- ld hl, MonsterSpriteGFX + $20
- ld de, sScratch + $140
- call CopyMonsterSpriteTile
- ld hl, MonsterSpriteGFX + $30
- ld de, sScratch + $1b0
- call CopyMonsterSpriteTile
+ ld hl, MonsterSpriteGFX + 0 tiles
+ ld de, sScratch + $13 tiles
+ call .CopyTile
+ ld hl, MonsterSpriteGFX + 1 tiles
+ ld de, sScratch + $1a tiles
+ call .CopyTile
+ ld hl, MonsterSpriteGFX + 2 tiles
+ ld de, sScratch + $14 tiles
+ call .CopyTile
+ ld hl, MonsterSpriteGFX + 3 tiles
+ ld de, sScratch + $1b tiles
+ call .CopyTile
ld hl, VTiles2 tile $00
ld de, sScratch
@@ -1016,18 +1013,18 @@ GetSubstitutePic: ; cc64c
jr .done
.player
- ld hl, MonsterSpriteGFX + $40
- ld de, sScratch + $100
- call CopyMonsterSpriteTile
- ld hl, MonsterSpriteGFX + $50
- ld de, sScratch + $160
- call CopyMonsterSpriteTile
- ld hl, MonsterSpriteGFX + $60
- ld de, sScratch + $110
- call CopyMonsterSpriteTile
- ld hl, MonsterSpriteGFX + $70
- ld de, sScratch + $170
- call CopyMonsterSpriteTile
+ ld hl, MonsterSpriteGFX + 4 tiles
+ ld de, sScratch + $10 tiles
+ call .CopyTile
+ ld hl, MonsterSpriteGFX + 5 tiles
+ ld de, sScratch + $16 tiles
+ call .CopyTile
+ ld hl, MonsterSpriteGFX + 6 tiles
+ ld de, sScratch + $11 tiles
+ call .CopyTile
+ ld hl, MonsterSpriteGFX + 7 tiles
+ ld de, sScratch + $17 tiles
+ call .CopyTile
ld hl, VTiles2 tile $31
ld de, sScratch
@@ -1040,8 +1037,8 @@ GetSubstitutePic: ; cc64c
ld [rSVBK], a
ret
-CopyMonsterSpriteTile: ; cc6c6 (33:46c6)
- ld bc, $10
+.CopyTile: ; cc6c6 (33:46c6)
+ ld bc, 1 tiles
ld a, BANK(MonsterSpriteGFX)
call FarCopyBytes
ret
@@ -1062,7 +1059,7 @@ BattleAnimCmd_MinimizeOpp: ; cc6cf (33:46cf)
GetMinimizePic: ; cc6e7 (33:46e7)
ld hl, sScratch
- ld bc, $310
+ ld bc, $31 tiles
.loop
xor a
ld [hli], a
@@ -1075,7 +1072,7 @@ GetMinimizePic: ; cc6e7 (33:46e7)
and a
jr z, .player
- ld de, sScratch + $1a0
+ ld de, sScratch + $1a tiles
call CopyMinimizePic
ld hl, VTiles2 tile $00
ld de, sScratch
@@ -1129,11 +1126,11 @@ BattleAnimCmd_DropSub: ; cc750 (33:4750)
and a
jr z, .player
- callab Function3f486
+ callab DropEnemySub
jr .done
.player
- callab Function3f447
+ callab DropPlayerSub
.done
pop af
@@ -1150,21 +1147,21 @@ BattleAnimCmd_BeatUp: ; cc776 (33:4776)
ld a, [CurPartySpecies] ; CurPartySpecies
push af
- ld a, [wKickCounter]
+ ld a, [wBattleAnimParam]
ld [CurPartySpecies], a ; CurPartySpecies
ld a, [hBattleTurn]
and a
jr z, .player
- ld hl, BattleMonDVs ; BattleMonDVs
+ ld hl, BattleMonDVs
predef GetUnownLetter
ld de, VTiles2 tile $00
predef GetFrontpic
jr .done
.player
- ld hl, EnemyMonDVs ; EnemyMonDVs
+ ld hl, EnemyMonDVs
predef GetUnownLetter
ld de, VTiles2 tile $31
predef GetBackpic
@@ -1172,7 +1169,7 @@ BattleAnimCmd_BeatUp: ; cc776 (33:4776)
.done
pop af
ld [CurPartySpecies], a ; CurPartySpecies
- ld b, SCGB_01
+ ld b, SCGB_BATTLE_COLORS
call GetSGBLayout
pop af
ld [rSVBK], a
@@ -1207,17 +1204,17 @@ BattleAnimCmd_Sound: ; cc7cd (33:47cd)
ld e, a
srl a
srl a
- ld [wc2be], a
- call Functioncc7fc
+ ld [wSFXDuration], a
+ call .GetCryTrack
and 3
ld [CryTracks], a ; CryTracks
ld e, a
ld d, 0
- ld hl, Datacc7f8
+ ld hl, .GetPanning
add hl, de
ld a, [hl]
- ld [wc2bc], a
+ ld [wStereoPanningMask], a
call GetBattleAnimByte
ld e, a
@@ -1227,11 +1224,11 @@ BattleAnimCmd_Sound: ; cc7cd (33:47cd)
ret
; cc7f8 (33:47f8)
-Datacc7f8: ; cc7f8
+.GetPanning: ; cc7f8
db $f0, $0f, $f0, $0f
; cc7fc
-Functioncc7fc: ; cc7fc (33:47fc)
+.GetCryTrack: ; cc7fc (33:47fc)
ld a, [hBattleTurn]
and a
jr nz, .enemy
@@ -1249,7 +1246,7 @@ BattleAnimCmd_Cry: ; cc807 (33:4807)
and 3
ld e, a
ld d, 0
- ld hl, Datacc871
+ ld hl, .CryData
rept 4
add hl, de
endr
@@ -1266,14 +1263,14 @@ endr
ld a, $f0
ld [CryTracks], a ; CryTracks
ld a, [BattleMonSpecies] ; BattleMonSpecies
- jr .asm_cc834
+ jr .done_cry_tracks
.enemy
ld a, $0f
ld [CryTracks], a ; CryTracks
ld a, [EnemyMonSpecies] ; EnemyMon
-.asm_cc834
+.done_cry_tracks
push hl
call LoadCryHeader
pop hl
@@ -1310,7 +1307,7 @@ endr
ld a, h
ld [CryLength + 1], a
ld a, 1
- ld [wc2bc], a
+ ld [wStereoPanningMask], a
callab _PlayCryHeader
@@ -1320,17 +1317,17 @@ endr
ret
; cc871 (33:4871)
-Datacc871: ; cc871
+.CryData: ; cc871
; +pitch, +length
- dw 0, $c0
- dw 0, $40
- dw 0, $00
- dw 0, $00
+ dw $0000, $00c0
+ dw $0000, $0040
+ dw $0000, $0000
+ dw $0000, $0000
; cc881
-Functioncc881: ; cc881
- ld a, [wcfca]
+PlayHitSound: ; cc881
+ ld a, [wNumHits]
cp $1
jr z, .okay
cp $4
@@ -1366,24 +1363,24 @@ BattleAnimAssignPals: ; cc8a4
ld a, %11110000
.sgb
- ld [wcfc8], a
+ ld [wOBP0], a
ld a, %11100100
- ld [wcfc7], a
- ld [wcfc9], a
+ ld [wBGP], a
+ ld [wOBP1], a
ret
.cgb
ld a, %11100100
- ld [wcfc7], a
- ld [wcfc8], a
- ld [wcfc9], a
+ ld [wBGP], a
+ ld [wOBP0], a
+ ld [wOBP1], a
call DmgToCgbBGPals
lb de, %11100100, %11100100
call DmgToCgbObjPals
ret
; cc8d3
-Functioncc8d3: ; cc8d3
+ClearBattleAnims: ; cc8d3
; Clear animation block
ld hl, LYOverrides
ld bc, wBattleAnimEnd - LYOverrides
@@ -1400,21 +1397,20 @@ Functioncc8d3: ; cc8d3
inc hl
ld d, [hl]
ld hl, BattleAnimations
-rept 2
add hl, de
-endr
+ add hl, de
call GetBattleAnimPointer
call BattleAnimAssignPals
call BattleAnimDelayFrame
ret
; cc8f6
-Functioncc8f6: ; cc8f6
+BattleAnim_RevertPals: ; cc8f6
call WaitTop
ld a, %11100100
- ld [wcfc7], a
- ld [wcfc8], a
- ld [wcfc9], a
+ ld [wBGP], a
+ ld [wOBP0], a
+ ld [wOBP1], a
call DmgToCgbBGPals
lb de, %11100100, %11100100
call DmgToCgbObjPals
@@ -1427,7 +1423,7 @@ Functioncc8f6: ; cc8f6
ret
; cc91a
-Functioncc91a: ; cc91a
+BattleAnim_SetBGPals: ; cc91a
ld [rBGP], a
ld a, [hCGB]
and a
@@ -1455,7 +1451,7 @@ Functioncc91a: ; cc91a
ret
; cc94b
-Functioncc94b: ; cc94b
+BattleAnim_SetOBPals: ; cc94b
ld [rOBP0], a
ld a, [hCGB]
and a
@@ -1477,41 +1473,41 @@ Functioncc94b: ; cc94b
ret
; cc96e
-Functioncc96e: ; cc96e
+BattleAnim_UpdateOAM_All: ; cc96e
ld a, $0
- ld [w5_d418], a
- ld hl, OTPartyMon3HP
- ld e, $a
-.asm_cc978
+ ld [wBattleAnimOAMPointerLo], a
+ ld hl, ActiveAnimObjects
+ ld e, 10
+.loop
ld a, [hl]
and a
- jr z, .asm_cc98a
+ jr z, .next
ld c, l
ld b, h
push hl
push de
- call Functionccfbe
- call Functioncca09
+ call DoBattleAnimFrame
+ call BattleAnimOAMUpdate
pop de
pop hl
- jr c, .asm_cc9a0
+ jr c, .done
-.asm_cc98a
- ld bc, $0018
+.next
+ ld bc, BATTLEANIMSTRUCT_LENGTH
add hl, bc
dec e
- jr nz, .asm_cc978
- ld a, [w5_d418]
+ jr nz, .loop
+ ld a, [wBattleAnimOAMPointerLo]
ld l, a
- ld h, $c4
-.asm_cc997
+ ld h, Sprites / $100
+.loop2
ld a, l
- cp $a0
- jr nc, .asm_cc9a0
+ cp SpritesEnd % $100
+ jr nc, .done
xor a
ld [hli], a
- jr .asm_cc997
+ jr .loop2
-.asm_cc9a0
+.done
ret
; cc9a1
diff --git a/battle/anim_objects.asm b/battle/anim_objects.asm
index 3fc6e7c7d..786a035bf 100644
--- a/battle/anim_objects.asm
+++ b/battle/anim_objects.asm
@@ -1,6474 +1,9 @@
; Objects used in battle animations.
-
-Functioncc9a1: ; cc9a1 (33:49a1)
- ld hl, OTPartyMon3HP
- ld e, $a
-.asm_cc9a6
- ld a, [hl]
- and a
- jr z, .asm_cc9b3
- ld bc, $18
- add hl, bc
- dec e
- jr nz, .asm_cc9a6
- scf
- ret
-.asm_cc9b3
- ld c, l
- ld b, h
- ld hl, w5_d40e
- inc [hl]
- call Functioncc9c4
- ret
-
-
-Functioncc9bd: ; cc9bd
- ld hl, 0
- add hl, bc
- ld [hl], $0
- ret
-; cc9c4
-
-
-Functioncc9c4: ; cc9c4 (33:49c4)
- ld a, [BattleAnimTemps]
- ld e, a
- ld d, 0
- ld hl, BattleAnimObjects
-rept 6
- add hl, de
-endr
- ld e, l
- ld d, h
- ld hl, $0
- add hl, bc
- ld a, [w5_d40e]
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- call Functionccb31
- ld [hli], a
- ld a, [BattleAnimTemps + 1]
- ld [hli], a
- ld a, [BattleAnimTemps + 2]
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- ld a, [BattleAnimTemps + 3]
- ld [hli], a
- xor a
- ld [hli], a
- dec a
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- ret
-
-
-Functioncca09: ; cca09
- call Functionccaaa
- call Functionce7d1
- cp $fd
- jp z, .asm_ccaa5
- cp $fc
- jp z, .asm_ccaa2
- push af
- ld hl, BattleAnimTemps
- ld a, [BattleAnimTemps + 7]
- xor [hl]
- and $e0
- ld [hl], a
- pop af
- push bc
- call Functionce83c
- ld a, [BattleAnimTemps + 2]
- add [hl]
- ld [BattleAnimTemps + 2], a
- inc hl
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [w5_d418]
- ld e, a
- ld d, $c4
-.asm_cca3c
- ld a, [BattleAnimTemps + 4]
- ld b, a
- ld a, [BattleAnimTemps + 6]
- add b
- ld b, a
- push hl
- ld a, [hl]
- ld hl, BattleAnimTemps
- bit 6, [hl]
- jr z, .asm_cca53
- add $8
- xor $ff
- inc a
-
-.asm_cca53
- pop hl
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [BattleAnimTemps + 3]
- ld b, a
- ld a, [BattleAnimTemps + 5]
- add b
- ld b, a
- push hl
- ld a, [hl]
- ld hl, BattleAnimTemps
- bit 5, [hl]
- jr z, .asm_cca6f
- add $8
- xor $ff
- inc a
-
-.asm_cca6f
- pop hl
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [BattleAnimTemps + 2]
- add $31
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [BattleAnimTemps]
- ld b, a
- ld a, [hl]
- xor b
- and $e0
- ld b, a
- ld a, [hl]
- and $10
- or b
- ld b, a
- ld a, [BattleAnimTemps + 8]
- and $f
- or b
- ld [de], a
- inc hl
- inc de
- ld a, e
- ld [w5_d418], a
- cp $a0
- jr nc, .asm_ccaa7
- dec c
- jr nz, .asm_cca3c
- pop bc
- jr .asm_ccaa5
-
-.asm_ccaa2
- call Functioncc9bd
-
-.asm_ccaa5
- and a
- ret
-
-.asm_ccaa7
- pop bc
- scf
- ret
-; ccaaa
-
-Functionccaaa: ; ccaaa
- ld hl, $0001
- add hl, bc
- ld a, [hl]
- and $80
- ld [BattleAnimTemps], a
- xor a
- ld [BattleAnimTemps + 7], a
- ld hl, $0005
- add hl, bc
- ld a, [hl]
- ld [BattleAnimTemps + 8], a
- ld hl, $0002
- add hl, bc
- ld a, [hl]
- ld [BattleAnimTemps + 1], a
- ld hl, $0006
- add hl, bc
- ld a, [hli]
- ld [BattleAnimTemps + 2], a
- ld a, [hli]
- ld [BattleAnimTemps + 3], a
- ld a, [hli]
- ld [BattleAnimTemps + 4], a
- ld a, [hli]
- ld [BattleAnimTemps + 5], a
- ld a, [hli]
- ld [BattleAnimTemps + 6], a
- ld a, [hBattleTurn]
- and a
- ret z
- ld hl, $0001
- add hl, bc
- ld a, [hl]
- ld [BattleAnimTemps], a
- bit 0, [hl]
- ret z
- ld hl, $0007
- add hl, bc
- ld a, [hli]
- ld d, a
- ld a, $b4
- sub d
- ld [BattleAnimTemps + 3], a
- ld a, [hli]
- ld d, a
- ld a, [BattleAnimTemps + 1]
- cp $ff
- jr nz, .asm_ccb09
- ld a, $28
- add d
- jr .asm_ccb26
-
-.asm_ccb09
- sub d
- push af
- ld a, [FXAnimIDHi]
- or a
- jr nz, .asm_ccb25
- ld a, [FXAnimIDLo]
- cp $86
- jr z, .asm_ccb20
- cp $87
- jr z, .asm_ccb20
- cp $d0
- jr nz, .asm_ccb25
-
-.asm_ccb20
- pop af
- sub $8
- jr .asm_ccb26
-
-.asm_ccb25
- pop af
-
-.asm_ccb26
- ld [BattleAnimTemps + 4], a
- ld a, [hli]
- xor $ff
- inc a
- ld [BattleAnimTemps + 5], a
- ret
-; ccb31
-
-
-Functionccb31: ; ccb31 (33:4b31)
- push hl
- push bc
- ld hl, w5_d300
- ld b, a
- ld c, $5
-.asm_ccb39
- ld a, [hli]
- cp b
- jr z, .asm_ccb44
- inc hl
- dec c
- jr nz, .asm_ccb39
- xor a
- jr .asm_ccb45
-.asm_ccb44
- ld a, [hl]
-.asm_ccb45
- pop bc
- pop hl
- ret
-
-
-Functionccb48: ; ccb48
- callab Functionc8000
- ret
-; ccb4f
-
-
-Functionccb4f: ; ccb4f (33:4b4f)
- callab Functionc801a
- ret
-; ccb56 (33:4b56)
-
-BattleAnimObjects: ; ccb56
- db $01, $ff, $00, $00, $02, $01
- db $01, $ff, $01, $00, $02, $01
- db $01, $ff, $02, $00, $02, $01
- db $01, $90, $00, $00, $02, $01
- db $01, $90, $01, $00, $02, $01
- db $01, $90, $02, $00, $02, $01
- db $01, $ff, $03, $00, $02, $01
- db $01, $ff, $04, $1b, $02, $01
- db $01, $ff, $05, $00, $02, $01
- db $01, $ff, $06, $00, $02, $01
- db $01, $90, $07, $09, $02, $01
- db $01, $aa, $10, $10, $04, $03
- db $01, $90, $0e, $04, $04, $03
- db $01, $90, $0f, $03, $04, $03
- db $01, $90, $10, $08, $04, $03
- db $01, $90, $0f, $0a, $04, $03
- db $01, $90, $11, $03, $04, $03
- db $01, $90, $12, $08, $06, $0a
- db $01, $90, $13, $00, $06, $0a
- db $01, $90, $14, $01, $06, $0a
- db $21, $78, $16, $0b, $05, $06
- db $00, $00, $09, $12, $04, $0b
- db $00, $00, $09, $13, $04, $0b
- db $01, $90, $18, $00, $04, $08
- db $01, $ff, $18, $00, $04, $08
- db $01, $90, $1d, $06, $02, $0c
- db $01, $b4, $1f, $38, $02, $0c
- db $01, $90, $08, $00, $02, $07
- db $01, $a0, $08, $00, $02, $07
- db $01, $ff, $19, $07, $07, $09
- db $01, $ff, $1a, $07, $07, $09
- db $01, $b0, $1b, $36, $07, $09
- db $01, $b0, $84, $36, $06, $21
- db $01, $90, $21, $0c, $06, $0d
- db $00, $00, $23, $0d, $06, $0d
- db $01, $90, $24, $0e, $02, $0e
- db $61, $80, $27, $0f, $06, $04
- db $01, $b4, $2a, $00, $06, $04
- db $01, $40, $2b, $11, $05, $0f
- db $61, $98, $2c, $00, $03, $10
- db $61, $98, $2d, $09, $03, $10
- db $01, $b8, $2e, $00, $06, $0a
- db $01, $b8, $2f, $00, $06, $0a
- db $01, $b8, $30, $14, $07, $11
- db $01, $90, $21, $14, $03, $0d
- db $21, $b0, $31, $00, $03, $05
- db $21, $b0, $32, $00, $03, $05
- db $21, $b0, $33, $00, $03, $05
- db $21, $90, $34, $15, $03, $05
- db $21, $90, $36, $00, $03, $05
- db $21, $90, $37, $03, $02, $08
- db $21, $90, $38, $00, $03, $05
- db $21, $90, $39, $03, $02, $08
- db $21, $90, $3a, $16, $02, $02
- db $01, $90, $3c, $17, $02, $02
- db $21, $ff, $3e, $00, $02, $02
- db $21, $ff, $3f, $00, $02, $02
- db $21, $ff, $40, $00, $02, $02
- db $21, $ff, $41, $00, $02, $02
- db $21, $ff, $42, $00, $02, $02
- db $01, $88, $43, $18, $05, $12
- db $01, $88, $44, $00, $05, $12
- db $21, $b8, $45, $19, $02, $13
- db $21, $ff, $46, $00, $02, $14
- db $21, $ff, $47, $00, $02, $14
- db $21, $ff, $48, $1a, $02, $14
- db $21, $ff, $49, $1a, $02, $14
- db $21, $98, $4a, $01, $02, $14
- db $21, $80, $4b, $00, $03, $11
- db $01, $88, $4c, $1c, $05, $12
- db $21, $b0, $4d, $1d, $02, $15
- db $01, $b0, $51, $1e, $03, $11
- db $21, $ff, $52, $1f, $05, $16
- db $21, $ff, $54, $1f, $05, $16
- db $21, $68, $56, $20, $05, $06
- db $21, $90, $59, $21, $02, $0e
- db $21, $90, $5c, $02, $02, $17
- db $01, $90, $5d, $22, $03, $11
- db $61, $88, $5f, $00, $03, $10
- db $61, $88, $2d, $09, $03, $10
- db $21, $88, $60, $00, $03, $18
- db $21, $80, $60, $00, $02, $18
- db $21, $50, $61, $23, $03, $19
- db $01, $80, $63, $24, $02, $19
- db $01, $80, $66, $25, $02, $19
- db $01, $50, $1c, $00, $02, $0c
- db $21, $a8, $67, $26, $07, $1a
- db $21, $a8, $68, $00, $07, $1a
- db $21, $90, $69, $01, $02, $1a
- db $21, $90, $6d, $28, $03, $19
- db $21, $90, $6a, $27, $02, $1b
- db $00, $00, $6f, $29, $02, $1c
- db $21, $48, $70, $29, $02, $1c
- db $21, $48, $6f, $29, $02, $1c
- db $21, $78, $6f, $2a, $02, $1c
- db $61, $90, $71, $2b, $02, $1d
- db $61, $90, $72, $2c, $02, $1d
- db $01, $48, $73, $2d, $04, $1e
- db $01, $90, $74, $06, $02, $15
- db $01, $ff, $75, $2e, $07, $19
- db $21, $90, $4a, $02, $02, $14
- db $01, $80, $30, $2f, $02, $11
- db $01, $78, $76, $2a, $04, $23
- db $01, $80, $77, $30, $02, $1f
- db $01, $90, $77, $02, $02, $1f
- db $01, $ff, $77, $00, $02, $1f
- db $01, $80, $78, $08, $03, $23
- db $21, $90, $79, $00, $02, $1f
- db $01, $ff, $7a, $31, $03, $11
- db $01, $88, $7a, $31, $03, $11
- db $21, $88, $7b, $32, $02, $20
- db $21, $98, $7c, $00, $02, $04
- db $21, $80, $7d, $00, $02, $18
- db $01, $80, $21, $2f, $06, $0d
- db $01, $b0, $7e, $33, $03, $12
- db $01, $80, $7f, $2f, $02, $08
- db $21, $a0, $6f, $34, $02, $1c
- db $21, $a0, $74, $35, $02, $15
- db $21, $b0, $80, $33, $02, $14
- db $01, $88, $81, $37, $02, $11
- db $01, $88, $85, $00, $02, $22
- db $01, $88, $86, $00, $02, $22
- db $01, $90, $87, $39, $02, $1f
- db $01, $80, $30, $3a, $03, $11
- db $21, $90, $34, $00, $03, $05
- db $a1, $88, $88, $3b, $06, $13
- db $01, $80, $76, $25, $04, $23
- db $01, $98, $10, $34, $04, $03
- db $01, $a8, $0f, $3c, $04, $03
- db $21, $68, $89, $29, $02, $1f
- db $21, $b0, $8a, $00, $02, $1f
- db $21, $80, $8c, $00, $02, $1f
- db $21, $50, $8d, $00, $03, $1f
- db $01, $40, $24, $40, $02, $0e
- db $21, $a8, $8e, $41, $04, $1f
- db $21, $88, $8f, $3e, $02, $1f
- db $21, $88, $93, $3e, $02, $1f
- db $21, $90, $97, $3d, $02, $1f
- db $21, $90, $78, $3d, $03, $23
- db $01, $ff, $99, $2e, $02, $19
- db $21, $a0, $74, $02, $02, $15
- db $21, $a0, $99, $35, $04, $19
- db $21, $70, $8b, $3f, $02, $1f
- db $01, $90, $15, $08, $02, $0a
- db $01, $90, $11, $02, $04, $03
- db $01, $80, $7f, $42, $02, $08
- db $01, $90, $9a, $00, $02, $1b
- db $21, $a0, $9b, $35, $04, $23
- db $21, $80, $9c, $23, $02, $25
- db $21, $80, $9d, $25, $02, $25
- db $21, $80, $9c, $00, $02, $25
- db $21, $80, $9e, $00, $06, $25
- db $61, $80, $9f, $3a, $05, $23
- db $21, $80, $a0, $16, $02, $23
- db $21, $70, $78, $43, $03, $23
- db $21, $c0, $a2, $01, $02, $25
- db $21, $40, $a3, $44, $03, $24
- db $01, $80, $a4, $00, $02, $24
- db $01, $80, $a5, $00, $03, $24
- db $01, $88, $43, $45, $04, $12
- db $21, $ff, $a6, $00, $02, $02
- db $21, $ff, $a7, $00, $02, $02
- db $21, $00, $b4, $4a, $07, $0f
- db $21, $90, $a8, $02, $03, $05
- db $21, $40, $9c, $11, $02, $25
- db $61, $90, $a9, $46, $02, $23
- db $00, $00, $24, $47, $02, $0e
- db $01, $80, $aa, $00, $02, $24
- db $21, $b8, $ab, $48, $02, $13
- db $21, $90, $ac, $44, $02, $13
- db $01, $a8, $05, $00, $02, $01
- db $01, $90, $24, $43, $02, $0e
- db $01, $88, $ad, $00, $06, $17
- db $01, $a8, $ae, $49, $02, $01
- db $21, $90, $af, $01, $03, $11
- db $21, $00, $b0, $4a, $02, $04
- db $00, $00, $70, $4b, $04, $1c
- db $01, $88, $b1, $4c, $02, $19
- db $01, $b8, $19, $4d, $07, $09
- db $61, $98, $b3, $00, $03, $27
- db $61, $98, $74, $04, $06, $15
- db $21, $ff, $19, $4e, $07, $09
- db $01, $90, $73, $08, $04, $1e
- db $01, $ff, $89, $4f, $04, $1f
- db $00, $00, $b5, $00, $00, $28
- db $00, $00, $b6, $00, $01, $29
- db $00, $00, $b7, $00, $00, $28
- db $00, $00, $b8, $00, $01, $29
-; ccfbe
-
-
-Functionccfbe: ; ccfbe
- ld hl, $0004
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_ccfce
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; ccfce
-
-
-Jumptable_ccfce: ; ccfce (33:4fce)
- dw Functioncd06e
- dw Functioncd12a
- dw Functioncd146
- dw Functioncd0e3
- dw Functioncd0a6
- dw Functioncd081
- dw Functioncd079
- dw Functioncd2be
- dw Functioncd306
- dw Functioncd3ae
- dw Functioncd3f2
- dw Functioncd478
- dw Functioncd5e9
- dw Functioncd66a
- dw Functioncd6e3
- dw Functioncd71a
- dw Functioncd284
- dw Functioncd777
- dw Functioncd15c
- dw Functioncd212
- dw Functioncd7a4
- dw Functioncd80c
- dw Functioncd824
- dw Functioncd89a
- dw Functioncd900
- dw Functioncd954
- dw Functioncdafa
- dw Functioncdb06
- dw Functioncda0a
- dw Functioncdb80
- dw Functioncdca6
- dw Functioncda31
- dw Functioncda4d
- dw Functioncdcc3
- dw Functioncdd2a
- dw Functioncdd90
- dw Functioncddf9
- dw Functioncde28
- dw Functioncde54
- dw Functioncde6b
- dw Functioncde89
- dw Functioncdedd
- dw Functioncdf59
- dw Functionce063
- dw Functionce0c5
- dw Functioncdf1b
- dw Functionce10e
- dw Functionce15c
- dw Functionce1e7
- dw Functionce226
- dw Functionce255
- dw Functionce2cc
- dw Functioncdf8c
- dw Functionce00b
- dw Functionce2fd
- dw Functionce35f
- dw Functionce389
- dw Functionce3b4
- dw Functionce3d2
- dw Functionce3ff
- dw Functioncdfcb
- dw Functionce416
- dw Functionce43a
- dw Functioncdad6
- dw Functionce49c
- dw Functionce4dc
- dw Functionce1b0
- dw Functionce508
- dw Functionce532
- dw Functionce55b
- dw Functionce593
- dw Functionce5b4
- dw Functionce5dc
- dw Functionce5ee
- dw Functionce62f
- dw Functionce688
- dw Functionce6b3
- dw Functionce6d2
- dw Functioncd58a
- dw Functionce6bf
-
-
-Functioncd06e: ; cd06e (33:506e)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd071: ; cd071 (33:5071)
- dw Functioncd078
- dw Functioncd075
-
-
-Functioncd075: ; cd075 (33:5075)
- call Functioncc9bd
-
-Functioncd078: ; cd078 (33:5078)
- ret
-
-Functioncd079: ; cd079 (33:5079)
- call Functioncd081
- ret c
- call Functioncc9bd
- ret
-
-Functioncd081: ; cd081 (33:5081)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- ret nc
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- scf
- ret
-
-Functioncd0a6: ; cd0a6 (33:50a6)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr c, .asm_cd0b3
- call Functioncc9bd
- ret
-.asm_cd0b3
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
-rept 4
- inc [hl]
-endr
- ld d, $10
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- sra a
- sra a
- sra a
- sra a
- ld [hl], a
- ret
-
-Functioncd0e3: ; cd0e3 (33:50e3)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd0e6: ; cd0e6 (33:50e6)
- dw Functioncd0ea
- dw Functioncd106
-
-
-Functioncd0ea: ; cd0ea (33:50ea)
- call Functionce72c
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- ld a, $0
- jr z, .asm_cd0f9
- ld a, $20
-.asm_cd0f9
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-Functioncd106: ; cd106 (33:5106)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ret
-
-Functioncd12a: ; cd12a (33:512a)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd12d: ; cd12d (33:512d)
- dw Functioncd135
- dw Functioncd131
-
-
-Functioncd131: ; cd131 (33:5131)
- call Functioncc9bd
- ret
-
-Functioncd135: ; cd135 (33:5135)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- ret nc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-Functioncd146: ; cd146 (33:5146)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_cd158
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-.asm_cd158
- call Functioncc9bd
- ret
-
-Functioncd15c: ; cd15c (33:515c)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd15f: ; cd15f (33:515f)
- dw Functioncd177
- dw Functioncd17e
- dw Functioncd1dc
- dw Functioncd196
- dw Functioncd1a7
- dw Functioncd1dc
- dw Functioncd1d2
- dw Functioncd1dd
- dw Functioncd1ee
- dw Functioncd1dc
- dw Functioncd1ee
- dw Functioncd20e
-
-
-Functioncd177: ; cd177 (33:5177)
- call Functioncd249
- call Functionce72c
- ret
-
-Functioncd17e: ; cd17e (33:517e)
- call Functioncd081
- ret c
- ld hl, $a
- add hl, bc
- ld a, [hl]
- ld hl, $8
- add hl, bc
- add [hl]
- ld [hl], a
- ld a, $b
- call Functionce7bf
- call Functionce72c
- ret
-
-Functioncd196: ; cd196 (33:5196)
- call Functionce72c
- ld a, $9
- call Functionce7bf
- ld hl, $f
- add hl, bc
- ld [hl], $0
- inc hl
- ld [hl], $10
-
-Functioncd1a7: ; cd1a7 (33:51a7)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec a
- ld [hl], a
- and $1f
- ret nz
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
- ret nz
- ld a, $c
- call Functionce7bf
- call Functionce72c
- ret
-
-Functioncd1d2: ; cd1d2 (33:51d2)
- ld a, $d
- call Functionce7bf
- ld hl, $e
- add hl, bc
- dec [hl]
-
-Functioncd1dc: ; cd1dc (33:51dc)
- ret
-
-Functioncd1dd: ; cd1dd (33:51dd)
- call Functioncd249
- ld a, $a
- call Functionce7bf
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $20
-
-Functioncd1ee: ; cd1ee (33:51ee)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec a
- ld [hl], a
- and $1f
- jr z, Functioncd20e
- and $f
- ret nz
- call Functionce72c
- ret
-
-Functioncd20e: ; cd20e (33:520e)
- call Functioncc9bd
- ret
-
-Functioncd212: ; cd212 (33:5212)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd215: ; cd215 (33:5215)
- dw Functioncd21b
- dw Functioncd222
- dw Functioncd232
-
-
-Functioncd21b: ; cd21b (33:521b)
- call Functioncd249
- call Functionce72c
- ret
-
-Functioncd222: ; cd222 (33:5222)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $70
- jr nc, .asm_cd22f
- call Functioncd081
- ret
-.asm_cd22f
- call Functionce72c
-
-Functioncd232: ; cd232 (33:5232)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_cd245
- add $4
- ld [hl], a
- ld hl, $7
- add hl, bc
-rept 2
- dec [hl]
-endr
- ret
-.asm_cd245
- call Functioncc9bd
- ret
-
-Functioncd249: ; cd249 (33:5249)
- ld hl, Unknown_cd26c
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [CurItem] ; CurItem
- ld e, a
- pop af
- ld [rSVBK], a
-.asm_cd25a
- ld a, [hli]
- cp $ff
- jr z, .asm_cd265
- cp e
- jr z, .asm_cd265
- inc hl
- jr .asm_cd25a
-.asm_cd265
- ld a, [hl]
- ld hl, $5
- add hl, bc
- ld [hl], a
- ret
-; cd26c (33:526c)
-
-Unknown_cd26c: ; cd26c
- db MASTER_BALL, 5
- db ULTRA_BALL, 3
- db GREAT_BALL, 6
- db POKE_BALL, 4
- db HEAVY_BALL, 2
- db LEVEL_BALL, 7
- db LURE_BALL, 6
- db FAST_BALL, 6
- db FRIEND_BALL, 3
- db MOON_BALL, 2
- db LOVE_BALL, 4
- db $ff, 2
-; cd284
-
-Functioncd284: ; cd284 (33:5284)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd287: ; cd287 (33:5287)
- dw Functioncd291
- dw Functioncd2a0
- dw Functioncd2b1
- dw Functioncd2b5
- dw Functioncd2bd
-
-
-Functioncd291: ; cd291 (33:5291)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- and $f
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-Functioncd2a0: ; cd2a0 (33:52a0)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- ret nc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-Functioncd2b1: ; cd2b1 (33:52b1)
- call Functioncc9bd
- ret
-
-Functioncd2b5: ; cd2b5 (33:52b5)
- call Functionce72c
- ld a, $f
- call Functionce7bf
-
-Functioncd2bd: ; cd2bd (33:52bd)
- ret
-
-Functioncd2be: ; cd2be (33:52be)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd2c1: ; cd2c1 (33:52c1)
- dw Functioncd2c5
- dw Functioncd2d1
-
-
-Functioncd2c5: ; cd2c5 (33:52c5)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $30
- inc hl
- ld [hl], $48
-
-Functioncd2d1: ; cd2d1 (33:52d1)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- sub [hl]
- jr z, .asm_cd302
- jr c, .asm_cd302
- ld hl, $10
- add hl, bc
- ld [hl], a
- ret
-.asm_cd302
- call Functioncc9bd
- ret
-
-Functioncd306: ; cd306 (33:5306)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd309: ; cd309 (33:5309)
- dw Functioncd311
- dw Functioncd321
- dw Functioncd32a
- dw Functioncd37d
-
-
-Functioncd311: ; cd311 (33:5311)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_cd31e
- call Functioncd38e
- ret
-.asm_cd31e
- call Functionce72c
-
-Functioncd321: ; cd321 (33:5321)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
-
-Functioncd32a: ; cd32a (33:532a)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .asm_cd363
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce732
- sub $18
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $f
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-.asm_cd363
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- jr z, .asm_cd37a
- sub $10
- ld d, a
- ld a, [hl]
- and $f
- or d
- ld [hl], a
- ld hl, $e
- add hl, bc
- dec [hl]
- ret
-.asm_cd37a
- call Functionce72c
-
-Functioncd37d: ; cd37d (33:537d)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b0
- jr c, .asm_cd38a
- call Functioncc9bd
- ret
-.asm_cd38a
- call Functioncd38e
- ret
-
-Functioncd38e: ; cd38e (33:538e)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld e, a
- srl e
- ld hl, $8
- add hl, bc
-.asm_cd3a9
- dec [hl]
- dec e
- jr nz, .asm_cd3a9
- ret
-
-Functioncd3ae: ; cd3ae (33:53ae)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd3b1: ; cd3b1 (33:53b1)
- dw Functioncd3b7
- dw Functioncd3cc
- dw Functioncd3ee
-
-
-Functioncd3b7: ; cd3b7 (33:53b7)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $9
- add hl, bc
- ld [hl], a
-
-Functioncd3cc: ; cd3cc (33:53cc)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd3d6
- dec [hl]
- ret
-.asm_cd3d6
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- and $f
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ret
-
-Functioncd3ee: ; cd3ee (33:53ee)
- call Functioncc9bd
- ret
-
-Functioncd3f2: ; cd3f2 (33:53f2)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd3f5: ; cd3f5 (33:53f5)
- dw Functioncd409
- dw Functioncd45c
- dw Functioncd467
- dw Functioncd472
- dw Functioncd462
- dw Functioncd46d
- dw Functioncd477
- dw Functioncd41d
- dw Functioncd437
- dw Functioncd458
-
-
-Functioncd409: ; cd409 (33:5409)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- cp $7
- jr z, Functioncd41d
- ld a, $11
- call Functionce7bf
- ret
-
-Functioncd41d: ; cd41d (33:541d)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr nc, .asm_cd42f
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-.asm_cd42f
- call Functionce72c
- ld a, $10
- call Functionce7bf
-
-Functioncd437: ; cd437 (33:5437)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ret
-
-Functioncd458: ; cd458 (33:5458)
- call Functioncc9bd
- ret
-
-Functioncd45c: ; cd45c (33:545c)
- ld hl, $a
- add hl, bc
- dec [hl]
- ret
-
-Functioncd462: ; cd462 (33:5462)
- ld hl, $a
- add hl, bc
- inc [hl]
-
-Functioncd467: ; cd467 (33:5467)
- ld hl, $9
- add hl, bc
- dec [hl]
- ret
-
-Functioncd46d: ; cd46d (33:546d)
- ld hl, $a
- add hl, bc
- inc [hl]
-
-Functioncd472: ; cd472 (33:5472)
- ld hl, $9
- add hl, bc
- inc [hl]
-
-Functioncd477: ; cd477 (33:5477)
- ret
-
-Functioncd478: ; cd478 (33:5478)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd47b: ; cd47b (33:547b)
- dw Functioncd48d
- dw Functioncd496
- dw Functioncd4ee
- dw Functioncd53a
- dw Functioncd545
- dw Functioncd545
- dw Functioncd545
- dw Functioncd545
- dw Functioncd549
-
-
-Functioncd48d: ; cd48d (33:548d)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
-
-Functioncd496: ; cd496 (33:5496)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cd4bc
- call Functionce72c
- xor a
- ld hl, $f
- add hl, bc
- ld [hli], a
- ld [hl], a
- ld a, $17
- call Functionce7bf
- ld hl, $b
- add hl, bc
- bit 6, [hl]
- ret z
- ld hl, $d
- add hl, bc
- ld [hl], $5
- ret
-.asm_cd4bc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- call Functioncd557
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-Functioncd4ee: ; cd4ee (33:54ee)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $20
- jr nz, .asm_cd4fb
- call Functioncc9bd
- ret
-.asm_cd4fb
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- bit 6, [hl]
- jr nz, .asm_cd519
- ld hl, $f
- add hl, bc
- inc [hl]
- jr .asm_cd51e
-.asm_cd519
- ld hl, $f
- add hl, bc
- dec [hl]
-.asm_cd51e
- ld de, $80
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $a
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-Functioncd53a: ; cd53a (33:553a)
- ld a, $16
- call Functionce7bf
- ld hl, $1
- add hl, bc
- res 5, [hl]
-
-Functioncd545: ; cd545 (33:5545)
- call Functionce72c
- ret
-
-Functioncd549: ; cd549 (33:5549)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $c0
- ret nc
- ld a, $8
- call Functionce70a
- ret
-
-Functioncd557: ; cd557 (33:5557)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- bit 7, a
- jr nz, .asm_cd574
- cp $20
- jr nc, .asm_cd570
- cp $18
- jr nc, .asm_cd56c
- ld de, $200
- ret
-.asm_cd56c
- ld de, $180
- ret
-.asm_cd570
- ld de, $100
- ret
-.asm_cd574
- and $3f
- cp $20
- jr nc, .asm_cd586
- cp $18
- jr nc, .asm_cd582
- ld de, $fe00
- ret
-.asm_cd582
- ld de, $fe80
- ret
-.asm_cd586
- ld de, rJOYP ; $ff00
- ret
-
-Functioncd58a: ; cd58a (33:558a)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd58d: ; cd58d (33:558d)
- dw Functioncd591
- dw Functioncd5aa
-
-
-Functioncd591: ; cd591 (33:5591)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $40
- rlca
- rlca
- add $19
- ld hl, $3
- add hl, bc
- ld [hl], a
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
-
-Functioncd5aa: ; cd5aa (33:55aa)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cd5b7
- call Functioncc9bd
- ret
-.asm_cd5b7
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- call Functioncd557
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-Functioncd5e9: ; cd5e9 (33:55e9)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd5ec: ; cd5ec (33:55ec)
- dw Functioncd5f2
- dw Functioncd5fb
- dw Functioncd61b
-
-
-Functioncd5f2: ; cd5f2 (33:55f2)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $c
-
-Functioncd5fb: ; cd5fb (33:55fb)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd60d
- dec [hl]
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-.asm_cd60d
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld a, $22
- call Functionce7bf
-
-Functioncd61b: ; cd61b (33:561b)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- jr nc, .asm_cd63f
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- ld de, $60
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $7
- add hl, bc
- ld [hl], d
-.asm_cd63f
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $20
- ret c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- ld e, a
- ld d, $ff
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $8
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $10
- add hl, bc
- ld [hl], e
- ld hl, $8
- add hl, bc
- ld [hl], d
- ret
-
-Functioncd66a: ; cd66a (33:566a)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd66d: ; cd66d (33:566d)
- dw Functioncd677
- dw Functioncd687
- dw Functioncd6c5
- dw Functioncd6c6
- dw Functioncd6d6
-
-
-Functioncd677: ; cd677 (33:5677)
- call Functionce72c
- ld a, $42
- ld [hLCDStatCustom], a
- ld a, $58
- ld [hLCDStatCustom + 1], a
- ld a, $5e
- ld [hLCDStatCustom + 2], a
- ret
-
-Functioncd687: ; cd687 (33:5687)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp e
- jr nc, .asm_cd69b
- call Functionce72c
- xor a
- ld [hLCDStatCustom + 1], a
- ret
-.asm_cd69b
- dec a
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- add [hl]
- sub $10
- ret c
- ld [hLCDStatCustom + 1], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- inc a
- and $7
- ld [hl], a
- ld hl, $f
- add hl, bc
-rept 2
- inc [hl]
-endr
-
-Functioncd6c5: ; cd6c5 (33:56c5)
- ret
-
-Functioncd6c6: ; cd6c6 (33:56c6)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $70
- jr c, asm_cd6da
- xor a
- ld [hLCDStatCustom], a
- ld [hLCDStatCustom + 1], a
- ld [hLCDStatCustom + 2], a
-
-Functioncd6d6: ; cd6d6 (33:56d6)
- call Functioncc9bd
- ret
-asm_cd6da: ; cd6da (33:56da)
-rept 2
- inc a
-endr
- ld [hl], a
- sub $10
- ret c
- ld [hLCDStatCustom + 1], a
- ret
-
-Functioncd6e3: ; cd6e3 (33:56e3)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd6e6: ; cd6e6 (33:56e6)
- dw Functioncd6ea
- dw Functioncd6f7
-
-
-Functioncd6ea: ; cd6ea (33:56ea)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, $24
- add [hl]
- call Functionce7bf
-
-Functioncd6f7: ; cd6f7 (33:56f7)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b8
- jr c, .asm_cd704
- call Functioncc9bd
- ret
-.asm_cd704
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-
-Functioncd71a: ; cd71a (33:571a)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd71d: ; cd71d (33:571d)
- dw Functioncd725
- dw Functioncd728
- dw Functioncd763
- dw Functioncd776
-
-
-Functioncd725: ; cd725 (33:5725)
- call Functionce72c
-
-Functioncd728: ; cd728 (33:5728)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cd747
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-.asm_cd747
- call Functionce72c
- ld a, $28
- call Functionce7bf
- ld hl, $a
- add hl, bc
- ld [hl], $0
- ld hl, $8
- add hl, bc
- ld [hl], $30
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and $1
- ld [hl], a
-
-Functioncd763: ; cd763 (33:5763)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $18
- jr nc, .asm_cd76e
- inc [hl]
- ret
-.asm_cd76e
- call Functionce72c
- ld a, $29
- call Functionce7bf
-
-Functioncd776: ; cd776 (33:5776)
- ret
-
-Functioncd777: ; cd777 (33:5777)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $38
- jr c, .asm_cd784
- call Functioncc9bd
- ret
-.asm_cd784
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld l, [hl]
- ld h, a
- ld de, $80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $10
- ld [hl], a
- ret
-
-Functioncd7a4: ; cd7a4 (33:57a4)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd7a7: ; cd7a7 (33:57a7)
- dw Functioncd7ab
- dw Functioncd7d2
-
-
-Functioncd7ab: ; cd7ab (33:57ab)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- sla a
- sla a
- sla a
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld [hl], $1
-
-Functioncd7d2: ; cd7d2 (33:57d2)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_cd7de
- call Functioncc9bd
- ret
-.asm_cd7de
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $10
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- xor $1
- ld [hl], a
- ret z
- ld hl, $10
- add hl, bc
- dec [hl]
- ret
-
-Functioncd80c: ; cd80c (33:580c)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd80f: ; cd80f (33:580f)
- dw Functioncd81f
- dw Functioncd817
- dw Functioncd81f
- dw Functioncd820
-
-
-Functioncd817: ; cd817 (33:5817)
- call Functionce72c
- ld a, $35
- call Functionce7bf
-
-Functioncd81f: ; cd81f (33:581f)
- ret
-
-Functioncd820: ; cd820 (33:5820)
- call Functioncc9bd
- ret
-
-Functioncd824: ; cd824 (33:5824)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd827: ; cd827 (33:5827)
- dw Functioncd835
- dw Functioncd860
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd893
-
-
-Functioncd835: ; cd835 (33:5835)
- call Functionce72c
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_cd852
- ld hl, $f
- add hl, bc
- ld [hl], $10
- jr .asm_cd858
-.asm_cd852
- ld hl, $f
- add hl, bc
- ld [hl], $30
-.asm_cd858
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-Functioncd860: ; cd860 (33:5860)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- bit 7, a
- jr nz, .asm_cd87e
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc a
- jr .asm_cd883
-.asm_cd87e
- ld hl, $10
- add hl, bc
- ld a, [hl]
-.asm_cd883
- call Functionce7bf
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1f
- ret nz
-
-Functioncd88f: ; cd88f (33:588f)
- call Functionce72c
- ret
-
-Functioncd893: ; cd893 (33:5893)
- ld hl, $e
- add hl, bc
- ld [hl], $1
- ret
-
-Functioncd89a: ; cd89a (33:589a)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd89d: ; cd89d (33:589d)
- dw Functioncd8ab
- dw Functioncd8cc
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f9
-
-
-Functioncd8ab: ; cd8ab (33:58ab)
- call Functionce72c
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_cd8be
- ld hl, $f
- add hl, bc
- ld [hl], $10
- jr .asm_cd8c4
-.asm_cd8be
- ld hl, $f
- add hl, bc
- ld [hl], $30
-.asm_cd8c4
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-Functioncd8cc: ; cd8cc (33:58cc)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- bit 7, a
- jr nz, .asm_cd8e6
- ld a, $3d
- jr .asm_cd8e8
-.asm_cd8e6
- ld a, $3c
-.asm_cd8e8
- call Functionce7bf
- ld hl, $f
- add hl, bc
-rept 2
- inc [hl]
-endr
- ld a, [hl]
- and $1f
- ret nz
-
-Functioncd8f5: ; cd8f5 (33:58f5)
- call Functionce72c
- ret
-
-Functioncd8f9: ; cd8f9 (33:58f9)
- ld hl, $e
- add hl, bc
- ld [hl], $1
- ret
-
-Functioncd900: ; cd900 (33:5900)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd903: ; cd903 (33:5903)
- dw Functioncd907
- dw Functioncd913
-
-
-Functioncd907: ; cd907 (33:5907)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- inc hl
- ld [hl], $0
-
-Functioncd913: ; cd913 (33:5913)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd950
- ld d, a
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $10
- add hl, bc
- ld [hl], e
- ld hl, $f
- add hl, bc
- ld [hl], d
- ret
-.asm_cd950
- call Functioncc9bd
- ret
-
-Functioncd954: ; cd954 (33:5954)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cd957: ; cd957 (33:5957)
- dw Functioncd961
- dw Functioncd96a
- dw Functioncd96e
- dw Functioncd96a
- dw Functioncd97b
-
-
-Functioncd961: ; cd961 (33:5961)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld [hl], $0
-
-Functioncd96a: ; cd96a (33:596a)
- call Functioncd99a
- ret
-
-Functioncd96e: ; cd96e (33:596e)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr c, asm_cd988
- call Functionce72c
- ret
-
-Functioncd97b: ; cd97b (33:597b)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b8
- jr c, asm_cd988
- call Functioncc9bd
- ret
-
-asm_cd988: ; cd988 (33:5988)
- call Functioncd99a
- ld hl, $7
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-Functioncd99a: ; cd99a (33:599a)
- call Functioncd9f4
- ld hl, $f
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- sra a
- ld hl, $b
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $8
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd9d7
- cp $c2
- jr c, .asm_cd9e2
-.asm_cd9d7
- dec a
- ld [hl], a
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- inc [hl]
- ret
-.asm_cd9e2
- xor a
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld [hli], a
- ld [hl], a
- ret
-
-Functioncd9f4: ; cd9f4 (33:59f4)
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Unknown_cda01
- add hl, de
- ld d, [hl]
- ret
-; cda01 (33:5a01)
-
-Unknown_cda01: ; cda01
- db 8, 6, 5, 4, 5, 6, 8, 12, 16
-; cda0a
-
-Functioncda0a: ; cda0a (33:5a0a)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cda17
- call Functioncc9bd
- ret
-.asm_cda17
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld e, a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- sub e
- ld [hl], a
- srl e
- ld hl, $8
- add hl, bc
-.asm_cda2c
- inc [hl]
- dec e
- jr nz, .asm_cda2c
- ret
-
-Functioncda31: ; cda31 (33:5a31)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cda34: ; cda34 (33:5a34)
- dw Functioncda4c
- dw Functioncda3a
- dw Functioncda4c
-
-
-Functioncda3a: ; cda3a (33:5a3a)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc a
- call Functionce7bf
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $8
-
-Functioncda4c: ; cda4c (33:5a4c)
- ret
-
-Functioncda4d: ; cda4d (33:5a4d)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cda50: ; cda50 (33:5a50)
- dw Functioncda58
- dw Functioncda62
- dw Functioncda7a
- dw Functioncda8c
-
-
-Functioncda58: ; cda58 (33:5a58)
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $40
- ret
-
-Functioncda62: ; cda62 (33:5a62)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_cda6f
- call Functioncda8d
- ret
-.asm_cda6f
- ld [hl], $40
- ld a, $57
- call Functionce7bf
- call Functionce72c
- ret
-
-Functioncda7a: ; cda7a (33:5a7a)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cda84
- dec [hl]
- ret
-.asm_cda84
- call Functionce72c
- ld a, $58
- call Functionce7bf
-
-Functioncda8c: ; cda8c (33:5a8c)
- ret
-
-Functioncda8d: ; cda8d (33:5a8d)
- dec [hl]
- ld d, $20
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, $7
- add hl, bc
- ld d, [hl]
- ld hl, $b
- add hl, bc
- ld h, [hl]
- ld a, h
- and $f
- swap a
- ld l, a
- ld a, h
- and $f0
- swap a
- ld h, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-Functioncdad6: ; cdad6 (33:5ad6)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cdad9: ; cdad9 (33:5ad9)
- dw Functioncdadf
- dw Functioncdae9
- dw Functioncdaf9
-
-
-Functioncdadf: ; cdadf (33:5adf)
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $40
- ret
-
-Functioncdae9: ; cdae9 (33:5ae9)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_cdaf6
- call Functioncda8d
- ret
-.asm_cdaf6
- call Functionce72c
-
-Functioncdaf9: ; cdaf9 (33:5af9)
- ret
-
-Functioncdafa: ; cdafa (33:5afa)
- call Functioncd0e3
- ld hl, $f
- add hl, bc
- ld a, [hl]
- add $f
- ld [hl], a
- ret
-
-Functioncdb06: ; cdb06 (33:5b06)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cdb09: ; cdb09 (33:5b09)
- dw Functioncdb13
- dw Functioncdb14
- dw Functioncdb28
- dw Functioncdb50
- dw Functioncdb65
-
-
-Functioncdb13: ; cdb13 (33:5b13)
- ret
-
-Functioncdb14: ; cdb14 (33:5b14)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cdb24
- ld hl, $e
- add hl, bc
- ld [hl], $0
- ret
-.asm_cdb24
- add $4
- ld [hl], a
- ret
-
-Functioncdb28: ; cdb28 (33:5b28)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- ret nc
-rept 2
- inc [hl]
-endr
- ld hl, $1
- add hl, bc
- set 0, [hl]
- ld hl, $2
- add hl, bc
- ld [hl], $90
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld hl, $c
- add hl, bc
- ld [hl], $2
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-Functioncdb50: ; cdb50 (33:5b50)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $2c
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld hl, $c
- add hl, bc
- ld [hl], $80
-
-Functioncdb65: ; cdb65 (33:5b65)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- ret nc
-rept 2
- inc [hl]
-endr
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-
-Functioncdb80: ; cdb80 (33:5b80)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cdb83: ; cdb83 (33:5b83)
- dw Functioncdb9f
- dw Functioncdbb3
- dw Functioncdbcf
- dw Functioncdbeb
- dw Functioncdc74
- dw Functioncdc1a
- dw Functioncdbc1
- dw Functioncdc1e
- dw Functioncdc27
- dw Functioncdc39
- dw Functioncdc74
- dw Functioncdc48
- dw Functioncdc57
- dw Functioncdc74
-
-
-Functioncdb9f: ; cdb9f (33:5b9f)
- ld hl, $f
- add hl, bc
- ld [hl], $28
- inc hl
- ld [hl], $10
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-Functioncdbb3: ; cdbb3 (33:5bb3)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .asm_cdbbd
- inc [hl]
-.asm_cdbbd
- call Functioncdc75
- ret
-
-Functioncdbc1: ; cdbc1 (33:5bc1)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $4b
- jr nc, .asm_cdbcb
- inc [hl]
-.asm_cdbcb
- call Functioncdc75
- ret
-
-Functioncdbcf: ; cdbcf (33:5bcf)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr nc, .asm_cdbe6
- and $f
- jr nz, asm_cdbfa
- ld hl, $10
- add hl, bc
- ld [hl], $10
- call Functionce72c
- ret
-.asm_cdbe6
- call Functionce72c
- inc [hl]
- ret
-
-Functioncdbeb: ; cdbeb (33:5beb)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdbf5
- dec [hl]
- ret
-.asm_cdbf5
- ld hl, $e
- add hl, bc
- dec [hl]
-asm_cdbfa: ; cdbfa (33:5bfa)
- ld hl, $7
- add hl, bc
- inc [hl]
- ld hl, $8
- add hl, bc
- ld d, [hl]
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $8
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-Functioncdc1a: ; cdc1a (33:5c1a)
- call Functioncc9bd
- ret
-
-Functioncdc1e: ; cdc1e (33:5c1e)
- ld a, $4e
- call Functionce7bf
- call Functionce72c
- ret
-
-Functioncdc27: ; cdc27 (33:5c27)
- ld hl, $f
- add hl, bc
- ld a, [hl]
-rept 2
- inc [hl]
-endr
- ld d, $2
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-Functioncdc39: ; cdc39 (33:5c39)
- ld a, $50
- call Functionce7bf
- ld hl, $a
- add hl, bc
- ld [hl], $4
- call Functionce72c
- ret
-
-Functioncdc48: ; cdc48 (33:5c48)
- ld a, $4f
- call Functionce7bf
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
- ret
-
-Functioncdc57: ; cdc57 (33:5c57)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $20
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cdc71
- dec [hl]
- ret
-.asm_cdc71
- call Functionce72c
-
-Functioncdc74: ; cdc74 (33:5c74)
- ret
-
-Functioncdc75: ; cdc75 (33:5c75)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- ld hl, $10
- add hl, bc
- ld a, [hl]
- sub $8
- ld [hl], a
- ret nz
- xor a
- ld hl, $f
- add hl, bc
- ld [hli], a
- ld [hl], a
- call Functionce72c
- ret
-
-Functioncdca6: ; cdca6 (33:5ca6)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdcb6
- cp $d8
- jr nc, .asm_cdcb6
- call Functioncc9bd
- ret
-.asm_cdcb6
- ld hl, $b
- add hl, bc
- ld d, [hl]
- ld hl, $a
- add hl, bc
- ld a, [hl]
- sub d
- ld [hl], a
- ret
-
-Functioncdcc3: ; cdcc3 (33:5cc3)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cdcc6: ; cdcc6 (33:5cc6)
- dw Functioncdcca
- dw Functioncdced
-
-
-Functioncdcca: ; cdcca (33:5cca)
- ld a, [hBattleTurn]
- and a
- jr z, .asm_cdcd9
- ld hl, $b
- add hl, bc
- ld a, [hl]
- xor $ff
- add $3
- ld [hl], a
-.asm_cdcd9
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $8
- ld hl, $b
- add hl, bc
- ld a, $59
- add [hl]
- call Functionce7bf
- ret
-
-Functioncdced: ; cdced (33:5ced)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdcfa
- dec [hl]
- call Functioncdcfe
- ret
-.asm_cdcfa
- call Functioncc9bd
- ret
-
-Functioncdcfe: ; cdcfe (33:5cfe)
- ld hl, $10
- add hl, bc
- ld a, [hl]
-rept 2
- inc [hl]
-endr
- ld d, $10
- call Functionce734
- ld d, a
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdd20
- dec a
- ret z
- ld hl, $a
- add hl, bc
- ld [hl], d
- ret
-.asm_cdd20
- ld hl, $a
- add hl, bc
- ld a, d
- xor $ff
- inc a
- ld [hl], a
- ret
-
-Functioncdd2a: ; cdd2a (33:5d2a)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cdd2d: ; cdd2d (33:5d2d)
- dw Functioncdd31
- dw Functioncdd4f
-
-
-Functioncdd31: ; cdd31 (33:5d31)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $80
- rlca
- ld [hl], a
- add $5d
- call Functionce7bf
- ret
-
-Functioncdd4f: ; cdd4f (33:5d4f)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- ld d, a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $80
- ret nc
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $3
- jr nz, .asm_cdd87
- ld hl, $8
- add hl, bc
- dec [hl]
-.asm_cdd87
- and $1
- ret nz
- ld hl, $7
- add hl, bc
- inc [hl]
- ret
-
-Functioncdd90: ; cdd90 (33:5d90)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cdd93: ; cdd93 (33:5d93)
- dw Functioncdd97
- dw Functioncddbc
-
-
-Functioncdd97: ; cdd97 (33:5d97)
- call Functionce72c
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $80
- rlca
- ld hl, $f
- add hl, bc
- add [hl]
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-Functioncddbc: ; cddbc (33:5dbc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- and $3f
- jr z, .asm_cddf0
- and $1f
- ret nz
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc a
- jr .asm_cddf5
-.asm_cddf0
- ld hl, $f
- add hl, bc
- ld a, [hl]
-.asm_cddf5
- call Functionce7bf
- ret
-
-Functioncddf9: ; cddf9 (33:5df9)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cddfc: ; cddfc (33:5dfc)
- dw Functioncde02
- dw Functioncde20
- dw Functioncde21
-
-
-Functioncde02: ; cde02 (33:5e02)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $63
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Unknown_cde25
- add hl, de
- ld a, [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
-
-Functioncde20: ; cde20 (33:5e20)
- ret
-
-Functioncde21: ; cde21 (33:5e21)
- call Functioncc9bd
- ret
-; cde25 (33:5e25)
-
-Unknown_cde25: ; cde25
- db $ec, $f8, $00
-; cde28
-
-Functioncde28: ; cde28 (33:5e28)
- ld hl, $f
- add hl, bc
- ld a, [hl]
-rept 2
- inc [hl]
-endr
- ld d, $4
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $a
- add hl, bc
- ld d, [hl]
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld hl, $ffa0
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-Functioncde54: ; cde54 (33:5e54)
- ld hl, $f
- add hl, bc
- ld a, [hl]
-rept 2
- dec [hl]
-endr
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- inc [hl]
- ret
-
-Functioncde6b: ; cde6b (33:5e6b)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cde6e: ; cde6e (33:5e6e)
- dw Functioncde72
- dw Functioncde88
-
-
-Functioncde72: ; cde72 (33:5e72)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_cde83
- ld hl, $1
- add hl, bc
- set 6, [hl]
-.asm_cde83
- add $6a
- call Functionce7bf
-
-Functioncde88: ; cde88 (33:5e88)
- ret
-
-Functioncde89: ; cde89 (33:5e89)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cde8c: ; cde8c (33:5e8c)
- dw Functioncde90
- dw Functioncdebf
-
-
-Functioncde90: ; cde90 (33:5e90)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld a, e
- and $70
- swap a
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, e
- and $80
- jr nz, .asm_cdeb2
- ld a, e
- and $f
- ld [hl], a
- ret
-.asm_cdeb2
- ld a, e
- and $f
- xor $ff
- inc a
- ld [hl], a
- ld a, $6e
- call Functionce7bf
- ret
-
-Functioncdebf: ; cdebf (33:5ebf)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdec9
- dec [hl]
- ret
-.asm_cdec9
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ret
-
-Functioncdedd: ; cdedd (33:5edd)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $28
- jr nc, .asm_cdf17
- inc [hl]
- ret
-.asm_cdf17
- call Functioncc9bd
- ret
-
-Functioncdf1b: ; cdf1b (33:5f1b)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $28
- jr nc, .asm_cdf55
- inc [hl]
- ret
-.asm_cdf55
- call Functioncc9bd
- ret
-
-Functioncdf59: ; cdf59 (33:5f59)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_cdf5c: ; cdf5c (33:5f5c)
- dw Functioncdf60
- dw Functioncdedd
-
-
-Functioncdf60: ; cdf60 (33:5f60)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_cdf88
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-.asm_cdf88
- call Functionce72c
- ret
-
-Functioncdf8c: ; cdf8c (33:5f8c)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
-rept 2
- inc [hl]
-endr
- ld a, [hl]
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $e8
- jr z, .asm_cdfc7
- dec [hl]
- ret
-.asm_cdfc7
- call Functioncc9bd
- ret
-
-Functioncdfcb: ; cdfcb (33:5fcb)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
-rept 2
- inc [hl]
-endr
- ld a, [hl]
- and $3
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $d0
- jr z, .asm_ce007
-rept 2
- dec [hl]
-endr
- ret
-.asm_ce007
- call Functioncc9bd
- ret
-
-Functionce00b: ; ce00b (33:600b)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce00e: ; ce00e (33:600e)
- dw Functionce014
- dw Functionce023
- dw Functionce05f
-
-
-Functionce014: ; ce014 (33:6014)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $34
- ld hl, $10
- add hl, bc
- ld [hl], $10
-
-Functionce023: ; ce023 (33:6023)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $6c
- jr c, .asm_ce02d
- ret
-.asm_ce02d
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld d, [hl]
- call Functionce734
- bit 7, a
- jr nz, .asm_ce046
- xor $ff
- inc a
-.asm_ce046
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
- and $1f
- cp $20
- ret nz
- ld hl, $10
- add hl, bc
- srl [hl]
- ret
-
-Functionce05f: ; ce05f (33:605f)
- call Functioncc9bd
- ret
-
-Functionce063: ; ce063 (33:6063)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce066: ; ce066 (33:6066)
- dw Functionce06e
- dw Functionce083
- dw Functionce091
- dw Functionce09e
-
-
-Functionce06e: ; ce06e (33:606e)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ret
-
-Functionce083: ; ce083 (33:6083)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $58
- ret nc
- ld a, $2
- call Functionce70a
- ret
-
-Functionce091: ; ce091 (33:6091)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, Functionce09e
- call Functioncc9bd
- ret
-
-Functionce09e: ; ce09e (33:609e)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld d, $8
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- sra a
- xor $ff
- inc a
- ld hl, $f
- add hl, bc
- add [hl]
- ld hl, $8
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ret
-
-Functionce0c5: ; ce0c5 (33:60c5)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce0c8: ; ce0c8 (33:60c8)
- dw Functionce0ce
- dw Functionce0f8
- dw Functionce0dd
-
-
-Functionce0ce: ; ce0ce (33:60ce)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- swap a
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-Functionce0dd: ; ce0dd (33:60dd)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- bit 7, a
- jr z, .asm_ce0f0
- ld [hl], a
-.asm_ce0f0
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
-
-Functionce0f8: ; ce0f8 (33:60f8)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr c, .asm_ce105
- call Functioncc9bd
- ret
-.asm_ce105
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-Functionce10e: ; ce10e (33:610e)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce111: ; ce111 (33:6111)
- dw Functionce115
- dw Functionce12a
-
-
-Functionce115: ; ce115 (33:6115)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- ld hl, $8
- add hl, bc
- ld a, [hl]
- sub $28
- ld hl, $10
- add hl, bc
- ld [hl], a
-
-Functionce12a: ; ce12a (33:612a)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- and [hl]
- jr nz, .asm_ce149
- ld hl, $7
- add hl, bc
- dec [hl]
-.asm_ce149
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- inc hl
- srl [hl]
- ret
-
-Functionce15c: ; ce15c (33:615c)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1
- jr nz, .asm_ce189
- ld hl, $7
- add hl, bc
- dec [hl]
-.asm_ce189
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3
- jr nz, .asm_ce197
- ld hl, $8
- add hl, bc
- inc [hl]
-.asm_ce197
- ld hl, $7
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- cp $5a
- jr nc, .asm_ce1aa
- ld a, [hl]
- and a
- jr z, .asm_ce1ac
- dec [hl]
- ret
-.asm_ce1aa
- inc [hl]
- ret
-.asm_ce1ac
- call Functioncc9bd
- ret
-
-Functionce1b0: ; ce1b0 (33:61b0)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $f
- add hl, bc
- cp $40
- jr nc, .asm_ce1df
- inc [hl]
- ret
-.asm_ce1df
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call Functioncc9bd
- ret
-
-Functionce1e7: ; ce1e7 (33:61e7)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce1ea: ; ce1ea (33:61ea)
- dw Functionce1ee
- dw Functionce1fb
-
-
-Functionce1ee: ; ce1ee (33:61ee)
- call Functionce72c
- ld hl, $8
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld [hl], a
-
-Functionce1fb: ; ce1fb (33:61fb)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $30
- call Functionce734
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $8
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $8
- ld d, $30
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- ret
-
-Functionce226: ; ce226 (33:6226)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce229: ; ce229 (33:6229)
- dw Functionce22d
- dw Functionce254
-
-
-Functionce22d: ; ce22d (33:622d)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld [hl], $f
-
-Functionce254: ; ce254 (33:6254)
- ret
-
-Functionce255: ; ce255 (33:6255)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce258: ; ce258 (33:6258)
- dw Functionce260
- dw Functionce274
- dw Functionce278
- dw Functionce289
-
-
-Functionce260: ; ce260 (33:6260)
- call Functionce72c
- ld a, [hBattleTurn]
- and a
- jr nz, .asm_ce26c
- ld a, $f0
- jr .asm_ce26e
-.asm_ce26c
- ld a, $cc
-.asm_ce26e
- ld hl, $f
- add hl, bc
- ld [hl], a
- ret
-
-Functionce274: ; ce274 (33:6274)
- call Functionce29f
- ret
-
-Functionce278: ; ce278 (33:6278)
- call Functionce29f
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- ret nc
- ld a, $4
- call Functionce70a
- ret
-
-Functionce289: ; ce289 (33:6289)
- call Functionce29f
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $d0
- jr nc, .asm_ce29b
- ld a, $4
- call Functionce70a
- ret
-.asm_ce29b
- call Functioncc9bd
- ret
-
-Functionce29f: ; ce29f (33:629f)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $7
- inc [hl]
- srl a
- ld e, a
- ld d, $0
- ld a, [hSGB]
- and a
- jr nz, .asm_ce2b6
- ld hl, Unknown_ce2c4
- jr .asm_ce2b9
-.asm_ce2b6
- ld hl, Unknown_ce2c8
-.asm_ce2b9
- add hl, de
- ld a, [hl]
- ld hl, $f
- add hl, bc
- and [hl]
- ld [wcfc8], a
- ret
-; ce2c4 (33:62c4)
-
-Unknown_ce2c4: ; ce2c4
- db $ff, $aa, $55, $aa
-Unknown_ce2c8: ; ce2c8
- db $ff, $ff, $00, $00
-; ce2cc
-
-Functionce2cc: ; ce2cc (33:62cc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
-rept 2
- dec [hl]
-endr
- ret
-
-Functionce2fd: ; ce2fd (33:62fd)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce300: ; ce300 (33:6300)
- dw Functionce306
- dw Functionce330
- dw Functionce34c
-
-
-Functionce306: ; ce306 (33:6306)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $e0
- jr nz, .asm_ce319
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $2
- ret
-.asm_ce319
- ld d, a
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-Functionce330: ; ce330 (33:6330)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce33a
- dec [hl]
- ret
-.asm_ce33a
- ld [hl], $4
- ld hl, $f
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ld hl, $a
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-Functionce34c: ; ce34c (33:634c)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_ce35b
- ld a, $4
- call Functionce70a
- ret
-.asm_ce35b
- call Functioncc9bd
- ret
-
-Functionce35f: ; ce35f (33:635f)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce362: ; ce362 (33:6362)
- dw Functionce366
- dw Functionce375
-
-
-Functionce366: ; ce366 (33:6366)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- add $81
- call Functionce7bf
-
-Functionce375: ; ce375 (33:6375)
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_ce383
- ld hl, $9
- add hl, bc
- inc [hl]
- ret
-.asm_ce383
- ld hl, $9
- add hl, bc
- dec [hl]
- ret
-
-Functionce389: ; ce389 (33:6389)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce38c: ; ce38c (33:638c)
- dw Functionce392
- dw Functionce39c
- dw Functionce3ae
-
-
-Functionce392: ; ce392 (33:6392)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $c
- ret
-
-Functionce39c: ; ce39c (33:639c)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce3a6
- dec [hl]
- ret
-.asm_ce3a6
- call Functionce72c
- ld a, $20
- call Functionce7bf
-
-Functionce3ae: ; ce3ae (33:63ae)
- ld hl, $a
- add hl, bc
- dec [hl]
- ret
-
-Functionce3b4: ; ce3b4 (33:63b4)
- ld hl, $f
- add hl, bc
- ld a, [hl]
-rept 2
- inc [hl]
-endr
- push af
- ld d, $2
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop af
- ld d, $8
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-Functionce3d2: ; ce3d2 (33:63d2)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_ce3df
- call Functioncc9bd
- ret
-.asm_ce3df
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $8
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- and $7
- ret nz
- ld hl, $a
- add hl, bc
- inc [hl]
- ret
-
-Functionce3ff: ; ce3ff (33:63ff)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce402: ; ce402 (33:6402)
- dw Functionce406
- dw Functionce412
-
-
-Functionce406: ; ce406 (33:6406)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-Functionce412: ; ce412 (33:6412)
- call Functioncc9bd
- ret
-
-Functionce416: ; ce416 (33:6416)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- sra a
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ret
-
-Functionce43a: ; ce43a (33:643a)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce43d: ; ce43d (33:643d)
- dw Functionce443
- dw Functionce465
- dw Functionce490
-
-
-Functionce443: ; ce443 (33:6443)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $3
- add hl, bc
- add [hl]
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- or $8
- ld [hl], a
-
-Functionce465: ; ce465 (33:6465)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce48b
- dec [hl]
- add $8
- ld d, a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-.asm_ce48b
- ld [hl], $10
- call Functionce72c
-
-Functionce490: ; ce490 (33:6490)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call Functioncc9bd
- ret
-
-Functionce49c: ; ce49c (33:649c)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce49f: ; ce49f (33:649f)
- dw Functionce4a3
- dw Functionce4b0
-
-
-Functionce4a3: ; ce4a3 (33:64a3)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, $24
- add [hl]
- call Functionce7bf
-
-Functionce4b0: ; ce4b0 (33:64b0)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $38
- jr nc, .asm_ce4d8
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $7
- add hl, bc
- dec [hl]
- ret
-.asm_ce4d8
- call Functioncc9bd
- ret
-
-Functionce4dc: ; ce4dc (33:64dc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- ret z
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Functionce734
- bit 7, a
- jr nz, .asm_ce4f4
- xor $ff
- inc a
-.asm_ce4f4
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and $1f
- ret nz
- ld hl, $b
- add hl, bc
- srl [hl]
- ret
-
-Functionce508: ; ce508 (33:6508)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $10
- jr nc, .asm_ce52e
-rept 2
- inc [hl]
-endr
- ld d, a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-.asm_ce52e
- call Functioncc9bd
- ret
-
-Functionce532: ; ce532 (33:6532)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- ld a, e
- and $c0
- rlca
- rlca
- add [hl]
- ld [hl], a
- ld a, e
- and $3f
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-Functionce55b: ; ce55b (33:655b)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce55e: ; ce55e (33:655e)
- dw Functionce564
- dw Functionce56e
- dw Functionce577
-
-
-Functionce564: ; ce564 (33:6564)
- ld d, $18
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- jr asm_ce58f
-
-Functionce56e: ; ce56e (33:656e)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $18
-
-Functionce577: ; ce577 (33:6577)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_ce58b
- ld d, a
- add $8
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- jr asm_ce58f
-.asm_ce58b
- call Functioncc9bd
- ret
-asm_ce58f: ; ce58f (33:658f)
- call Functionce6f1
- ret
-
-Functionce593: ; ce593 (33:6593)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce596: ; ce596 (33:6596)
- dw Functionce5b3
- dw Functionce59a
-
-
-Functionce59a: ; ce59a (33:659a)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_ce5b0
- ld hl, $7
- add hl, bc
-rept 2
- dec [hl]
-endr
- ld hl, $8
- add hl, bc
-rept 2
- inc [hl]
-endr
- ret
-.asm_ce5b0
- call Functioncc9bd
-
-Functionce5b3: ; ce5b3 (33:65b3)
- ret
-
-Functionce5b4: ; ce5b4 (33:65b4)
- ld d, $50
- ld hl, $b
- add hl, bc
- ld a, [hl]
-rept 2
- inc [hl]
-endr
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $f
- add hl, bc
- add [hl]
- inc [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-Functionce5dc: ; ce5dc (33:65dc)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $d0
- jr z, .asm_ce5ea
-rept 4
- dec [hl]
-endr
- ret
-.asm_ce5ea
- call Functioncc9bd
- ret
-
-Functionce5ee: ; ce5ee (33:65ee)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce5f1: ; ce5f1 (33:65f1)
- dw Functionce5f9
- dw Functionce60a
- dw Functionce622
- dw Functionce618
-
-
-Functionce5f9: ; ce5f9 (33:65f9)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr nz, asm_ce61c
- call Functionce72c
- ld hl, $a
- add hl, bc
- ld [hl], $ec
-
-Functionce60a: ; ce60a (33:660a)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $4
- jr z, Functionce618
-rept 4
- inc [hl]
-endr
- ret
-
-Functionce618: ; ce618 (33:6618)
- call Functioncc9bd
- ret
-asm_ce61c: ; ce61c (33:661c)
- call Functionce72c
- call Functionce72c
-
-Functionce622: ; ce622 (33:6622)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $d8
- ret z
-rept 4
- dec [hl]
-endr
- ret
-
-Functionce62f: ; ce62f (33:662f)
- call Functionce71e ; ; ; call does not return
-
-Jumptable_ce632: ; ce632 (33:6632)
- dw Functionce63a
- dw Functionce648
- dw Functionce65c
- dw Functionce672
-
-
-Functionce63a: ; ce63a (33:663a)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- call Functionce72c
- ret
-
-Functionce648: ; ce648 (33:6648)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce654
- xor a
-.asm_ce654
- ld [hl], a
- ld hl, $9
- add hl, bc
-rept 2
- inc [hl]
-endr
- ret
-
-Functionce65c: ; ce65c (33:665c)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce668
- xor a
-.asm_ce668
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ret
-
-Functionce672: ; ce672 (33:6672)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce67e
- xor a
-.asm_ce67e
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
- ret
-
-Functionce688: ; ce688 (33:6688)
- ld hl, $7
- add hl, bc
- ld d, [hl]
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld l, a
- and $f0
- ld h, a
- swap a
- or h
- ld h, a
- ld a, l
- and $f
- swap a
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-Functionce6b3: ; ce6b3 (33:66b3)
- ld d, $18
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Functionce6f1
- ret
-
-Functionce6bf: ; ce6bf (33:66bf)
- ld d, $18
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- srl a
- ld hl, $b
- add hl, bc
- add [hl]
- call Functionce6f1
- ret
-
-Functionce6d2: ; ce6d2 (33:66d2)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $20
- jr nc, .asm_ce6ed
- inc [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- xor $ff
- inc a
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-.asm_ce6ed
- call Functioncc9bd
- ret
-
-Functionce6f1: ; ce6f1 (33:66f1)
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-Functionce70a: ; ce70a (33:670a)
- and $f
- ld e, a
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- srl e
- ld hl, $8
- add hl, bc
-.asm_ce719
- dec [hl]
- dec e
- jr nz, .asm_ce719
- ret
-
-Functionce71e: ; ce71e (33:671e)
- pop de
- ld hl, $e
- 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]
-
-Functionce72c: ; ce72c (33:672c)
- ld hl, $e
- add hl, bc
- inc [hl]
- ret
-
-Functionce732: ; ce732 (33:6732)
- add $10
-
-Functionce734: ; ce734 (33:6734)
- and $3f
- cp $20
- jr nc, .asm_ce73f
- call Functionce749
- ld a, h
- ret
-.asm_ce73f
- and $1f
- call Functionce749
- ld a, h
- xor $ff
- inc a
- ret
-
-Functionce749: ; ce749 (33:6749)
- ld e, a
- ld a, d
- ld d, 0
- ld hl, Unknown_ce77f
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $0
-.asm_ce758
- srl a
- jr nc, .asm_ce75d
- add hl, de
-.asm_ce75d
- sla e
- rl d
- and a
- jr nz, .asm_ce758
- ret
-
-Functionce765: ; ce765 (33:6765)
- ld a, e
- call Functionce734
- ld e, a
- ret
-
-Functionce76b: ; ce76b (33:676b)
- ld a, e
- call Functionce732
- ld e, a
- ret
-; ce771 (33:6771)
-
-Functionce771: ; ce771
- ld a, e
- call Functionce734
- ld e, l
- ld d, h
- ret
-; ce778
-
-Functionce778: ; ce778
- ld a, e
- call Functionce732
- ld e, l
- ld d, h
- ret
-; ce77f
-
-Unknown_ce77f: ; ce77f
- sine_wave $100
-; ce7bf
-
-Functionce7bf: ; ce7bf (33:67bf)
- ld hl, $3
- add hl, bc
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld [hl], $0
- ld hl, $d
- add hl, bc
- ld [hl], $ff
- ret
-
-
-Functionce7d1: ; ce7d1
-.asm_ce7d1
- ld hl, $000c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce7e1
- dec [hl]
- call Functionce823
- ld a, [hli]
- push af
- jr .asm_ce7fd
-
-.asm_ce7e1
- ld hl, $000d
- add hl, bc
- inc [hl]
- call Functionce823
- ld a, [hli]
- cp $fe
- jr z, .asm_ce815
- cp $ff
- jr z, .asm_ce807
- push af
- ld a, [hl]
- push hl
- and $3f
- ld hl, $000c
- add hl, bc
- ld [hl], a
- pop hl
-
-.asm_ce7fd
- ld a, [hl]
- and $c0
- srl a
- ld [BattleAnimTemps + 7], a
- pop af
- ret
-
-.asm_ce807
- xor a
- ld hl, $000c
- add hl, bc
- ld [hl], a
- ld hl, $000d
- add hl, bc
-rept 2
- dec [hl]
-endr
- jr .asm_ce7d1
-
-.asm_ce815
- xor a
- ld hl, $000c
- add hl, bc
- ld [hl], a
- dec a
- ld hl, $000d
- add hl, bc
- ld [hl], a
- jr .asm_ce7d1
-; ce823
-
-Functionce823: ; ce823
- ld hl, $0003
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Unknown_ce85e
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $000d
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ret
-; ce83c
-
-Functionce83c: ; ce83c
- ld l, a
- ld h, 0
- ld de, Unknown_ceeae
-rept 2
- add hl, hl
-endr
- add hl, de
- ret
-; ce846
-
-
-Functionce846: ; ce846 (33:6846)
- push hl
- ld l, a
- ld h, 0
-rept 2
- add hl, hl
-endr
- ld de, AnimObjGFX
- add hl, de
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- push bc
- call DecompressRequest2bpp
- pop bc
- ret
-; ce85e (33:685e)
-
-
-Unknown_ce85e: ; ce85e
- dw Unknown_ce9d0
- dw Unknown_ce9d3
- dw Unknown_ce9d6
- dw Unknown_ce9d9
- dw Unknown_ce9dc
- dw Unknown_ce9df
- dw Unknown_ce9e2
- dw Unknown_ce9e5
- dw Unknown_cea6b
- dw Unknown_cea74
- dw Unknown_cea7d
- dw Unknown_cea80
- dw Unknown_cea83
- dw Unknown_cea86
- dw Unknown_cea91
- dw Unknown_cea94
- dw Unknown_cea99
- dw Unknown_cea9e
- dw Unknown_ceaaf
- dw Unknown_ceabc
- dw Unknown_cead3
- dw Unknown_cead6
- dw Unknown_ceadb
- dw Unknown_ceade
- dw Unknown_ceb06
- dw Unknown_ceb0d
- dw Unknown_ceb10
- dw Unknown_ceb13
- dw Unknown_ceb16
- dw Unknown_ceb19
- dw Unknown_ceb1c
- dw Unknown_ceb1f
- dw Unknown_ceb26
- dw Unknown_ceb2b
- dw Unknown_ceb2e
- dw Unknown_ceb37
- dw Unknown_ceb3a
- dw Unknown_ceb3d
- dw Unknown_ceb40
- dw Unknown_ceb43
- dw Unknown_ceb46
- dw Unknown_ceb4b
- dw Unknown_ceb50
- dw Unknown_ceb63
- dw Unknown_ceb68
- dw Unknown_ceb6d
- dw Unknown_ceb70
- dw Unknown_ceb78
- dw Unknown_ceb89
- dw Unknown_ceb8e
- dw Unknown_ceb97
- dw Unknown_ceba0
- dw Unknown_ceba9
- dw Unknown_cebb0
- dw Unknown_cebc1
- dw Unknown_cebca
- dw Unknown_cebcf
- dw Unknown_cebd4
- dw Unknown_cebd9
- dw Unknown_cebdc
- dw Unknown_cebdf
- dw Unknown_cebe2
- dw Unknown_ce9f6
- dw Unknown_cea0b
- dw Unknown_cea20
- dw Unknown_cea35
- dw Unknown_cea50
- dw Unknown_cebe5
- dw Unknown_cebf3
- dw Unknown_cec0f
- dw Unknown_cec20
- dw Unknown_cec25
- dw Unknown_cec2a
- dw Unknown_cec37
- dw Unknown_cec44
- dw Unknown_cec4d
- dw Unknown_cebec
- dw Unknown_cec56
- dw Unknown_cec67
- dw Unknown_cec72
- dw Unknown_cec77
- dw Unknown_cec7c
- dw Unknown_cec7f
- dw Unknown_cec86
- dw Unknown_cec8b
- dw Unknown_cec92
- dw Unknown_ceaf3
- dw Unknown_ceaf6
- dw Unknown_ceb01
- dw Unknown_cec97
- dw Unknown_cec9a
- dw Unknown_cec9d
- dw Unknown_ceca0
- dw Unknown_cecab
- dw Unknown_cecb0
- dw Unknown_cecc9
- dw Unknown_ceccc
- dw Unknown_cece7
- dw Unknown_cecec
- dw Unknown_cecf1
- dw Unknown_cecf4
- dw Unknown_cecf7
- dw Unknown_cecfa
- dw Unknown_ced09
- dw Unknown_ced0c
- dw Unknown_ced19
- dw Unknown_ced22
- dw Unknown_ced2b
- dw Unknown_ced32
- dw Unknown_ced39
- dw Unknown_ced3c
- dw Unknown_ced3f
- dw Unknown_ced44
- dw Unknown_ced49
- dw Unknown_ced4c
- dw Unknown_ced4f
- dw Unknown_ced54
- dw Unknown_ced57
- dw Unknown_ced5a
- dw Unknown_ced5d
- dw Unknown_ced62
- dw Unknown_ced65
- dw Unknown_cecb3
- dw Unknown_ced72
- dw Unknown_ced75
- dw Unknown_ced88
- dw Unknown_cec08
- dw Unknown_ced8b
- dw Unknown_ced8e
- dw Unknown_ced91
- dw Unknown_ced93
- dw Unknown_ced95
- dw Unknown_ced98
- dw Unknown_ced9b
- dw Unknown_ceda8
- dw Unknown_cedb5
- dw Unknown_cedb8
- dw Unknown_cedbb
- dw Unknown_cedbe
- dw Unknown_cedc1
- dw Unknown_cedc4
- dw Unknown_cedc7
- dw Unknown_cedcc
- dw Unknown_cedcf
- dw Unknown_cedd2
- dw Unknown_cedd5
- dw Unknown_cedd8
- dw Unknown_ceddb
- dw Unknown_cedde
- dw Unknown_cede1
- dw Unknown_cede4
- dw Unknown_cede7
- dw Unknown_cedea
- dw Unknown_ceded
- dw Unknown_cedf0
- dw Unknown_cedf3
- dw Unknown_cedf6
- dw Unknown_cedf9
- dw Unknown_cedfc
- dw Unknown_cedff
- dw Unknown_cee02
- dw Unknown_cee05
- dw Unknown_cee08
- dw Unknown_cee0b
- dw Unknown_cee12
- dw Unknown_cee19
- dw Unknown_cee1e
- dw Unknown_cee3d
- dw Unknown_cee5c
- dw Unknown_cee61
- dw Unknown_cee64
- dw Unknown_cee6b
- dw Unknown_cee70
- dw Unknown_cee75
- dw Unknown_cee7e
- dw Unknown_cecbe
- dw Unknown_cee81
- dw Unknown_cee84
- dw Unknown_cee8d
- dw Unknown_cee96
- dw Unknown_cee9f
- dw Unknown_ceea2
- dw Unknown_ceea5
- dw Unknown_ceea8
- dw Unknown_ceeab
-; ce9d0
-
-Unknown_ce9d0: db $00,$06, $fc
-Unknown_ce9d3: db $01,$06, $fc
-Unknown_ce9d6: db $02,$06, $fc
-Unknown_ce9d9: db $03,$06, $fc
-Unknown_ce9dc: db $04,$06, $fc
-Unknown_ce9df: db $05,$06, $fc
-Unknown_ce9e2: db $06,$06, $fc
-Unknown_ce9e5: db $03,$04, $01,$01, $03,$04, $01,$01, $03,$04, $01,$01, $03,$04, $01,$01, $fc
-Unknown_ce9f6: db $4b,$02, $4c,$02, $4d,$04, $4e,$02, $fd,$02, $4e,$02, $fd,$02, $4e,$02, $fd,$02, $4e,$02, $fc
-Unknown_cea0b: db $4b,$42, $4c,$42, $4d,$44, $4e,$42, $fd,$02, $4e,$42, $fd,$02, $4e,$42, $fd,$02, $4e,$42, $fc
-Unknown_cea20: db $4b,$c2, $4c,$c2, $4d,$c4, $4e,$c2, $fd,$02, $4e,$c2, $fd,$02, $4e,$c2, $fd,$02, $4e,$c2, $fc
-Unknown_cea35: db $4b,$01, $4c,$01, $4d,$01, $4f,$01, $50,$01, $51,$01, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fc
-Unknown_cea50: db $4b,$41, $4c,$41, $4d,$41, $4f,$41, $50,$41, $51,$41, $52,$42, $fd,$02, $52,$42, $fd,$02, $52,$42, $fd,$02, $52,$42, $fc
-Unknown_cea6b: db $00,$03, $07,$03, $08,$03, $09,$03, $fc
-Unknown_cea74: db $0a,$07, $0b,$07, $0a,$07, $0b,$47, $fe
-Unknown_cea7d: db $0c,$08, $ff
-Unknown_cea80: db $0d,$08, $ff
-Unknown_cea83: db $0a,$08, $ff
-Unknown_cea86: db $0a,$07, $0b,$07, $0a,$07, $0b,$47, $0a,$07, $ff
-Unknown_cea91: db $0a,$08, $ff
-Unknown_cea94: db $0a,$04, $0e,$04, $fe
-Unknown_cea99: db $0f,$04, $10,$04, $fe
-Unknown_cea9e: db $10,$04, $0f,$04, $0e,$04, $0a,$04, $0e,$04, $0a,$04, $0e,$04, $0a,$04, $fc
-Unknown_ceaaf: db $10,$01, $0f,$01, $12,$01, $11,$01, $12,$01, $0f,$01, $fe
-Unknown_ceabc: db $10,$03, $0f,$03, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$03, $fc
-Unknown_cead3: db $13,$14, $fc
-Unknown_cead6: db $10,$01, $0f,$01, $fe
-Unknown_ceadb: db $14,$08, $ff
-Unknown_ceade: db $17,$04, $16,$08, $15,$08, $16,$08, $17,$04, $17,$04, $16,$48, $15,$48, $16,$48, $17,$04, $fe
-Unknown_ceaf3: db $69,$08, $ff
-Unknown_ceaf6: db $69,$20, $6a,$04, $6b,$04, $6d,$04, $6c,$04, $ff
-Unknown_ceb01: db $6c,$08, $6d,$08, $fe
-Unknown_ceb06: db $18,$04, $19,$04, $1a,$04, $fc
-Unknown_ceb0d: db $1b,$08, $ff
-Unknown_ceb10: db $0f,$08, $ff
-Unknown_ceb13: db $1c,$08, $ff
-Unknown_ceb16: db $0a,$08, $fc
-Unknown_ceb19: db $1d,$08, $ff
-Unknown_ceb1c: db $17,$08, $ff
-Unknown_ceb1f: db $0f,$03, $10,$03, $1e,$03, $ff
-Unknown_ceb26: db $1f,$10, $20,$03, $fc
-Unknown_ceb2b: db $20,$08, $ff
-Unknown_ceb2e: db $20,$08, $21,$08, $1b,$08, $21,$08, $fe
-Unknown_ceb37: db $22,$08, $ff
-Unknown_ceb3a: db $1b,$08, $ff
-Unknown_ceb3d: db $23,$08, $ff
-Unknown_ceb40: db $24,$08, $ff
-Unknown_ceb43: db $25,$08, $ff
-Unknown_ceb46: db $26,$08, $27,$08, $ff
-Unknown_ceb4b: db $28,$08, $29,$08, $fc
-Unknown_ceb50: db $2a,$01, $2b,$01, $2c,$01, $2d,$01, $2e,$01, $2d,$01, $2c,$01, $2b,$01, $2a,$01, $fc
-Unknown_ceb63: db $14,$01, $15,$01, $fe
-Unknown_ceb68: db $2f,$04, $30,$28, $fc
-Unknown_ceb6d: db $31,$08, $ff
-Unknown_ceb70: db $32,$20, $33,$20, $34,$20, $35,$20 ; fallthrough
-Unknown_ceb78: db $fd,$02, $35,$04, $fd,$02, $35,$04, $fd,$02, $35,$04, $fd,$02, $35,$04, $fc
-Unknown_ceb89: db $14,$04, $15,$04, $fe
-Unknown_ceb8e: db $36,$02, $37,$02, $38,$02, $39,$20, $fc
-Unknown_ceb97: db $3a,$02, $3b,$02, $3c,$02, $3d,$20, $fc
-Unknown_ceba0: db $3a,$42, $3b,$42, $3c,$42, $3d,$60, $fc
-Unknown_ceba9: db $3e,$08, $3f,$08, $40,$08, $ff
-Unknown_cebb0: db $40,$02, $fd,$02, $40,$02, $fd,$02, $41,$02, $fd,$02, $41,$02, $fd,$02, $fe
-Unknown_cebc1: db $42,$02, $43,$02, $44,$02, $45,$02, $fe
-Unknown_cebca: db $19,$02, $fd,$02, $fe
-Unknown_cebcf: db $46,$04, $47,$04, $fe
-Unknown_cebd4: db $18,$02, $fd,$02, $fe
-Unknown_cebd9: db $48,$08, $ff
-Unknown_cebdc: db $48,$48, $ff
-Unknown_cebdf: db $49,$08, $ff
-Unknown_cebe2: db $4a,$08, $ff
-Unknown_cebe5: db $20,$10, $1f,$10, $1e,$10, $ff
-Unknown_cebec: db $20,$08, $1f,$08, $1e,$08, $ff
-Unknown_cebf3: db $fd,$14, $55,$28, $54,$28, $53,$14, $fd,$04, $53,$04, $fd,$04, $53,$04, $fd,$04, $53,$04, $fc
-Unknown_cec08: db $1e,$08, $1f,$08, $20,$08, $fc
-Unknown_cec0f: db $fd,$00, $14,$00, $15,$00, $14,$40, $fd,$00, $16,$40, $15,$00, $16,$00, $fe
-Unknown_cec20: db $56,$02, $57,$04, $fc
-Unknown_cec25: db $56,$c2, $57,$c4, $fc
-Unknown_cec2a: db $56,$01, $57,$01, $58,$01, $57,$c1, $58,$c1, $57,$02, $fc
-Unknown_cec37: db $56,$c1, $57,$c1, $58,$c1, $57,$01, $58,$01, $57,$c2, $fc
-Unknown_cec44: db $57,$c1, $58,$c1, $57,$01, $58,$01, $fe
-Unknown_cec4d: db $59,$01, $5a,$01, $5b,$01, $5c,$02, $fc
-Unknown_cec56: db $0a,$0a, $0b,$43, $5d,$43, $0b,$c3, $0a,$82, $0b,$81, $5d,$01, $0b,$01, $fe
-Unknown_cec67: db $0a,$03, $0b,$47, $0a,$07, $0b,$07, $0a,$03, $fe
-Unknown_cec72: db $5e,$20, $5e,$20, $fc
-Unknown_cec77: db $5f,$20, $5f,$20, $fc
-Unknown_cec7c: db $60,$08, $ff
-Unknown_cec7f: db $61,$01, $62,$01, $63,$01, $ff
-Unknown_cec86: db $63,$07, $64,$07, $fe
-Unknown_cec8b: db $65,$01, $66,$01, $67,$01, $ff
-Unknown_cec92: db $67,$07, $68,$07, $fe
-Unknown_cec97: db $6e,$08, $ff
-Unknown_cec9a: db $6f,$08, $ff
-Unknown_cec9d: db $6e,$88, $ff
-Unknown_ceca0: db $18,$04, $70,$04, $71,$04, $72,$04, $73,$04, $fc
-Unknown_cecab: db $74,$04, $75,$04, $fe
-Unknown_cecb0: db $14,$08, $ff
-Unknown_cecb3: db $74,$03, $14,$03, $15,$03, $14,$03, $15,$03, $fc
-Unknown_cecbe: db $14,$00, $15,$00, $14,$00, $15,$00, $74,$0c, $fc
-Unknown_cecc9: db $76,$08, $ff
-Unknown_ceccc: db $77,$01, $78,$01, $79,$01, $7a,$01, $7b,$01, $7c,$01, $7d,$01, $7c,$c1, $7b,$c1, $7a,$c1, $79,$c1, $78,$c1, $77,$c1, $fc
-Unknown_cece7: db $1b,$04, $7e,$04, $fe
-Unknown_cecec: db $1b,$44, $7e,$44, $fe
-Unknown_cecf1: db $7f,$08, $ff
-Unknown_cecf4: db $25,$08, $ff
-Unknown_cecf7: db $80,$08, $ff
-Unknown_cecfa: db $83,$07, $82,$07, $81,$07, $82,$07, $83,$07, $82,$07, $81,$07, $fc
-Unknown_ced09: db $1b,$10, $fc
-Unknown_ced0c: db $fd,$0f, $84,$0f, $85,$0f, $29,$0f, $28,$0f, $86,$20, $fc
-Unknown_ced19: db $1b,$03, $87,$03, $88,$03, $89,$03, $fc
-Unknown_ced22: db $8a,$02, $8b,$02, $8c,$02, $8d,$02, $fc
-Unknown_ced2b: db $61,$02, $62,$02, $63,$02, $ff
-Unknown_ced32: db $65,$02, $66,$02, $67,$02, $ff
-Unknown_ced39: db $8e,$08, $ff
-Unknown_ced3c: db $8e,$48, $ff
-Unknown_ced3f: db $8f,$10, $90,$10, $fe
-Unknown_ced44: db $91,$10, $92,$10, $fe
-Unknown_ced49: db $93,$08, $ff
-Unknown_ced4c: db $1e,$08, $ff
-Unknown_ced4f: db $1b,$07, $94,$07, $fe
-Unknown_ced54: db $95,$08, $ff
-Unknown_ced57: db $96,$08, $ff
-Unknown_ced5a: db $95,$08, $ff
-Unknown_ced5d: db $97,$01, $97,$41, $fe
-Unknown_ced62: db $98,$08, $ff
-Unknown_ced65: db $99,$20, $99,$20, $99,$20, $99,$20, $99,$20, $9a,$08, $ff
-Unknown_ced72: db $9b,$08, $ff
-Unknown_ced75: db $9c,$02, $9d,$02, $9e,$08, $fd,$02, $9e,$02, $fd,$02, $9e,$02, $fd,$02, $9e,$02, $fc
-Unknown_ced88: db $9f,$08, $ff
-Unknown_ced8b: db $0f,$08, $ff
-Unknown_ced8e: db $6b,$18, $fc
-Unknown_ced91: db $a0,$01 ; fallthrough
-Unknown_ced93: db $a1,$01 ; fallthrough
-Unknown_ced95: db $a2,$01, $fc
-Unknown_ced98: db $a3,$08, $ff
-Unknown_ced9b: db $a4,$04, $a5,$04, $a6,$04, $a7,$04, $a6,$44, $a5,$44, $fe
-Unknown_ceda8: db $a8,$04, $a9,$04, $aa,$04, $ab,$04, $aa,$44, $a9,$44, $fe
-Unknown_cedb5: db $1b,$08, $ff
-Unknown_cedb8: db $ac,$08, $ff
-Unknown_cedbb: db $ad,$08, $ff
-Unknown_cedbe: db $ae,$08, $ff
-Unknown_cedc1: db $af,$08, $ff
-Unknown_cedc4: db $b0,$20, $fc
-Unknown_cedc7: db $b1,$07, $b1,$47, $fe
-Unknown_cedcc: db $b2,$08, $ff
-Unknown_cedcf: db $b3,$08, $ff
-Unknown_cedd2: db $b3,$48, $ff
-Unknown_cedd5: db $b3,$88, $ff
-Unknown_cedd8: db $b3,$c8, $ff
-Unknown_ceddb: db $b5,$08, $ff
-Unknown_cedde: db $b5,$48, $ff
-Unknown_cede1: db $b5,$88, $ff
-Unknown_cede4: db $b5,$c8, $ff
-Unknown_cede7: db $b4,$08, $ff
-Unknown_cedea: db $6b,$08, $ff
-Unknown_ceded: db $b6,$08, $ff
-Unknown_cedf0: db $b7,$20, $ff
-Unknown_cedf3: db $1b,$20, $ff
-Unknown_cedf6: db $b8,$20, $ff
-Unknown_cedf9: db $b8,$60, $ff
-Unknown_cedfc: db $b9,$20, $ff
-Unknown_cedff: db $ba,$20, $ff
-Unknown_cee02: db $bb,$60, $ff
-Unknown_cee05: db $bb,$20, $ff
-Unknown_cee08: db $bc,$20, $ff
-Unknown_cee0b: db $bd,$0b, $be,$0b, $1b,$0b, $fc
-Unknown_cee12: db $bf,$04, $c0,$04, $c1,$04, $fc
-Unknown_cee19: db $c2,$20, $c2,$20, $fc
-Unknown_cee1e: db $4b,$02, $4c,$02, $4d,$20, $4d,$20, $4d,$20, $4f,$01, $50,$01, $51,$01, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fc
-Unknown_cee3d: db $4b,$c2, $4c,$c2, $4d,$e0, $4d,$e0, $4d,$e0, $4f,$c1, $50,$c1, $51,$c1, $52,$c2, $fd,$02, $52,$c2, $fd,$02, $52,$c2, $fd,$02, $52,$c2, $fc
-Unknown_cee5c: db $c3,$01, $c3,$c1, $fe
-Unknown_cee61: db $c4,$20, $ff
-Unknown_cee64: db $c5,$04, $c6,$04, $c7,$04, $fc
-Unknown_cee6b: db $c8,$01, $c8,$41, $fe
-Unknown_cee70: db $c9,$03, $05,$03, $fc
-Unknown_cee75: db $ca,$20, $cb,$03, $ca,$03, $cb,$03, $fe
-Unknown_cee7e: db $03,$a0, $ff
-Unknown_cee81: db $cc,$20, $ff
-Unknown_cee84: db $7f,$02, $25,$02, $80,$02, $25,$02, $fe
-Unknown_cee8d: db $cd,$04, $ce,$04, $cd,$c4, $ce,$c4, $fe
-Unknown_cee96: db $cf,$04, $d0,$04, $d1,$04, $d2,$04, $fc
-Unknown_cee9f: db $d3,$20, $ff
-Unknown_ceea2: db $d4,$08, $ff
-Unknown_ceea5: db $d5,$08, $ff
-Unknown_ceea8: db $d6,$08, $ff
-Unknown_ceeab: db $d7,$08, $ff
-; ceeae
-
-
-Unknown_ceeae: ; ceeae
-; ?, length, address
- dbbw $00, $10, Unknown_cf2f6
- dbbw $04, $09, Unknown_cf262
- dbbw $08, $04, Unknown_cf22e
- dbbw $09, $04, Unknown_cf21e
- dbbw $0d, $04, Unknown_cf386
- dbbw $0f, $04, Unknown_cf21e
- dbbw $13, $04, Unknown_cf386
- dbbw $04, $10, Unknown_cf2f6
- dbbw $08, $10, Unknown_cf2f6
- dbbw $08, $10, Unknown_cf336
- dbbw $00, $04, Unknown_cf386
- dbbw $02, $04, Unknown_cf21e
- dbbw $06, $02, Unknown_cf376
- dbbw $07, $02, Unknown_cf376
- dbbw $02, $04, Unknown_cf386
- dbbw $04, $01, Unknown_cf736
- dbbw $05, $01, Unknown_cf736
- dbbw $00, $02, Unknown_cf20e
- dbbw $02, $02, Unknown_cf20e
- dbbw $00, $04, Unknown_cf3a6
- dbbw $00, $01, Unknown_cf736
- dbbw $01, $01, Unknown_cf736
- dbbw $02, $01, Unknown_cf736
- dbbw $03, $01, Unknown_cf736
- dbbw $00, $04, Unknown_cf22e
- dbbw $01, $10, Unknown_cf2f6
- dbbw $05, $10, Unknown_cf2f6
- dbbw $00, $04, Unknown_cf21e
- dbbw $05, $0c, Unknown_cf2b6
- dbbw $02, $04, Unknown_cf22e
- dbbw $06, $01, Unknown_cf736
- dbbw $07, $01, Unknown_cf736
- dbbw $08, $01, Unknown_cf736
- dbbw $04, $04, Unknown_cf21e
- dbbw $09, $16, Unknown_cf3b6
- dbbw $04, $02, Unknown_cf20e
- dbbw $06, $02, Unknown_cf20e
- dbbw $0c, $01, Unknown_cf736
- dbbw $0a, $01, Unknown_cf736
- dbbw $0b, $04, Unknown_cf22e
- dbbw $08, $04, Unknown_cf386
- dbbw $06, $04, Unknown_cf386
- dbbw $00, $05, Unknown_cf40e
- dbbw $03, $06, Unknown_cf422
- dbbw $00, $07, Unknown_cf43a
- dbbw $03, $08, Unknown_cf456
- dbbw $00, $09, Unknown_cf476
- dbbw $00, $04, Unknown_cf49a
- dbbw $02, $04, Unknown_cf4aa
- dbbw $04, $06, Unknown_cf4ba
- dbbw $00, $02, Unknown_cf4da
- dbbw $00, $07, Unknown_cf512
- dbbw $00, $0e, Unknown_cf4da
- dbbw $00, $15, Unknown_cf512
- dbbw $00, $02, Unknown_cf566
- dbbw $00, $06, Unknown_cf566
- dbbw $00, $0a, Unknown_cf566
- dbbw $00, $0e, Unknown_cf566
- dbbw $00, $02, Unknown_cf59e
- dbbw $00, $06, Unknown_cf59e
- dbbw $00, $0a, Unknown_cf59e
- dbbw $00, $0e, Unknown_cf59e
- dbbw $00, $04, Unknown_cf5d6
- dbbw $00, $10, Unknown_cf5d6
- dbbw $00, $1a, Unknown_cf5d6
- dbbw $00, $1a, Unknown_cf63e
- dbbw $0e, $04, Unknown_cf6a6
- dbbw $0e, $08, Unknown_cf6a6
- dbbw $0e, $04, Unknown_cf6c6
- dbbw $0e, $08, Unknown_cf6c6
- dbbw $0e, $04, Unknown_cf6e6
- dbbw $0e, $04, Unknown_cf6f6
- dbbw $00, $06, Unknown_cf706
- dbbw $03, $04, Unknown_cf71e
- dbbw $03, $02, Unknown_cf72e
- dbbw $01, $05, Unknown_cf736
- dbbw $01, $06, Unknown_cf74a
- dbbw $01, $07, Unknown_cf762
- dbbw $01, $03, Unknown_cf762
- dbbw $01, $08, Unknown_cf77e
- dbbw $01, $09, Unknown_cf79e
- dbbw $01, $0a, Unknown_cf7c2
- dbbw $01, $06, Unknown_cf7c2
- dbbw $00, $09, Unknown_cf262
- dbbw $04, $04, Unknown_cf22e
- dbbw $05, $04, Unknown_cf22e
- dbbw $00, $02, Unknown_cf216
- dbbw $02, $02, Unknown_cf216
- dbbw $04, $02, Unknown_cf216
- dbbw $02, $04, Unknown_cf7ea
- dbbw $02, $04, Unknown_cf7fa
- dbbw $02, $02, Unknown_cf376
- dbbw $04, $02, Unknown_cf376
- dbbw $06, $04, Unknown_cf396
- dbbw $08, $02, Unknown_cf376
- dbbw $09, $02, Unknown_cf376
- dbbw $05, $02, Unknown_cf80a
- dbbw $00, $02, Unknown_cf812
- dbbw $00, $05, Unknown_cf812
- dbbw $00, $09, Unknown_cf812
- dbbw $09, $09, Unknown_cf812
- dbbw $00, $04, Unknown_cf836
- dbbw $00, $07, Unknown_cf836
- dbbw $00, $09, Unknown_cf836
- dbbw $09, $09, Unknown_cf836
- dbbw $04, $01, Unknown_cf80e
- dbbw $05, $02, Unknown_cf37e
- dbbw $06, $04, Unknown_cf21e
- dbbw $0a, $04, Unknown_cf21e
- dbbw $0e, $04, Unknown_cf21e
- dbbw $08, $05, Unknown_cf8f6
- dbbw $0d, $03, Unknown_cf90a
- dbbw $01, $08, Unknown_cfa06
- dbbw $03, $08, Unknown_cfa06
- dbbw $05, $08, Unknown_cfa06
- dbbw $07, $08, Unknown_cfa06
- dbbw $06, $04, Unknown_cf22e
- dbbw $07, $04, Unknown_cf22e
- dbbw $0a, $02, Unknown_cf4d2
- dbbw $00, $01, Unknown_cf916
- dbbw $00, $03, Unknown_cf91a
- dbbw $00, $06, Unknown_cf926
- dbbw $00, $09, Unknown_cf93e
- dbbw $00, $0c, Unknown_cf962
- dbbw $00, $0e, Unknown_cf992
- dbbw $00, $0f, Unknown_cf9ca
- dbbw $04, $04, Unknown_cf21e
- dbbw $08, $04, Unknown_cf21e
- dbbw $0d, $01, Unknown_cf736
- dbbw $0e, $04, Unknown_cfa26
- dbbw $10, $01, Unknown_cf736
- dbbw $11, $01, Unknown_cf736
- dbbw $04, $02, Unknown_cf37e
- dbbw $05, $02, Unknown_cf37e
- dbbw $0a, $04, Unknown_cf386
- dbbw $00, $08, Unknown_cfa36
- dbbw $00, $0c, Unknown_cfa76
- dbbw $00, $10, Unknown_cfa36
- dbbw $09, $02, Unknown_cfaa6
- dbbw $09, $04, Unknown_cfaa6
- dbbw $09, $06, Unknown_cfaa6
- dbbw $09, $08, Unknown_cfaa6
- dbbw $12, $05, Unknown_cfac6
- dbbw $00, $04, Unknown_cfada
- dbbw $04, $04, Unknown_cfada
- dbbw $08, $04, Unknown_cfada
- dbbw $0c, $04, Unknown_cfada
- dbbw $00, $06, Unknown_cfaea
- dbbw $04, $04, Unknown_cf21e
- dbbw $0a, $04, Unknown_cf386
- dbbw $15, $04, Unknown_cf4aa
- dbbw $04, $04, Unknown_cf4aa
- dbbw $0c, $04, Unknown_cf386
- dbbw $0a, $04, Unknown_cfb02
- dbbw $0c, $04, Unknown_cf21e
- dbbw $00, $24, Unknown_cfb12
- dbbw $0d, $02, Unknown_cfba2
- dbbw $0d, $04, Unknown_cfba2
- dbbw $0d, $06, Unknown_cfba2
- dbbw $02, $08, Unknown_cfbba
- dbbw $08, $07, Unknown_cfbda
- dbbw $08, $05, Unknown_cfbda
- dbbw $08, $03, Unknown_cfbda
- dbbw $00, $10, Unknown_cf2b6
- dbbw $00, $09, Unknown_cfbf6
- dbbw $06, $09, Unknown_cfbf6
- dbbw $0c, $09, Unknown_cfbf6
- dbbw $12, $09, Unknown_cfbf6
- dbbw $18, $09, Unknown_cfbf6
- dbbw $1e, $09, Unknown_cfbf6
- dbbw $24, $09, Unknown_cfbf6
- dbbw $2a, $09, Unknown_cfbf6
- dbbw $03, $04, Unknown_cfc1a
- dbbw $12, $04, Unknown_cf21e
- dbbw $10, $04, Unknown_cf386
- dbbw $16, $01, Unknown_cf736
- dbbw $17, $04, Unknown_cf22e
- dbbw $18, $04, Unknown_cf21e
- dbbw $1c, $04, Unknown_cf21e
- dbbw $20, $03, Unknown_cf21e
- dbbw $23, $04, Unknown_cf386
- dbbw $25, $03, Unknown_cf21e
- dbbw $17, $04, Unknown_cf21e
- dbbw $0a, $10, Unknown_cf2f6
- dbbw $10, $10, Unknown_cf2b6
- dbbw $00, $10, Unknown_cf2b6
- dbbw $04, $04, Unknown_cf21e
- dbbw $08, $02, Unknown_cf20e
- dbbw $20, $06, Unknown_cfc2a
- dbbw $08, $01, Unknown_cf736
- dbbw $04, $04, Unknown_cf21e
- dbbw $1a, $04, Unknown_cf4aa
- dbbw $16, $09, Unknown_cf262
- dbbw $10, $10, Unknown_cfc42
- dbbw $09, $06, Unknown_cfc82
- dbbw $11, $09, Unknown_cf23e
- dbbw $0e, $04, Unknown_cf21e
- dbbw $0b, $04, Unknown_cf4aa
- dbbw $1c, $06, Unknown_cf22e
- dbbw $20, $10, Unknown_cfc42
- dbbw $05, $06, Unknown_cfc9a
- dbbw $0b, $04, Unknown_cf21e
- dbbw $09, $04, Unknown_cfcb2
- dbbw $0b, $04, Unknown_cf386
- dbbw $11, $0d, Unknown_cfcc2
- dbbw $00, $09, Unknown_cf23e
- dbbw $09, $09, Unknown_cf23e
- dbbw $00, $0c, Unknown_cf286
- dbbw $06, $0c, Unknown_cf286
- dbbw $0c, $0c, Unknown_cf286
- dbbw $12, $0c, Unknown_cf286
- dbbw $00, $0d, Unknown_cfcc2
- dbbw $00, $07, Unknown_cf85a
- dbbw $00, $06, Unknown_cf8ae
- dbbw $00, $0e, Unknown_cf876
- dbbw $00, $0c, Unknown_cf8c6
-; cf20e
-
-
-Unknown_cf20e:
- db $f8, $fc, $00, $00
- db $00, $fc, $01, $00
-
-Unknown_cf216:
- db $fc, $f8, $00, $00
- db $fc, $00, $01, $00
-
-Unknown_cf21e:
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $02, $00
- db $00, $00, $03, $00
-
-Unknown_cf22e:
- db $f8, $f8, $00, $00
- db $f8, $00, $00, $20
- db $00, $f8, $00, $40
- db $00, $00, $00, $60
-
-Unknown_cf23e:
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $02, $00
- db $fc, $f4, $03, $00
- db $fc, $fc, $04, $00
- db $fc, $04, $05, $00
- db $04, $f4, $06, $00
- db $04, $fc, $07, $00
- db $04, $04, $08, $00
-
-Unknown_cf262:
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $00, $20
- db $fc, $f4, $02, $00
- db $fc, $fc, $03, $00
- db $fc, $04, $02, $60
- db $04, $f4, $00, $40
- db $04, $fc, $01, $60
- db $04, $04, $00, $60
-
-Unknown_cf286:
- db $f0, $f4, $00, $00
- db $f0, $fc, $01, $00
- db $f0, $04, $02, $00
- db $f8, $f4, $03, $00
- db $f8, $fc, $04, $00
- db $f8, $04, $05, $00
- db $00, $f4, $05, $60
- db $00, $fc, $04, $60
- db $00, $04, $03, $60
- db $08, $f4, $02, $60
- db $08, $fc, $01, $60
- db $08, $04, $00, $60
-
-Unknown_cf2b6:
- db $f0, $f0, $00, $00
- db $f0, $f8, $01, $00
- db $f0, $00, $02, $00
- db $f0, $08, $03, $00
- db $f8, $f0, $04, $00
- db $f8, $f8, $05, $00
- db $f8, $00, $06, $00
- db $f8, $08, $07, $00
- db $00, $f0, $08, $00
- db $00, $f8, $09, $00
- db $00, $00, $0a, $00
- db $00, $08, $0b, $00
- db $08, $f0, $0c, $00
- db $08, $f8, $0d, $00
- db $08, $00, $0e, $00
- db $08, $08, $0f, $00
-
-Unknown_cf2f6:
- db $f0, $f0, $00, $00
- db $f0, $f8, $01, $00
- db $f8, $f0, $02, $00
- db $f8, $f8, $03, $00
- db $f0, $00, $01, $20
- db $f0, $08, $00, $20
- db $f8, $00, $03, $20
- db $f8, $08, $02, $20
- db $00, $f0, $02, $40
- db $00, $f8, $03, $40
- db $08, $f0, $00, $40
- db $08, $f8, $01, $40
- db $00, $00, $03, $60
- db $00, $08, $02, $60
- db $08, $00, $01, $60
- db $08, $08, $00, $60
-
-Unknown_cf336:
- db $ec, $ec, $00, $00
- db $ec, $f4, $01, $00
- db $f4, $ec, $02, $00
- db $f4, $f4, $03, $00
- db $ec, $04, $01, $20
- db $ec, $0c, $00, $20
- db $f4, $04, $03, $20
- db $f4, $0c, $02, $20
- db $04, $ec, $02, $40
- db $04, $f4, $03, $40
- db $0c, $ec, $00, $40
- db $0c, $f4, $01, $40
- db $04, $04, $03, $60
- db $04, $0c, $02, $60
- db $0c, $04, $01, $60
- db $0c, $0c, $00, $60
-
-Unknown_cf376:
- db $fc, $f8, $00, $00
- db $fc, $00, $00, $20
-
-Unknown_cf37e:
- db $00, $f8, $00, $00
- db $00, $00, $00, $20
-
-Unknown_cf386:
- db $f8, $f8, $00, $00
- db $f8, $00, $00, $20
- db $00, $f8, $01, $00
- db $00, $00, $01, $20
-
-Unknown_cf396:
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $00, $40
- db $00, $00, $01, $40
-
-Unknown_cf3a6:
- db $fa, $f8, $02, $00
- db $02, $f8, $03, $00
- db $f6, $00, $02, $00
- db $fe, $00, $03, $00
-
-Unknown_cf3b6:
- db $08, $a8, $01, $00
- db $00, $b0, $02, $00
- db $00, $b8, $03, $00
- db $00, $c0, $00, $00
- db $00, $c8, $03, $00
- db $00, $d0, $00, $00
- db $00, $d8, $03, $00
- db $00, $e0, $00, $00
- db $00, $e8, $03, $00
- db $00, $f0, $00, $00
- db $00, $f8, $01, $00
- db $f8, $00, $02, $00
- db $f8, $08, $03, $00
- db $f8, $10, $00, $00
- db $f8, $18, $03, $00
- db $f8, $20, $00, $00
- db $f8, $28, $03, $00
- db $f8, $30, $00, $00
- db $f8, $38, $03, $00
- db $f8, $40, $00, $00
- db $f8, $48, $01, $00
- db $f0, $50, $02, $00
-
-Unknown_cf40e:
- db $ec, $f8, $00, $00
- db $ec, $00, $00, $20
- db $f4, $f8, $01, $00
- db $f4, $00, $01, $20
- db $fc, $fc, $02, $00
-
-Unknown_cf422:
- db $e4, $f8, $00, $00
- db $e4, $00, $00, $20
- db $ec, $f8, $01, $00
- db $ec, $00, $01, $20
- db $f4, $fc, $02, $00
- db $fc, $fc, $02, $00
-
-Unknown_cf43a:
- db $dc, $f8, $00, $00
- db $dc, $00, $00, $20
- db $e4, $f8, $01, $00
- db $e4, $00, $01, $20
- db $ec, $fc, $02, $00
- db $f4, $fc, $02, $00
- db $fc, $fc, $02, $00
-
-Unknown_cf456:
- db $d4, $f8, $00, $00
- db $d4, $00, $00, $20
- db $dc, $f8, $01, $00
- db $dc, $00, $01, $20
- db $e4, $fc, $02, $00
- db $ec, $fc, $02, $00
- db $f4, $fc, $02, $00
- db $fc, $fc, $02, $00
-
-Unknown_cf476:
- db $cc, $f8, $00, $00
- db $cc, $00, $00, $20
- db $d4, $f8, $01, $00
- db $d4, $00, $01, $20
- db $dc, $fc, $02, $00
- db $e4, $fc, $02, $00
- db $ec, $fc, $02, $00
- db $f4, $fc, $02, $00
- db $fc, $fc, $02, $00
-
-Unknown_cf49a:
- db $f8, $f8, $00, $00
- db $f8, $00, $00, $20
- db $00, $f8, $01, $00
- db $00, $00, $00, $60
-
-Unknown_cf4aa:
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $01, $60
- db $00, $00, $00, $60
-
-Unknown_cf4ba:
- db $f4, $f8, $00, $00
- db $f4, $00, $01, $00
- db $fc, $f8, $02, $00
- db $fc, $00, $03, $00
- db $04, $f8, $04, $00
- db $04, $00, $05, $00
-
-Unknown_cf4d2:
- db $fd, $f8, $00, $00
- db $f9, $00, $00, $00
-
-Unknown_cf4da:
- db $f8, $f4, $00, $00
- db $f8, $04, $00, $00
- db $e8, $f4, $00, $00
- db $e8, $04, $00, $00
- db $f0, $ec, $00, $00
- db $f0, $f4, $01, $00
- db $f0, $fc, $00, $00
- db $f0, $04, $01, $00
- db $f0, $0c, $00, $00
- db $f8, $e4, $00, $00
- db $f8, $ec, $01, $00
- db $f8, $fc, $01, $00
- db $f8, $0c, $01, $00
- db $f8, $14, $00, $00
-
-Unknown_cf512:
- db $f0, $f4, $00, $00
- db $f0, $04, $00, $00
- db $f8, $ec, $00, $00
- db $f8, $f4, $01, $00
- db $f8, $fc, $00, $00
- db $f8, $04, $01, $00
- db $f8, $0c, $00, $00
- db $e0, $f4, $00, $00
- db $e0, $04, $00, $00
- db $e8, $ec, $00, $00
- db $e8, $f4, $01, $00
- db $e8, $fc, $00, $00
- db $e8, $04, $01, $00
- db $e8, $0c, $00, $00
- db $f0, $e4, $00, $00
- db $f0, $ec, $01, $00
- db $f0, $fc, $01, $00
- db $f0, $0c, $01, $00
- db $f0, $14, $00, $00
- db $f8, $e4, $01, $00
- db $f8, $14, $01, $00
-
-Unknown_cf566:
- db $cc, $f8, $00, $00
- db $cc, $00, $01, $00
- db $d4, $f8, $02, $00
- db $d4, $00, $03, $00
- db $dc, $f8, $04, $00
- db $dc, $00, $05, $00
- db $e4, $f8, $06, $00
- db $e4, $00, $07, $00
- db $ec, $f8, $08, $00
- db $ec, $00, $09, $00
- db $f4, $f8, $0a, $00
- db $f4, $00, $0b, $00
- db $fc, $f8, $0c, $00
- db $fc, $00, $0d, $00
-
-Unknown_cf59e:
- db $cc, $f8, $0c, $00
- db $cc, $00, $0d, $00
- db $d4, $f8, $08, $00
- db $d4, $00, $09, $00
- db $dc, $f8, $04, $00
- db $dc, $00, $05, $00
- db $e4, $f8, $00, $00
- db $e4, $00, $01, $00
- db $ec, $f8, $02, $00
- db $ec, $00, $03, $00
- db $f4, $00, $02, $00
- db $f4, $08, $03, $00
- db $fc, $00, $0a, $00
- db $fc, $08, $0b, $00
-
-Unknown_cf5d6:
- db $0c, $f0, $00, $40
- db $0c, $f8, $02, $40
- db $0c, $00, $02, $60
- db $0c, $08, $00, $60
- db $fc, $e8, $09, $20
- db $fc, $f0, $08, $20
- db $fc, $f8, $06, $00
- db $fc, $00, $07, $00
- db $fc, $08, $08, $00
- db $fc, $10, $09, $00
- db $04, $e8, $01, $20
- db $04, $f0, $00, $20
- db $04, $f8, $0c, $00
- db $04, $00, $0d, $00
- db $04, $08, $00, $00
- db $04, $10, $01, $00
- db $ec, $f0, $00, $00
- db $ec, $f8, $02, $00
- db $ec, $00, $02, $20
- db $ec, $08, $00, $20
- db $f4, $e8, $03, $20
- db $f4, $f0, $02, $20
- db $f4, $f8, $04, $00
- db $f4, $00, $05, $00
- db $f4, $08, $02, $00
- db $f4, $10, $03, $00
-
-Unknown_cf63e:
- db $ec, $f0, $00, $00
- db $ec, $f8, $02, $00
- db $ec, $00, $02, $20
- db $ec, $08, $00, $20
- db $f4, $ec, $00, $00
- db $f4, $f4, $01, $00
- db $f4, $f8, $05, $20
- db $f4, $00, $04, $20
- db $f4, $04, $01, $20
- db $f4, $0c, $00, $20
- db $fc, $ec, $02, $00
- db $fc, $f4, $03, $00
- db $fc, $f8, $07, $20
- db $fc, $00, $06, $20
- db $fc, $04, $03, $20
- db $fc, $0c, $02, $20
- db $04, $ec, $04, $00
- db $04, $f4, $05, $00
- db $04, $f8, $0d, $20
- db $04, $00, $0c, $20
- db $04, $04, $05, $20
- db $04, $0c, $04, $20
- db $0c, $f0, $00, $40
- db $0c, $f8, $02, $40
- db $0c, $00, $02, $60
- db $0c, $08, $00, $60
-
-Unknown_cf6a6:
- db $e8, $fc, $02, $00
- db $10, $fc, $02, $60
- db $fc, $e8, $01, $00
- db $fc, $10, $01, $60
- db $e0, $fc, $02, $00
- db $18, $fc, $02, $60
- db $fc, $e0, $01, $00
- db $fc, $18, $01, $60
-
-Unknown_cf6c6:
- db $ed, $ed, $00, $20
- db $ed, $0b, $00, $00
- db $0b, $ed, $00, $60
- db $0b, $0b, $00, $40
- db $e5, $e5, $00, $20
- db $e5, $13, $00, $00
- db $13, $e5, $00, $60
- db $13, $13, $00, $40
-
-Unknown_cf6e6:
- db $ec, $fc, $02, $00
- db $0c, $fc, $02, $60
- db $fc, $ec, $01, $00
- db $fc, $0c, $01, $60
-
-Unknown_cf6f6:
- db $f0, $f0, $00, $20
- db $f0, $08, $00, $00
- db $08, $f0, $00, $60
- db $08, $08, $00, $40
-
-Unknown_cf706:
- db $e8, $fc, $00, $00
- db $f0, $fa, $00, $00
- db $f8, $f8, $00, $00
- db $00, $f8, $00, $00
- db $08, $fa, $00, $00
- db $10, $fc, $00, $00
-
-Unknown_cf71e:
- db $fc, $f0, $00, $20
- db $fa, $f8, $00, $20
- db $fa, $00, $00, $00
- db $fc, $08, $00, $00
-
-Unknown_cf72e:
- db $fc, $f8, $00, $60
- db $fc, $00, $00, $40
-
-Unknown_cf736:
- db $fc, $fc, $00, $00
- db $fc, $f4, $01, $00
- db $fc, $fc, $01, $20
- db $04, $f4, $01, $40
- db $04, $fc, $01, $60
-
-Unknown_cf74a:
- db $fc, $fc, $00, $00
- db $02, $f6, $00, $00
- db $02, $ee, $01, $00
- db $02, $f6, $01, $20
- db $0a, $ee, $01, $40
- db $0a, $f6, $01, $60
-
-Unknown_cf762:
- db $fc, $fc, $00, $00
- db $02, $f6, $00, $00
- db $08, $f0, $00, $00
- db $08, $e8, $01, $00
- db $08, $f0, $01, $20
- db $10, $e8, $01, $40
- db $10, $f0, $01, $60
-
-Unknown_cf77e:
- db $fc, $fc, $00, $00
- db $02, $f6, $00, $00
- db $08, $f0, $00, $00
- db $0e, $ea, $00, $00
- db $0e, $e2, $01, $00
- db $0e, $ea, $01, $20
- db $16, $e2, $01, $40
- db $16, $ea, $01, $60
-
-Unknown_cf79e:
- db $fc, $fc, $00, $00
- db $02, $f6, $00, $00
- db $08, $f0, $00, $00
- db $0e, $ea, $00, $00
- db $14, $e4, $00, $00
- db $14, $dc, $01, $00
- db $14, $e4, $01, $20
- db $1c, $dc, $01, $40
- db $1c, $e4, $01, $60
-
-Unknown_cf7c2:
- db $fc, $fc, $00, $00
- db $02, $f6, $00, $00
- db $08, $f0, $00, $00
- db $0e, $ea, $00, $00
- db $14, $e4, $00, $00
- db $1a, $de, $00, $00
- db $1a, $d6, $01, $00
- db $1a, $de, $01, $20
- db $22, $d6, $01, $40
- db $22, $de, $01, $60
-
-Unknown_cf7ea:
- db $fc, $f0, $00, $00
- db $fc, $f8, $01, $00
- db $fc, $00, $01, $20
- db $fc, $08, $00, $20
-
-Unknown_cf7fa:
- db $fc, $f0, $02, $00
- db $fc, $f8, $01, $00
- db $fc, $00, $01, $20
- db $fc, $08, $02, $20
-
-Unknown_cf80a:
- db $f8, $fc, $00, $00
-
-Unknown_cf80e:
- db $00, $fc, $00, $00
-
-Unknown_cf812:
- db $fc, $e4, $00, $00
- db $fc, $ec, $01, $00
- db $fc, $f4, $02, $00
- db $fc, $fc, $03, $00
- db $fc, $04, $04, $00
- db $fc, $0c, $05, $00
- db $fc, $14, $06, $00
- db $f4, $0c, $07, $00
- db $f4, $14, $08, $00
-
-Unknown_cf836:
- db $f4, $e4, $08, $20
- db $f4, $ec, $07, $20
- db $fc, $e4, $06, $20
- db $fc, $ec, $05, $20
- db $fc, $f4, $04, $20
- db $fc, $fc, $03, $20
- db $fc, $04, $02, $20
- db $fc, $0c, $01, $20
- db $fc, $14, $00, $20
-
-Unknown_cf85a:
- db $00, $e4, $00, $10
- db $00, $ec, $01, $10
- db $00, $f4, $02, $10
- db $00, $fc, $03, $10
- db $00, $04, $04, $10
- db $00, $0c, $05, $10
- db $00, $14, $06, $10
-
-Unknown_cf876:
- db $f8, $e4, $00, $10
- db $00, $e4, $01, $10
- db $f8, $ec, $02, $10
- db $00, $ec, $03, $10
- db $f8, $f4, $04, $10
- db $00, $f4, $05, $10
- db $f8, $fc, $06, $10
- db $00, $fc, $07, $10
- db $f8, $04, $08, $10
- db $00, $04, $09, $10
- db $f8, $0c, $0a, $10
- db $00, $0c, $0b, $10
- db $f8, $14, $0c, $10
- db $00, $14, $0d, $10
-
-Unknown_cf8ae:
- db $00, $e8, $00, $11
- db $00, $f0, $01, $11
- db $00, $f8, $02, $11
- db $00, $00, $03, $11
- db $00, $08, $04, $11
- db $00, $10, $05, $11
-
-Unknown_cf8c6:
- db $00, $e8, $00, $11
- db $08, $e8, $01, $11
- db $00, $f0, $02, $11
- db $08, $f0, $03, $11
- db $00, $f8, $04, $11
- db $08, $f8, $05, $11
- db $00, $00, $06, $11
- db $08, $00, $07, $11
- db $00, $08, $08, $11
- db $08, $08, $09, $11
- db $00, $10, $0a, $11
- db $08, $10, $0b, $11
-
-Unknown_cf8f6:
- db $f4, $04, $00, $00
- db $fc, $f4, $01, $00
- db $fc, $fc, $02, $00
- db $fc, $04, $03, $00
- db $04, $f4, $04, $00
-
-Unknown_cf90a:
- db $fc, $f4, $00, $00
- db $fc, $fc, $01, $00
- db $fc, $04, $02, $00
-
-Unknown_cf916:
- db $e4, $0c, $01, $60
-
-Unknown_cf91a:
- db $e4, $0c, $00, $00
- db $e4, $04, $01, $60
- db $ec, $0c, $01, $60
-
-Unknown_cf926:
- db $e4, $0c, $01, $00
- db $e4, $04, $00, $00
- db $e4, $fc, $01, $60
- db $ec, $0c, $00, $00
- db $ec, $04, $01, $60
- db $f4, $0c, $01, $60
-
-Unknown_cf93e:
- db $e4, $f4, $01, $60
- db $e4, $fc, $00, $00
- db $e4, $04, $01, $00
- db $ec, $fc, $01, $60
- db $ec, $04, $00, $00
- db $ec, $0c, $01, $00
- db $f4, $04, $01, $60
- db $f4, $0c, $00, $00
- db $fc, $0c, $01, $60
-
-Unknown_cf962:
- db $e4, $ec, $01, $60
- db $e4, $f4, $00, $00
- db $e4, $fc, $01, $00
- db $ec, $f4, $01, $60
- db $ec, $fc, $00, $00
- db $ec, $04, $01, $00
- db $f4, $fc, $01, $60
- db $f4, $04, $00, $00
- db $f4, $0c, $01, $00
- db $fc, $04, $01, $60
- db $fc, $0c, $00, $00
- db $04, $0c, $01, $60
-
-Unknown_cf992:
- db $e4, $ec, $00, $00
- db $e4, $f4, $01, $00
- db $ec, $ec, $01, $60
- db $ec, $f4, $00, $00
- db $ec, $fc, $01, $00
- db $f4, $f4, $01, $60
- db $f4, $fc, $00, $00
- db $f4, $04, $01, $00
- db $fc, $fc, $01, $60
- db $fc, $04, $00, $00
- db $fc, $0c, $01, $00
- db $04, $04, $01, $60
- db $04, $0c, $00, $00
- db $0c, $0c, $01, $60
-
-Unknown_cf9ca:
- db $e4, $ec, $01, $00
- db $ec, $ec, $00, $00
- db $ec, $f4, $01, $00
- db $f4, $ec, $01, $60
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $fc, $f4, $01, $60
- db $fc, $fc, $00, $00
- db $fc, $04, $01, $00
- db $04, $fc, $01, $60
- db $04, $04, $00, $00
- db $04, $0c, $01, $00
- db $0c, $04, $01, $60
- db $0c, $0c, $00, $00
- db $14, $0c, $01, $60
-
-Unknown_cfa06:
- db $f0, $f8, $00, $00
- db $f8, $f8, $01, $00
- db $f0, $00, $00, $20
- db $f8, $00, $01, $20
- db $00, $f8, $01, $40
- db $08, $f8, $00, $40
- db $00, $00, $01, $60
- db $08, $00, $00, $60
-
-Unknown_cfa26:
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $01, $60
- db $00, $00, $00, $60
-
-Unknown_cfa36:
- db $f4, $f8, $00, $00
- db $f4, $00, $01, $00
- db $fc, $f8, $02, $00
- db $fc, $00, $03, $00
- db $fc, $f8, $00, $00
- db $fc, $00, $01, $00
- db $04, $f8, $02, $00
- db $04, $00, $03, $00
- db $ec, $f8, $00, $00
- db $ec, $00, $01, $00
- db $f4, $f8, $02, $00
- db $f4, $00, $03, $00
- db $04, $f8, $00, $00
- db $04, $00, $01, $00
- db $0c, $f8, $02, $00
- db $0c, $00, $03, $00
-
-Unknown_cfa76:
- db $f0, $f8, $00, $00
- db $f0, $00, $01, $00
- db $f8, $f8, $02, $00
- db $f8, $00, $03, $00
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $02, $00
- db $00, $00, $03, $00
- db $00, $f8, $00, $00
- db $00, $00, $01, $00
- db $08, $f8, $02, $00
- db $08, $00, $03, $00
-
-Unknown_cfaa6:
- db $fc, $fc, $00, $00
- db $f8, $04, $00, $00
- db $f4, $0c, $00, $00
- db $f0, $14, $00, $00
- db $ec, $1c, $00, $00
- db $e8, $24, $00, $00
- db $e0, $2c, $00, $00
- db $dc, $34, $00, $00
-
-Unknown_cfac6:
- db $ec, $fc, $00, $00
- db $f4, $fc, $01, $00
- db $fc, $fc, $02, $00
- db $04, $fc, $01, $40
- db $0c, $fc, $00, $40
-
-Unknown_cfada:
- db $fc, $f0, $00, $00
- db $fc, $f8, $01, $00
- db $fc, $00, $02, $00
- db $fc, $08, $03, $00
-
-Unknown_cfaea:
- db $f8, $f4, $00, $00
- db $f8, $fc, $01, $00
- db $f8, $04, $02, $00
- db $00, $f4, $03, $00
- db $00, $fc, $04, $00
- db $00, $04, $05, $00
-
-Unknown_cfb02:
- db $f8, $f8, $00, $00
- db $f8, $00, $05, $00
- db $00, $f8, $01, $00
- db $00, $00, $05, $00
-
-Unknown_cfb12:
- db $e4, $08, $00, $00
- db $e4, $10, $01, $00
- db $ec, $f8, $02, $00
- db $ec, $00, $03, $00
- db $ec, $08, $04, $00
- db $ec, $10, $05, $00
- db $ec, $18, $06, $00
- db $f4, $f0, $07, $00
- db $f4, $f8, $08, $00
- db $f4, $00, $09, $00
- db $f4, $08, $0a, $00
- db $f4, $10, $0b, $00
- db $f4, $18, $0c, $00
- db $f4, $20, $0d, $00
- db $fc, $e8, $0e, $00
- db $fc, $f0, $0f, $00
- db $fc, $f8, $10, $00
- db $fc, $00, $11, $00
- db $fc, $08, $12, $00
- db $fc, $10, $13, $00
- db $04, $d8, $14, $00
- db $04, $e0, $15, $00
- db $04, $e8, $16, $00
- db $04, $f0, $17, $00
- db $04, $f8, $18, $00
- db $04, $00, $19, $00
- db $04, $08, $1a, $00
- db $04, $10, $1b, $00
- db $04, $18, $1c, $00
- db $0c, $d8, $1d, $00
- db $0c, $e0, $1e, $00
- db $0c, $f0, $1f, $00
- db $0c, $f8, $20, $00
- db $0c, $00, $21, $00
- db $0c, $08, $22, $00
- db $14, $00, $23, $00
-
-Unknown_cfba2:
- db $04, $f8, $02, $00
- db $04, $00, $03, $00
- db $fc, $f8, $01, $00
- db $fc, $00, $01, $20
- db $f4, $f8, $00, $00
- db $f4, $00, $00, $20
-
-Unknown_cfbba:
- db $f8, $f0, $00, $00
- db $f8, $f8, $01, $00
- db $f8, $00, $02, $00
- db $f8, $08, $03, $00
- db $00, $f0, $04, $00
- db $00, $f8, $05, $00
- db $00, $00, $06, $00
- db $00, $08, $07, $00
-
-Unknown_cfbda:
- db $f4, $fc, $00, $00
- db $fc, $fc, $00, $00
- db $04, $fc, $00, $00
- db $ec, $fc, $00, $00
- db $0c, $fc, $00, $00
- db $e4, $fc, $00, $00
- db $14, $fc, $00, $00
-
-Unknown_cfbf6:
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $02, $00
- db $fc, $f4, $03, $00
- db $fc, $fc, $04, $00
- db $fc, $04, $05, $00
- db $04, $f4, $00, $40
- db $04, $fc, $01, $40
- db $04, $04, $02, $40
-
-Unknown_cfc1a:
- db $fc, $f0, $00, $00
- db $fc, $f8, $01, $00
- db $fc, $00, $01, $20
- db $fc, $08, $00, $20
-
-Unknown_cfc2a:
- db $fc, $e8, $00, $00
- db $fc, $f0, $01, $00
- db $fc, $f8, $02, $00
- db $fc, $00, $02, $20
- db $fc, $08, $01, $20
- db $fc, $10, $00, $20
-
-Unknown_cfc42:
- db $f0, $f0, $00, $00
- db $f0, $f8, $01, $00
- db $f0, $00, $02, $00
- db $f0, $08, $00, $20
- db $f8, $f0, $03, $00
- db $f8, $f8, $04, $00
- db $f8, $00, $04, $20
- db $f8, $08, $05, $00
- db $00, $f0, $05, $60
- db $00, $f8, $04, $40
- db $00, $00, $04, $60
- db $00, $08, $03, $60
- db $08, $f0, $00, $40
- db $08, $f8, $02, $60
- db $08, $00, $01, $60
- db $08, $08, $00, $60
-
-Unknown_cfc82:
- db $f8, $f0, $00, $00
- db $f8, $f8, $01, $00
- db $f8, $00, $00, $60
- db $00, $f8, $00, $00
- db $00, $00, $01, $00
- db $00, $08, $00, $60
-
-Unknown_cfc9a:
- db $f8, $0c, $00, $00
- db $f8, $14, $01, $00
- db $00, $fc, $02, $00
- db $00, $04, $03, $00
- db $00, $0c, $04, $00
- db $00, $14, $05, $00
-
-Unknown_cfcb2:
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $60
- db $00, $f8, $01, $00
- db $00, $00, $01, $20
-
-Unknown_cfcc2:
- db $f0, $9c, $00, $00
- db $e0, $ac, $00, $00
- db $f8, $bc, $00, $00
- db $d8, $cc, $00, $00
- db $e8, $dc, $00, $00
- db $d8, $ec, $00, $00
- db $e8, $fc, $00, $00
- db $e8, $04, $00, $00
- db $d8, $14, $00, $00
- db $00, $24, $00, $00
- db $f0, $34, $00, $00
- db $e0, $44, $00, $00
- db $f0, $54, $00, $00
-; cfcf6
-
-
-AnimObjGFX: ; cfcf6
-
-object_gfx: MACRO
-; label, # tiles
- db \2
- db BANK(\1)
- dw \1
-ENDM
-
- object_gfx AnimObj00GFX, 0
- object_gfx AnimObj01GFX, 21
- object_gfx AnimObj02GFX, 6
- object_gfx AnimObj03GFX, 6
- object_gfx AnimObj04GFX, 20
- object_gfx AnimObj05GFX, 26
- object_gfx AnimObj06GFX, 18
- object_gfx AnimObj07GFX, 12
- object_gfx AnimObj08GFX, 9
- object_gfx AnimObj09GFX, 17
- object_gfx AnimObj10GFX, 6
- object_gfx AnimObj11GFX, 10
- object_gfx AnimObj12GFX, 9
- object_gfx AnimObj13GFX, 13
- object_gfx AnimObj14GFX, 16
- object_gfx AnimObj15GFX, 2
- object_gfx AnimObj16GFX, 11
- object_gfx AnimObj17GFX, 9
- object_gfx AnimObj18GFX, 9
- object_gfx AnimObj19GFX, 19
- object_gfx AnimObj20GFX, 10
- object_gfx AnimObj21GFX, 12
- object_gfx AnimObj22GFX, 18
- object_gfx AnimObj23GFX, 13
- object_gfx AnimObj24GFX, 10
- object_gfx AnimObj25GFX, 27
- object_gfx AnimObj26GFX, 12
- object_gfx AnimObj27GFX, 14
- object_gfx AnimObj28GFX, 16
- object_gfx AnimObj29GFX, 7
- object_gfx AnimObj30GFX, 8
- object_gfx AnimObj31GFX, 40
- object_gfx AnimObj32GFX, 36
- object_gfx AnimObj33GFX, 16
- object_gfx AnimObj34GFX, 48
- object_gfx AnimObj35GFX, 18
- object_gfx AnimObj36GFX, 38
- object_gfx AnimObj37GFX, 35
- object_gfx AnimObj38GFX, 18
- object_gfx AnimObj39GFX, 24
- object_gfx NULL, 1
- object_gfx NULL, 1
-; cfd9e
+INCLUDE "battle/objects/engine.asm"
+INCLUDE "battle/objects/data.asm"
+INCLUDE "battle/objects/functions.asm"
+INCLUDE "battle/objects/helpers.asm"
+INCLUDE "battle/objects/framesets.asm"
+INCLUDE "battle/objects/oam.asm"
+INCLUDE "battle/objects/gfx_headers.asm"
diff --git a/battle/anims.asm b/battle/anims.asm
index d18cfff43..5d8050c83 100644
--- a/battle/anims.asm
+++ b/battle/anims.asm
@@ -290,129 +290,129 @@ BattleAnim_MirrorMove: ; c929b
BattleAnim_SweetScent2: ; c929c
anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC
- anim_obj ANIM_OBJ_FLOWER, 64, 96, $2
+ anim_obj ANIM_OBJ_FLOWER, 8, 0, 12, 0, $2
anim_wait 2
- anim_obj ANIM_OBJ_FLOWER, 64, 80, $2
+ anim_obj ANIM_OBJ_FLOWER, 8, 0, 10, 0, $2
anim_wait 64
- anim_obj ANIM_OBJ_COTTON, 136, 40, $15
- anim_obj ANIM_OBJ_COTTON, 136, 40, $2a
- anim_obj ANIM_OBJ_COTTON, 136, 40, $3f
- anim_bgeffect $6, $0, $2, $0
+ anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $15
+ anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $2a
+ anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $3f
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_wait 128
anim_ret
; c92c1
-BattleAnim_ThrowPokeBall: ; c92c1
+BattleAnim_ThrowPokeBall
anim_jumpif NO_ITEM, .TheTrainerBlockedTheBall
anim_jumpif MASTER_BALL, .MasterBall
anim_jumpif ULTRA_BALL, .UltraBall
anim_jumpif GREAT_BALL, .GreatBall
; any other ball
anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
- anim_sound $1a, SFX_THROW_BALL
- anim_obj $15, 68, 92, $40
+ anim_sound 6, 2, SFX_THROW_BALL
+ anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40
anim_wait 36
- anim_obj $15, 136, 65, $0
+ anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0
anim_setobj $2, $7
anim_wait 16
- anim_sound $1, SFX_BALL_POOF
- anim_obj $1c, 136, 64, $10
+ anim_sound 0, 1, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10
anim_wait 16
anim_jump .Shake
; c92f2
-.TheTrainerBlockedTheBall: ; c92f2
+.TheTrainerBlockedTheBall
anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_HIT
- anim_sound $1a, SFX_THROW_BALL
- anim_obj $16, 64, 92, $20
+ anim_sound 6, 2, SFX_THROW_BALL
+ anim_obj ANIM_OBJ_16, 8, 0, 11, 4, $20
anim_wait 20
- anim_obj $1, 112, 40, $0
+ anim_obj ANIM_OBJ_01, 14, 0, 5, 0, $0
anim_wait 32
anim_ret
; c9305
-.UltraBall: ; c9305
+.UltraBall
anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
- anim_sound $1a, SFX_THROW_BALL
- anim_obj $15, 68, 92, $40
+ anim_sound 6, 2, SFX_THROW_BALL
+ anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40
anim_wait 36
- anim_obj $15, 136, 65, $0
+ anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0
anim_setobj $2, $7
anim_wait 16
- anim_sound $1, SFX_BALL_POOF
- anim_obj $1c, 136, 64, $10
+ anim_sound 0, 1, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10
anim_wait 16
anim_jump .Shake
; c9326
-.GreatBall: ; c9326
+.GreatBall
anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
- anim_sound $1a, SFX_THROW_BALL
- anim_obj $15, 68, 92, $40
+ anim_sound 6, 2, SFX_THROW_BALL
+ anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40
anim_wait 36
- anim_obj $15, 136, 65, $0
+ anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0
anim_setobj $2, $7
anim_wait 16
- anim_sound $1, SFX_BALL_POOF
- anim_obj $1c, 136, 64, $10
+ anim_sound 0, 1, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10
anim_wait 16
anim_jump .Shake
; c9347
-.MasterBall: ; c9347
+.MasterBall
anim_3gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE, ANIM_GFX_SPEED
- anim_sound $1a, SFX_THROW_BALL
- anim_obj $15, 64, 92, $20
+ anim_sound 6, 2, SFX_THROW_BALL
+ anim_obj ANIM_OBJ_POKE_BALL, 8, 0, 11, 4, $20
anim_wait 36
- anim_obj $15, 136, 65, $0
+ anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0
anim_setobj $2, $7
anim_wait 16
- anim_sound $1, SFX_BALL_POOF
- anim_obj $1c, 136, 64, $10
+ anim_sound 0, 1, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10
anim_wait 24
- anim_sound $1, SFX_MASTER_BALL
- anim_obj $2b, 136, 56, $30
- anim_obj $2b, 136, 56, $31
- anim_obj $2b, 136, 56, $32
- anim_obj $2b, 136, 56, $33
- anim_obj $2b, 136, 56, $34
- anim_obj $2b, 136, 56, $35
- anim_obj $2b, 136, 56, $36
- anim_obj $2b, 136, 56, $37
+ anim_sound 0, 1, SFX_MASTER_BALL
+ anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $30
+ anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $31
+ anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $32
+ anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $33
+ anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $34
+ anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $35
+ anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $36
+ anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $37
anim_wait 64
-.Shake: ; c9392
+.Shake
anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
anim_wait 8
- anim_incobj $2
+ anim_incobj 2
anim_wait 16
- anim_sound $1, SFX_CHANGE_DEX_MODE
- anim_incobj $1
+ anim_sound 0, 1, SFX_CHANGE_DEX_MODE
+ anim_incobj 1
anim_wait 32
- anim_sound $1, SFX_BALL_BOUNCE
+ anim_sound 0, 1, SFX_BALL_BOUNCE
anim_wait 32
anim_wait 32
anim_wait 32
anim_wait 8
anim_setvar $0
-.Loop: ; c93aa
+.Loop
anim_wait 48
anim_checkpokeball
anim_jumpvar $1, .Click
anim_jumpvar $2, .BreakFree
- anim_incobj $1
- anim_sound $1, SFX_BALL_WIGGLE
+ anim_incobj 1
+ anim_sound 0, 1, SFX_BALL_WIGGLE
anim_jump .Loop
; c93bc
-.Click: ; c93bc
+.Click
anim_clearsprites
anim_ret
; c93be
-.BreakFree: ; c93be
+.BreakFree
anim_setobj $1, $b
- anim_sound $1, SFX_BALL_POOF
- anim_obj $1c, 136, 64, $10
+ anim_sound 0, 1, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10
anim_wait 2
anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0
anim_wait 32
@@ -420,72 +420,69 @@ BattleAnim_ThrowPokeBall: ; c92c1
; c93d1
BattleAnim_SendOutMon: ; c93d1
- anim_jumpif $0, BattleAnim_SendOutMon_branch_c9471
- anim_jumpif $1, BattleAnim_SendOutMon_branch_c941c
- anim_jumpif $2, BattleAnim_SendOutMon_branch_c93fa
+ anim_jumpif $0, .Normal
+ anim_jumpif $1, .Shiny
+ anim_jumpif $2, .Unknown
anim_1gfx ANIM_GFX_SMOKE
- anim_call BattleAnim_SendOutMon_branch_cbca7
- anim_bgeffect $2b, $0, $1, $0
- anim_sound $0, SFX_BALL_POOF
- anim_obj $1b, 48, 96, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_2B, $0, $1, $0
+ anim_sound 0, 0, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1B, 6, 0, 12, 0, $0
anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
anim_wait 128
anim_wait 4
- anim_call BattleAnim_SendOutMon_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
-; c93fa
-BattleAnim_SendOutMon_branch_c93fa: ; c93fa
+.Unknown
anim_1gfx ANIM_GFX_SMOKE
- anim_call BattleAnim_SendOutMon_branch_cbca7
- anim_bgeffect $2a, $0, $1, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_2A, $0, $1, $0
anim_wait 1
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
anim_wait 4
- anim_sound $0, SFX_BALL_POOF
- anim_obj $1b, 48, 96, $0
- anim_incbgeffect $2a
+ anim_sound 0, 0, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1B, 6, 0, 12, 0, $0
+ anim_incbgeffect ANIM_BG_2A
anim_wait 96
- anim_incbgeffect $2a
- anim_call BattleAnim_SendOutMon_branch_cbcb7
+ anim_incbgeffect ANIM_BG_2A
+ anim_call BattleAnim_ShowMon_0
anim_ret
-; c941c
-BattleAnim_SendOutMon_branch_c941c: ; c941c
+.Shiny
anim_1gfx ANIM_GFX_SPEED
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
- anim_bgeffect $6, $0, $2, $0
- anim_sound $0, SFX_SHINE
- anim_obj $6d, 48, 96, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $0
anim_wait 4
- anim_sound $0, SFX_SHINE
- anim_obj $6d, 48, 96, $8
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $8
anim_wait 4
- anim_sound $0, SFX_SHINE
- anim_obj $6d, 48, 96, $10
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $10
anim_wait 4
- anim_sound $0, SFX_SHINE
- anim_obj $6d, 48, 96, $18
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $18
anim_wait 4
- anim_sound $0, SFX_SHINE
- anim_obj $6d, 48, 96, $20
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $20
anim_wait 4
- anim_sound $0, SFX_SHINE
- anim_obj $6d, 48, 96, $28
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $28
anim_wait 4
- anim_sound $0, SFX_SHINE
- anim_obj $6d, 48, 96, $30
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $30
anim_wait 4
- anim_sound $0, SFX_SHINE
- anim_obj $6d, 48, 96, $38
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $38
anim_wait 32
anim_ret
-; c9471
-BattleAnim_SendOutMon_branch_c9471: ; c9471
+.Normal
anim_1gfx ANIM_GFX_SMOKE
- anim_sound $0, SFX_BALL_POOF
- anim_obj $1c, 44, 96, $0
+ anim_sound 0, 0, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1C, 5, 4, 12, 0, $0
anim_wait 4
anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
anim_wait 32
@@ -493,7 +490,7 @@ BattleAnim_SendOutMon_branch_c9471: ; c9471
; c9483
BattleAnim_ReturnMon: ; c9483
- anim_sound $0, SFX_BALL_POOF
+ anim_sound 0, 0, SFX_BALL_POOF
BattleAnim_BatonPass_branch_c9486: ; c9486
anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0
anim_wait 32
@@ -502,111 +499,111 @@ BattleAnim_BatonPass_branch_c9486: ; c9486
BattleAnim_Confused: ; c948d
anim_1gfx ANIM_GFX_STATUS
- anim_sound $0, SFX_KINESIS
- anim_obj ANIM_OBJ_CHICK, 44, 56, $15
- anim_obj ANIM_OBJ_CHICK, 44, 56, $aa
- anim_obj ANIM_OBJ_CHICK, 44, 56, $bf
+ anim_sound 0, 0, SFX_KINESIS
+ anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $15
+ anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $aa
+ anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $bf
anim_wait 96
anim_ret
; c94a3
BattleAnim_Slp: ; c94a3
anim_1gfx ANIM_GFX_STATUS
- anim_sound $0, SFX_TAIL_WHIP
-BattleAnim_Slp_branch_c94a8: ; c94a8
- anim_obj $54, 64, 80, $0
+ anim_sound 0, 0, SFX_TAIL_WHIP
+.loop
+ anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0
anim_wait 40
- anim_loop $3, BattleAnim_Slp_branch_c94a8
+ anim_loop 3, .loop
anim_wait 32
anim_ret
; c94b4
BattleAnim_Brn: ; c94b4
anim_1gfx ANIM_GFX_FIRE
-BattleAnim_Brn_branch_c94b6: ; c94b6
- anim_sound $0, SFX_BURN
- anim_obj $10, 56, 88, $10
+.loop
+ anim_sound 0, 0, SFX_BURN
+ anim_obj ANIM_OBJ_BURNED, 7, 0, 11, 0, $10
anim_wait 4
- anim_loop $3, BattleAnim_Brn_branch_c94b6
+ anim_loop 3, .loop
anim_wait 6
anim_ret
; c94c5
BattleAnim_Psn: ; c94c5
anim_1gfx ANIM_GFX_POISON
- anim_sound $0, SFX_POISON
- anim_obj ANIM_OBJ_SKULL, 64, 56, $0
+ anim_sound 0, 0, SFX_POISON
+ anim_obj ANIM_OBJ_SKULL, 8, 0, 7, 0, $0
anim_wait 8
- anim_sound $0, SFX_POISON
- anim_obj ANIM_OBJ_SKULL, 48, 56, $0
+ anim_sound 0, 0, SFX_POISON
+ anim_obj ANIM_OBJ_SKULL, 6, 0, 7, 0, $0
anim_wait 8
anim_ret
; c94da
BattleAnim_Sap: ; c94da
anim_1gfx ANIM_GFX_CHARGE
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 128, 48, $2
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, 16, 0, 6, 0, $2
anim_wait 6
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 136, 64, $3
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, -15, 0, 8, 0, $3
anim_wait 6
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 136, 32, $4
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, -15, 0, 4, 0, $4
anim_wait 16
anim_ret
; c94f8
BattleAnim_Frz: ; c94f8
anim_1gfx ANIM_GFX_ICE
- anim_obj ANIM_OBJ_FROZEN, 44, 110, $0
- anim_sound $0, SFX_SHINE
+ anim_obj ANIM_OBJ_FROZEN, 5, 4, 13, 6, $0
+ anim_sound 0, 0, SFX_SHINE
anim_wait 16
- anim_sound $0, SFX_SHINE
+ anim_sound 0, 0, SFX_SHINE
anim_wait 16
anim_ret
; c9508
BattleAnim_Par: ; c9508
anim_1gfx ANIM_GFX_STATUS
- anim_bgeffect $6, $0, $2, $0
- anim_sound $0, SFX_THUNDERSHOCK
- anim_obj ANIM_OBJ_PARALYZED, 20, 88, $42
- anim_obj ANIM_OBJ_PARALYZED, 76, 88, $c2
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_sound 0, 0, SFX_THUNDERSHOCK
+ anim_obj ANIM_OBJ_PARALYZED, 2, 4, 11, 0, $42
+ anim_obj ANIM_OBJ_PARALYZED, 9, 4, 11, 0, $c2
anim_wait 128
anim_ret
; c951e
BattleAnim_InLove: ; c951e
anim_1gfx ANIM_GFX_OBJECTS
- anim_sound $0, SFX_LICK
- anim_obj ANIM_OBJ_HEART, 64, 76, $0
+ anim_sound 0, 0, SFX_LICK
+ anim_obj ANIM_OBJ_HEART, 8, 0, 9, 4, $0
anim_wait 32
- anim_sound $0, SFX_LICK
- anim_obj ANIM_OBJ_HEART, 36, 72, $0
+ anim_sound 0, 0, SFX_LICK
+ anim_obj ANIM_OBJ_HEART, 4, 4, 9, 0, $0
anim_wait 32
anim_ret
; c9533
BattleAnim_InSandstorm: ; c9533
anim_1gfx ANIM_GFX_POWDER
- anim_obj $a2, 88, 0, $0
+ anim_obj ANIM_OBJ_A2, 11, 0, 0, 0, $0
anim_wait 8
- anim_obj $a2, 72, 0, $1
+ anim_obj ANIM_OBJ_A2, 9, 0, 0, 0, $1
anim_wait 8
- anim_obj $a2, 56, 0, $2
-BattleAnim_InSandstorm_branch_c9546: ; c9546
- anim_sound $1, SFX_MENU
+ anim_obj ANIM_OBJ_A2, 7, 0, 0, 0, $2
+.loop
+ anim_sound 0, 1, SFX_MENU
anim_wait 8
- anim_loop $6, BattleAnim_InSandstorm_branch_c9546
+ anim_loop 6, .loop
anim_wait 8
anim_ret
; c9550
BattleAnim_InNightmare: ; c9550
anim_1gfx ANIM_GFX_ANGELS
- anim_sound $0, SFX_BUBBLEBEAM
- anim_obj $95, 68, 80, $0
+ anim_sound 0, 0, SFX_BUBBLEBEAM
+ anim_obj ANIM_OBJ_95, 8, 4, 10, 0, $0
anim_wait 40
anim_ret
; c955c
@@ -614,11 +611,11 @@ BattleAnim_InNightmare: ; c9550
BattleAnim_InWhirlpool: ; c955c
anim_1gfx ANIM_GFX_WIND
anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0
- anim_sound $1, SFX_SURF
-BattleAnim_InWhirlpool_branch_c9566: ; c9566
- anim_obj ANIM_OBJ_GUST, 132, 72, $0
+ anim_sound 0, 1, SFX_SURF
+.loop
+ anim_obj ANIM_OBJ_GUST, -16, 4, 9, 0, $0
anim_wait 6
- anim_loop $6, BattleAnim_InWhirlpool_branch_c9566
+ anim_loop 6, .loop
anim_incbgeffect ANIM_BG_WHIRLPOOL
anim_wait 1
anim_ret
@@ -626,8 +623,8 @@ BattleAnim_InWhirlpool_branch_c9566: ; c9566
BattleAnim_HitConfusion: ; c9574
anim_1gfx ANIM_GFX_HIT
- anim_sound $0, SFX_POUND
- anim_obj $4, 44, 96, $0
+ anim_sound 0, 0, SFX_POUND
+ anim_obj ANIM_OBJ_04, 5, 4, 12, 0, $0
anim_wait 16
anim_ret
; c9580
@@ -637,77 +634,77 @@ BattleAnim_Miss: ; c9580
; c9581
BattleAnim_EnemyDamage: ; c9581
-BattleAnim_EnemyDamage_branch_c9581: ; c9581
+.loop
anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0
anim_wait 5
anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
anim_wait 5
- anim_loop $3, BattleAnim_EnemyDamage_branch_c9581
+ anim_loop 3, .loop
anim_ret
; c9592
BattleAnim_EnemyStatDown: ; c9592
- anim_call BattleAnim_EnemyStatDown_branch_cbcc2
+ anim_call BattleAnim_FollowEnemyFeet_1
anim_bgeffect ANIM_BG_VIBRATE_MON, $0, $0, $0
anim_wait 40
- anim_call BattleAnim_EnemyStatDown_branch_cbcd2
+ anim_call BattleAnim_ShowMon_1
anim_wait 1
anim_ret
; c95a0
BattleAnim_PlayerStatDown: ; c95a0
- anim_call BattleAnim_PlayerStatDown_branch_cbcc2
+ anim_call BattleAnim_FollowEnemyFeet_1
anim_bgeffect ANIM_BG_WOBBLE_MON, $0, $0, $0
anim_wait 40
- anim_call BattleAnim_PlayerStatDown_branch_cbcd2
+ anim_call BattleAnim_ShowMon_1
anim_wait 1
anim_ret
; c95ae
BattleAnim_PlayerDamage: ; c95ae
- anim_bgeffect $20, $20, $2, $20
+ anim_bgeffect ANIM_BG_20, $20, $2, $20
anim_wait 40
anim_ret
; c95b5
BattleAnim_Wobble: ; c95b5
- anim_bgeffect $35, $0, $0, $0
+ anim_bgeffect ANIM_BG_35, $0, $0, $0
anim_wait 40
anim_ret
; c95bc
BattleAnim_Shake: ; c95bc
- anim_bgeffect $1f, $20, $2, $40
+ anim_bgeffect ANIM_BG_1F, $20, $2, $40
anim_wait 40
anim_ret
; c95c3
BattleAnim_Pound: ; c95c3
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_POUND
- anim_obj $8, 136, 56, $0
+ anim_sound 0, 1, SFX_POUND
+ anim_obj ANIM_OBJ_08, -15, 0, 7, 0, $0
anim_wait 6
- anim_obj $1, 136, 56, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; c95d5
BattleAnim_KarateChop: ; c95d5
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_KARATE_CHOP
- anim_obj $8, 136, 40, $0
+ anim_sound 0, 1, SFX_KARATE_CHOP
+ anim_obj ANIM_OBJ_08, -15, 0, 5, 0, $0
anim_wait 6
- anim_obj $1, 136, 40, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0
anim_wait 6
- anim_sound $1, SFX_KARATE_CHOP
- anim_obj $8, 136, 44, $0
+ anim_sound 0, 1, SFX_KARATE_CHOP
+ anim_obj ANIM_OBJ_08, -15, 0, 5, 4, $0
anim_wait 6
- anim_obj $1, 136, 44, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 5, 4, $0
anim_wait 6
- anim_sound $1, SFX_KARATE_CHOP
- anim_obj $8, 136, 48, $0
+ anim_sound 0, 1, SFX_KARATE_CHOP
+ anim_obj ANIM_OBJ_08, -15, 0, 6, 0, $0
anim_wait 6
- anim_obj $1, 136, 48, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0
anim_wait 16
anim_ret
; c9605
@@ -715,19 +712,19 @@ BattleAnim_KarateChop: ; c95d5
BattleAnim_Doubleslap: ; c9605
anim_1gfx ANIM_GFX_HIT
anim_jumpif $1, BattleAnim_Doubleslap_branch_c961b
- anim_sound $1, SFX_DOUBLESLAP
- anim_obj $8, 144, 48, $0
+ anim_sound 0, 1, SFX_DOUBLESLAP
+ anim_obj ANIM_OBJ_08, -14, 0, 6, 0, $0
anim_wait 6
- anim_obj $1, 144, 48, $0
+ anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0
anim_wait 8
anim_ret
; c961b
BattleAnim_Doubleslap_branch_c961b: ; c961b
- anim_sound $1, SFX_DOUBLESLAP
- anim_obj $8, 120, 48, $0
+ anim_sound 0, 1, SFX_DOUBLESLAP
+ anim_obj ANIM_OBJ_08, 15, 0, 6, 0, $0
anim_wait 6
- anim_obj $1, 120, 48, $0
+ anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0
anim_wait 8
anim_ret
; c962b
@@ -735,19 +732,19 @@ BattleAnim_Doubleslap_branch_c961b: ; c961b
BattleAnim_CometPunch: ; c962b
anim_1gfx ANIM_GFX_HIT
anim_jumpif $1, BattleAnim_CometPunch_branch_c9641
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $6, 144, 48, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_06, -14, 0, 6, 0, $0
anim_wait 6
- anim_obj $1, 144, 48, $0
+ anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0
anim_wait 8
anim_ret
; c9641
BattleAnim_CometPunch_branch_c9641: ; c9641
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $6, 120, 64, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_06, 15, 0, 8, 0, $0
anim_wait 6
- anim_obj $1, 120, 64, $0
+ anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0
anim_wait 8
anim_ret
; c9651
@@ -755,37 +752,36 @@ BattleAnim_CometPunch_branch_c9641: ; c9641
BattleAnim_Bide_branch_c9651: ; c9651
BattleAnim_MegaPunch: ; c9651
anim_1gfx ANIM_GFX_HIT
- anim_bgeffect $1f, $40, $2, $0
+ anim_bgeffect ANIM_BG_1F, $40, $2, $0
anim_wait 48
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-BattleAnim_Bide_branch_c965e: ; c965e
-BattleAnim_MegaPunch_branch_c965e: ; c965e
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $6, 136, 56, $0
- anim_obj $0, 136, 56, $0
+.loop
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 6
- anim_obj $6, 136, 56, $0
+ anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0
anim_wait 6
- anim_loop $3, BattleAnim_Bide_branch_c965e
+ anim_loop 3, .loop
anim_ret
; c9677
BattleAnim_Stomp: ; c9677
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_STOMP
- anim_obj $7, 136, 40, $0
+ anim_sound 0, 1, SFX_STOMP
+ anim_obj ANIM_OBJ_07, -15, 0, 5, 0, $0
anim_wait 6
- anim_obj $1, 136, 40, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0
anim_wait 6
- anim_sound $1, SFX_STOMP
- anim_obj $7, 136, 44, $0
+ anim_sound 0, 1, SFX_STOMP
+ anim_obj ANIM_OBJ_07, -15, 0, 5, 4, $0
anim_wait 6
- anim_obj $1, 136, 44, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 5, 4, $0
anim_wait 6
- anim_sound $1, SFX_STOMP
- anim_obj $7, 136, 48, $0
+ anim_sound 0, 1, SFX_STOMP
+ anim_obj ANIM_OBJ_07, -15, 0, 6, 0, $0
anim_wait 6
- anim_obj $1, 136, 48, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0
anim_wait 16
anim_ret
; c96a7
@@ -793,19 +789,19 @@ BattleAnim_Stomp: ; c9677
BattleAnim_DoubleKick: ; c96a7
anim_1gfx ANIM_GFX_HIT
anim_jumpif $1, BattleAnim_DoubleKick_branch_c96bd
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 144, 48, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, -14, 0, 6, 0, $0
anim_wait 6
- anim_obj $1, 144, 48, $0
+ anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0
anim_wait 8
anim_ret
; c96bd
BattleAnim_DoubleKick_branch_c96bd: ; c96bd
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 120, 64, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, 15, 0, 8, 0, $0
anim_wait 6
- anim_obj $1, 120, 64, $0
+ anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0
anim_wait 8
anim_ret
; c96cd
@@ -813,128 +809,128 @@ BattleAnim_DoubleKick_branch_c96bd: ; c96bd
BattleAnim_JumpKick: ; c96cd
anim_1gfx ANIM_GFX_HIT
anim_jumpif $1, BattleAnim_JumpKick_branch_c96f1
- anim_sound $1, SFX_JUMP_KICK
- anim_obj $7, 112, 72, $0
- anim_obj $7, 100, 60, $0
+ anim_sound 0, 1, SFX_JUMP_KICK
+ anim_obj ANIM_OBJ_07, 14, 0, 9, 0, $0
+ anim_obj ANIM_OBJ_07, 12, 4, 7, 4, $0
anim_setobj $1, $2
anim_setobj $2, $2
anim_wait 24
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $4, 136, 48, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0
anim_wait 16
anim_ret
; c96f1
BattleAnim_JumpKick_branch_c96f1: ; c96f1
anim_wait 8
- anim_sound $0, SFX_DOUBLE_KICK
- anim_obj $4, 44, 88, $0
+ anim_sound 0, 0, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_04, 5, 4, 11, 0, $0
anim_wait 16
anim_ret
; c96fc
BattleAnim_HiJumpKick: ; c96fc
anim_1gfx ANIM_GFX_HIT
- anim_bgeffect $1f, $40, $2, $0
+ anim_bgeffect ANIM_BG_1F, $40, $2, $0
anim_jumpif $1, BattleAnim_HiJumpKick_branch_c971e
anim_wait 32
- anim_sound $1, SFX_JUMP_KICK
- anim_obj $7, 112, 72, $0
+ anim_sound 0, 1, SFX_JUMP_KICK
+ anim_obj ANIM_OBJ_07, 14, 0, 9, 0, $0
anim_setobj $1, $2
anim_wait 16
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $4, 136, 48, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0
anim_wait 16
anim_ret
; c971e
BattleAnim_HiJumpKick_branch_c971e: ; c971e
anim_wait 16
- anim_sound $0, SFX_DOUBLE_KICK
- anim_obj $4, 44, 88, $0
+ anim_sound 0, 0, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_04, 5, 4, 11, 0, $0
anim_wait 16
anim_ret
; c9729
BattleAnim_RollingKick: ; c9729
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 112, 56, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, 14, 0, 7, 0, $0
anim_setobj $1, $3
anim_wait 12
- anim_obj $1, 136, 48, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0
anim_wait 16
anim_ret
; c973e
BattleAnim_MegaKick: ; c973e
anim_1gfx ANIM_GFX_HIT
- anim_bgeffect $1f, $40, $2, $0
+ anim_bgeffect ANIM_BG_1F, $40, $2, $0
anim_wait 67
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-BattleAnim_MegaKick_branch_c974b: ; c974b
- anim_sound $1, SFX_MEGA_KICK
- anim_obj $7, 136, 56, $0
- anim_obj $0, 136, 56, $0
+.loop
+ anim_sound 0, 1, SFX_MEGA_KICK
+ anim_obj ANIM_OBJ_07, -15, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 6
- anim_obj $7, 136, 56, $0
+ anim_obj ANIM_OBJ_07, -15, 0, 7, 0, $0
anim_wait 6
- anim_loop $3, BattleAnim_MegaKick_branch_c974b
+ anim_loop 3, .loop
anim_ret
; c9764
BattleAnim_HyperFang: ; c9764
anim_1gfx ANIM_GFX_HIT
- anim_bgeffect $1f, $20, $1, $0
- anim_sound $1, SFX_BITE
- anim_obj $9, 136, 56, $0
+ anim_bgeffect ANIM_BG_1F, $20, $1, $0
+ anim_sound 0, 1, SFX_BITE
+ anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0
anim_wait 6
- anim_obj $1, 136, 56, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; c977b
BattleAnim_SuperFang: ; c977b
anim_1gfx ANIM_GFX_HIT
- anim_bgeffect $1f, $40, $2, $0
+ anim_bgeffect ANIM_BG_1F, $40, $2, $0
anim_wait 48
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-BattleAnim_SuperFang_branch_c9788: ; c9788
- anim_sound $1, SFX_BITE
- anim_obj $9, 136, 56, $0
- anim_obj $0, 136, 56, $0
+.loop
+ anim_sound 0, 1, SFX_BITE
+ anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 6
- anim_obj $9, 136, 56, $0
+ anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0
anim_wait 6
- anim_loop $3, BattleAnim_SuperFang_branch_c9788
+ anim_loop 3, .loop
anim_ret
; c97a1
BattleAnim_Ember: ; c97a1
anim_1gfx ANIM_GFX_FIRE
- anim_sound $1a, SFX_EMBER
- anim_obj $b, 64, 96, $12
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0B, 8, 0, 12, 0, $12
anim_wait 4
- anim_sound $1a, SFX_EMBER
- anim_obj $b, 64, 100, $14
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0B, 8, 0, 12, 4, $14
anim_wait 4
- anim_sound $1a, SFX_EMBER
- anim_obj $b, 64, 84, $13
- anim_wait 16
- anim_incobj $1
- anim_incobj $2
- anim_incobj $3
- anim_sound $1, SFX_EMBER
- anim_obj $b, 120, 68, $30
- anim_obj $b, 132, 68, $30
- anim_obj $b, 144, 68, $30
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0B, 8, 0, 10, 4, $13
+ anim_wait 16
+ anim_incobj 1
+ anim_incobj 2
+ anim_incobj 3
+ anim_sound 0, 1, SFX_EMBER
+ anim_obj ANIM_OBJ_0B, 15, 0, 8, 4, $30
+ anim_obj ANIM_OBJ_0B, -16, 4, 8, 4, $30
+ anim_obj ANIM_OBJ_0B, -14, 0, 8, 4, $30
anim_wait 32
anim_ret
; c97d8
BattleAnim_FirePunch: ; c97d8
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_FIRE
- anim_obj $a, 136, 56, $43
+ anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43
anim_call BattleAnim_FirePunch_branch_cbbcc
anim_wait 16
anim_ret
@@ -942,100 +938,100 @@ BattleAnim_FirePunch: ; c97d8
BattleAnim_FireSpin: ; c97e5
anim_1gfx ANIM_GFX_FIRE
-BattleAnim_FireSpin_branch_c97e7: ; c97e7
- anim_sound $1a, SFX_EMBER
- anim_obj $e, 64, 88, $4
+.loop
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0E, 8, 0, 11, 0, $4
anim_wait 2
- anim_sound $1a, SFX_EMBER
- anim_obj $e, 64, 96, $3
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0E, 8, 0, 12, 0, $3
anim_wait 2
- anim_sound $1a, SFX_EMBER
- anim_obj $e, 64, 88, $3
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0E, 8, 0, 11, 0, $3
anim_wait 2
- anim_sound $1a, SFX_EMBER
- anim_obj $e, 64, 96, $4
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0E, 8, 0, 12, 0, $4
anim_wait 2
- anim_loop $2, BattleAnim_FireSpin_branch_c97e7
+ anim_loop 2, .loop
anim_wait 96
anim_ret
; c9811
BattleAnim_DragonRage: ; c9811
anim_1gfx ANIM_GFX_FIRE
-BattleAnim_DragonRage_branch_c9813: ; c9813
- anim_sound $1a, SFX_EMBER
- anim_obj $c, 64, 92, $0
+.loop
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0C, 8, 0, 11, 4, $0
anim_wait 3
- anim_loop $10, BattleAnim_DragonRage_branch_c9813
+ anim_loop 16, .loop
anim_wait 64
anim_ret
; c9822
BattleAnim_Flamethrower: ; c9822
anim_1gfx ANIM_GFX_FIRE
- anim_sound $1a, SFX_EMBER
- anim_obj $d, 64, 92, $3
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0D, 8, 0, 11, 4, $3
anim_wait 2
- anim_obj $d, 75, 86, $5
+ anim_obj ANIM_OBJ_0D, 9, 3, 10, 6, $5
anim_wait 2
- anim_obj $d, 85, 81, $7
+ anim_obj ANIM_OBJ_0D, 10, 5, 10, 1, $7
anim_wait 2
- anim_obj $d, 96, 76, $9
+ anim_obj ANIM_OBJ_0D, 12, 0, 9, 4, $9
anim_wait 2
- anim_obj $d, 106, 71, $b
+ anim_obj ANIM_OBJ_0D, 13, 2, 8, 7, $b
anim_wait 2
- anim_obj $d, 116, 66, $c
+ anim_obj ANIM_OBJ_0D, 14, 4, 8, 2, $c
anim_wait 2
- anim_obj $d, 126, 61, $a
+ anim_obj ANIM_OBJ_0D, 15, 6, 7, 5, $a
anim_wait 2
- anim_obj $d, 136, 56, $8
+ anim_obj ANIM_OBJ_0D, -15, 0, 7, 0, $8
anim_wait 16
-BattleAnim_Flamethrower_branch_c9857: ; c9857
- anim_sound $1, SFX_EMBER
+.loop
+ anim_sound 0, 1, SFX_EMBER
anim_wait 16
- anim_loop $6, BattleAnim_Flamethrower_branch_c9857
+ anim_loop 6, .loop
anim_wait 16
anim_ret
; c9861
BattleAnim_FireBlast: ; c9861
anim_1gfx ANIM_GFX_FIRE
-BattleAnim_FireBlast_branch_c9863: ; c9863
- anim_sound $1a, SFX_EMBER
- anim_obj $f, 64, 92, $7
+.loop1
+ anim_sound 6, 2, SFX_EMBER
+ anim_obj ANIM_OBJ_0F, 8, 0, 11, 4, $7
anim_wait 6
- anim_loop $a, BattleAnim_FireBlast_branch_c9863
-BattleAnim_FireBlast_branch_c9870: ; c9870
- anim_sound $1, SFX_EMBER
- anim_wait 8
- anim_loop $a, BattleAnim_FireBlast_branch_c9870
- anim_incobj $1
- anim_incobj $2
- anim_incobj $3
- anim_incobj $4
- anim_incobj $5
- anim_incobj $6
- anim_incobj $7
- anim_incobj $8
- anim_incobj $9
- anim_incobj $a
+ anim_loop 10, .loop1
+.loop2
+ anim_sound 0, 1, SFX_EMBER
+ anim_wait 8
+ anim_loop 10, .loop2
+ anim_incobj 1
+ anim_incobj 2
+ anim_incobj 3
+ anim_incobj 4
+ anim_incobj 5
+ anim_incobj 6
+ anim_incobj 7
+ anim_incobj 8
+ anim_incobj 9
+ anim_incobj 10
anim_wait 2
-BattleAnim_FireBlast_branch_c988d: ; c988d
- anim_sound $1, SFX_EMBER
- anim_obj $f, 136, 56, $1
- anim_obj $f, 136, 56, $2
- anim_obj $f, 136, 56, $3
- anim_obj $f, 136, 56, $4
- anim_obj $f, 136, 56, $5
- anim_wait 16
- anim_loop $2, BattleAnim_FireBlast_branch_c988d
+.loop3
+ anim_sound 0, 1, SFX_EMBER
+ anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $1
+ anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $2
+ anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $3
+ anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $4
+ anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $5
+ anim_wait 16
+ anim_loop 2, .loop3
anim_wait 32
anim_ret
; c98b0
BattleAnim_IcePunch: ; c98b0
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_ICE
- anim_obj $a, 136, 56, $43
+ anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43
anim_call BattleAnim_IcePunch_branch_cbbdf
anim_wait 32
anim_ret
@@ -1043,59 +1039,59 @@ BattleAnim_IcePunch: ; c98b0
BattleAnim_IceBeam: ; c98bd
anim_1gfx ANIM_GFX_ICE
-BattleAnim_IceBeam_branch_c98bf: ; c98bf
- anim_sound $1a, SFX_SHINE
- anim_obj $13, 64, 92, $4
+.loop
+ anim_sound 6, 2, SFX_SHINE
+ anim_obj ANIM_OBJ_13, 8, 0, 11, 4, $4
anim_wait 4
- anim_loop $5, BattleAnim_IceBeam_branch_c98bf
- anim_obj $29, 136, 74, $10
-BattleAnim_IceBeam_branch_c98d1: ; c98d1
- anim_sound $1a, SFX_SHINE
- anim_obj $13, 64, 92, $4
+ anim_loop 5, .loop
+ anim_obj ANIM_OBJ_29, -15, 0, 9, 2, $10
+.loop2
+ anim_sound 6, 2, SFX_SHINE
+ anim_obj ANIM_OBJ_13, 8, 0, 11, 4, $4
anim_wait 4
- anim_loop $f, BattleAnim_IceBeam_branch_c98d1
+ anim_loop 15, .loop2
anim_wait 48
- anim_sound $1, SFX_SHINE
+ anim_sound 0, 1, SFX_SHINE
anim_wait 8
- anim_sound $1, SFX_SHINE
+ anim_sound 0, 1, SFX_SHINE
anim_wait 8
anim_ret
; c98e8
BattleAnim_Blizzard: ; c98e8
anim_1gfx ANIM_GFX_ICE
-BattleAnim_Blizzard_branch_c98ea: ; c98ea
- anim_sound $1a, SFX_SHINE
- anim_obj $11, 64, 88, $63
+.loop
+ anim_sound 6, 2, SFX_SHINE
+ anim_obj ANIM_OBJ_11, 8, 0, 11, 0, $63
anim_wait 2
- anim_sound $1a, SFX_SHINE
- anim_obj $11, 64, 80, $64
+ anim_sound 6, 2, SFX_SHINE
+ anim_obj ANIM_OBJ_11, 8, 0, 10, 0, $64
anim_wait 2
- anim_sound $1a, SFX_SHINE
- anim_obj $11, 64, 96, $63
+ anim_sound 6, 2, SFX_SHINE
+ anim_obj ANIM_OBJ_11, 8, 0, 12, 0, $63
anim_wait 2
- anim_loop $3, BattleAnim_Blizzard_branch_c98ea
+ anim_loop 3, .loop
anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
anim_wait 32
- anim_obj $29, 136, 74, $10
+ anim_obj ANIM_OBJ_29, -15, 0, 9, 2, $10
anim_wait 128
- anim_sound $1, SFX_SHINE
+ anim_sound 0, 1, SFX_SHINE
anim_wait 8
- anim_sound $1, SFX_SHINE
+ anim_sound 0, 1, SFX_SHINE
anim_wait 24
anim_ret
; c991e
BattleAnim_Bubble: ; c991e
anim_1gfx ANIM_GFX_BUBBLE
- anim_sound $82, SFX_WATER_GUN
- anim_obj $21, 64, 92, $c1
+ anim_sound 32, 2, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $c1
anim_wait 6
- anim_sound $82, SFX_WATER_GUN
- anim_obj $21, 64, 92, $e1
+ anim_sound 32, 2, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $e1
anim_wait 6
- anim_sound $82, SFX_WATER_GUN
- anim_obj $21, 64, 92, $d1
+ anim_sound 32, 2, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $d1
anim_wait 128
anim_wait 32
anim_ret
@@ -1103,87 +1099,87 @@ BattleAnim_Bubble: ; c991e
BattleAnim_Bubblebeam: ; c993d
anim_1gfx ANIM_GFX_BUBBLE
-BattleAnim_Bubblebeam_branch_c993f: ; c993f
- anim_sound $42, SFX_BUBBLEBEAM
- anim_obj $21, 64, 92, $92
+.loop
+ anim_sound 16, 2, SFX_BUBBLEBEAM
+ anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $92
anim_wait 6
- anim_sound $42, SFX_BUBBLEBEAM
- anim_obj $21, 64, 92, $b3
+ anim_sound 16, 2, SFX_BUBBLEBEAM
+ anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $b3
anim_wait 6
- anim_sound $42, SFX_BUBBLEBEAM
- anim_obj $21, 64, 92, $f4
+ anim_sound 16, 2, SFX_BUBBLEBEAM
+ anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $f4
anim_wait 8
- anim_loop $3, BattleAnim_Bubblebeam_branch_c993f
+ anim_loop 3, .loop
anim_wait 64
anim_clearobjs
- anim_bgeffect $30, $0, $0, $0
+ anim_bgeffect ANIM_BG_30, $0, $0, $0
anim_wait 1
- anim_call BattleAnim_Bubblebeam_branch_cbcca
- anim_bgeffect $31, $1c, $0, $0
+ anim_call BattleAnim_FollowPlayerHead_1
+ anim_bgeffect ANIM_BG_31, $1c, $0, $0
anim_wait 19
- anim_call BattleAnim_Bubblebeam_branch_cbcd2
- anim_bgeffect $32, $0, $0, $0
+ anim_call BattleAnim_ShowMon_1
+ anim_bgeffect ANIM_BG_32, $0, $0, $0
anim_wait 8
anim_ret
; c9979
BattleAnim_WaterGun: ; c9979
- anim_bgeffect $30, $0, $0, $0
+ anim_bgeffect ANIM_BG_30, $0, $0, $0
anim_1gfx ANIM_GFX_WATER
- anim_call BattleAnim_WaterGun_branch_cbcca
- anim_sound $42, SFX_WATER_GUN
- anim_obj $24, 64, 88, $0
+ anim_call BattleAnim_FollowPlayerHead_1
+ anim_sound 16, 2, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_24, 8, 0, 11, 0, $0
anim_wait 8
- anim_obj $24, 64, 76, $0
+ anim_obj ANIM_OBJ_24, 8, 0, 9, 4, $0
anim_wait 8
- anim_obj $24, 64, 82, $0
+ anim_obj ANIM_OBJ_24, 8, 0, 10, 2, $0
anim_wait 24
- anim_bgeffect $31, $1c, $0, $0
+ anim_bgeffect ANIM_BG_31, $1c, $0, $0
anim_wait 8
- anim_bgeffect $31, $8, $0, $0
+ anim_bgeffect ANIM_BG_31, $8, $0, $0
anim_wait 8
- anim_bgeffect $31, $30, $0, $0
+ anim_bgeffect ANIM_BG_31, $30, $0, $0
anim_wait 32
- anim_call BattleAnim_WaterGun_branch_cbcd2
- anim_bgeffect $32, $0, $0, $0
+ anim_call BattleAnim_ShowMon_1
+ anim_bgeffect ANIM_BG_32, $0, $0, $0
anim_wait 16
anim_ret
; c99b4
BattleAnim_HydroPump: ; c99b4
- anim_bgeffect $30, $0, $0, $0
+ anim_bgeffect ANIM_BG_30, $0, $0, $0
anim_1gfx ANIM_GFX_WATER
- anim_call BattleAnim_HydroPump_branch_cbcca
- anim_sound $1, SFX_HYDRO_PUMP
- anim_obj $25, 108, 72, $0
- anim_bgeffect $31, $1c, $0, $0
- anim_wait 8
- anim_sound $1, SFX_HYDRO_PUMP
- anim_obj $25, 116, 72, $0
- anim_bgeffect $31, $8, $0, $0
- anim_wait 8
- anim_sound $1, SFX_HYDRO_PUMP
- anim_obj $25, 124, 72, $0
- anim_bgeffect $31, $30, $0, $0
- anim_wait 8
- anim_sound $1, SFX_HYDRO_PUMP
- anim_obj $25, 132, 72, $0
- anim_bgeffect $31, $1c, $0, $0
- anim_wait 8
- anim_sound $1, SFX_HYDRO_PUMP
- anim_obj $25, 140, 72, $0
- anim_bgeffect $31, $8, $0, $0
- anim_wait 8
- anim_sound $1, SFX_HYDRO_PUMP
- anim_obj $25, 148, 72, $0
- anim_bgeffect $31, $30, $0, $0
- anim_wait 8
- anim_sound $1, SFX_HYDRO_PUMP
- anim_obj $25, 156, 72, $0
- anim_bgeffect $31, $1c, $0, $0
+ anim_call BattleAnim_FollowPlayerHead_1
+ anim_sound 0, 1, SFX_HYDRO_PUMP
+ anim_obj ANIM_OBJ_25, 13, 4, 9, 0, $0
+ anim_bgeffect ANIM_BG_31, $1c, $0, $0
+ anim_wait 8
+ anim_sound 0, 1, SFX_HYDRO_PUMP
+ anim_obj ANIM_OBJ_25, 14, 4, 9, 0, $0
+ anim_bgeffect ANIM_BG_31, $8, $0, $0
+ anim_wait 8
+ anim_sound 0, 1, SFX_HYDRO_PUMP
+ anim_obj ANIM_OBJ_25, 15, 4, 9, 0, $0
+ anim_bgeffect ANIM_BG_31, $30, $0, $0
+ anim_wait 8
+ anim_sound 0, 1, SFX_HYDRO_PUMP
+ anim_obj ANIM_OBJ_25, -16, 4, 9, 0, $0
+ anim_bgeffect ANIM_BG_31, $1c, $0, $0
+ anim_wait 8
+ anim_sound 0, 1, SFX_HYDRO_PUMP
+ anim_obj ANIM_OBJ_25, -15, 4, 9, 0, $0
+ anim_bgeffect ANIM_BG_31, $8, $0, $0
+ anim_wait 8
+ anim_sound 0, 1, SFX_HYDRO_PUMP
+ anim_obj ANIM_OBJ_25, -14, 4, 9, 0, $0
+ anim_bgeffect ANIM_BG_31, $30, $0, $0
+ anim_wait 8
+ anim_sound 0, 1, SFX_HYDRO_PUMP
+ anim_obj ANIM_OBJ_25, -13, 4, 9, 0, $0
+ anim_bgeffect ANIM_BG_31, $1c, $0, $0
anim_wait 32
- anim_call BattleAnim_HydroPump_branch_cbcd2
- anim_bgeffect $32, $0, $0, $0
+ anim_call BattleAnim_ShowMon_1
+ anim_bgeffect ANIM_BG_32, $0, $0, $0
anim_wait 16
anim_ret
; c9a2a
@@ -1191,89 +1187,89 @@ BattleAnim_HydroPump: ; c99b4
BattleAnim_Surf: ; c9a2a
anim_1gfx ANIM_GFX_BUBBLE
anim_bgeffect ANIM_BG_SURF, $0, $0, $0
- anim_obj $22, 88, 104, $8
-BattleAnim_Surf_branch_c9a36: ; c9a36
- anim_sound $1, SFX_SURF
+ anim_obj ANIM_OBJ_22, 11, 0, 13, 0, $8
+.loop
+ anim_sound 0, 1, SFX_SURF
anim_wait 32
- anim_loop $4, BattleAnim_Surf_branch_c9a36
- anim_incobj $1
+ anim_loop 4, .loop
+ anim_incobj 1
anim_wait 56
anim_ret
; c9a42
BattleAnim_VineWhip: ; c9a42
anim_1gfx ANIM_GFX_WHIP
- anim_sound $1, SFX_VINE_WHIP
- anim_obj $40, 116, 52, $80
+ anim_sound 0, 1, SFX_VINE_WHIP
+ anim_obj ANIM_OBJ_40, 14, 4, 6, 4, $80
anim_wait 4
- anim_sound $1, SFX_VINE_WHIP
- anim_obj $3f, 128, 60, $0
+ anim_sound 0, 1, SFX_VINE_WHIP
+ anim_obj ANIM_OBJ_3F, 16, 0, 7, 4, $0
anim_wait 4
- anim_incobj $1
+ anim_incobj 1
anim_wait 4
anim_ret
; c9a5a
BattleAnim_LeechSeed: ; c9a5a
anim_1gfx ANIM_GFX_PLANT
- anim_sound $42, SFX_VINE_WHIP
- anim_obj $4a, 48, 80, $20
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_obj ANIM_OBJ_4A, 6, 0, 10, 0, $20
anim_wait 8
- anim_sound $42, SFX_VINE_WHIP
- anim_obj $4a, 48, 80, $30
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_obj ANIM_OBJ_4A, 6, 0, 10, 0, $30
anim_wait 8
- anim_sound $42, SFX_VINE_WHIP
- anim_obj $4a, 48, 80, $28
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_obj ANIM_OBJ_4A, 6, 0, 10, 0, $28
anim_wait 32
- anim_sound $1, SFX_CHARGE
+ anim_sound 0, 1, SFX_CHARGE
anim_wait 128
anim_ret
; c9a7c
BattleAnim_RazorLeaf: ; c9a7c
anim_1gfx ANIM_GFX_PLANT
- anim_sound $0, SFX_VINE_WHIP
- anim_obj $14, 48, 80, $28
- anim_obj $14, 48, 80, $5c
- anim_obj $14, 48, 80, $10
- anim_obj $14, 48, 80, $e8
- anim_obj $14, 48, 80, $9c
- anim_obj $14, 48, 80, $d0
+ anim_sound 0, 0, SFX_VINE_WHIP
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $28
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $5c
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $10
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $e8
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $9c
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $d0
anim_wait 6
- anim_obj $14, 48, 80, $1c
- anim_obj $14, 48, 80, $50
- anim_obj $14, 48, 80, $dc
- anim_obj $14, 48, 80, $90
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $1c
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $50
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $dc
+ anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $90
anim_wait 80
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $3
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 3
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $5
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 5
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $7
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 7
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $9
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 9
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $1
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 1
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $2
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 2
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $4
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 4
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $6
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 6
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $8
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 8
anim_wait 2
- anim_sound $42, SFX_VINE_WHIP
- anim_incobj $a
+ anim_sound 16, 2, SFX_VINE_WHIP
+ anim_incobj 10
anim_wait 64
anim_ret
; c9af2
@@ -1281,16 +1277,16 @@ BattleAnim_RazorLeaf: ; c9a7c
BattleAnim_Solarbeam: ; c9af2
anim_jumpif $0, BattleAnim_Solarbeam_branch_c9b30
anim_1gfx ANIM_GFX_CHARGE
- anim_sound $0, SFX_CHARGE
- anim_obj $3d, 48, 84, $0
- anim_obj $3c, 48, 84, $0
- anim_obj $3c, 48, 84, $8
- anim_obj $3c, 48, 84, $10
- anim_obj $3c, 48, 84, $18
- anim_obj $3c, 48, 84, $20
- anim_obj $3c, 48, 84, $28
- anim_obj $3c, 48, 84, $30
- anim_obj $3c, 48, 84, $38
+ anim_sound 0, 0, SFX_CHARGE
+ anim_obj ANIM_OBJ_3D, 6, 0, 10, 4, $0
+ anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $0
+ anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $8
+ anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $10
+ anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $18
+ anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $20
+ anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $28
+ anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $30
+ anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $38
anim_wait 104
anim_bgeffect ANIM_BG_FLASH_WHITE, $0, $4, $2
anim_wait 64
@@ -1299,7 +1295,7 @@ BattleAnim_Solarbeam: ; c9af2
BattleAnim_Solarbeam_branch_c9b30: ; c9b30
anim_1gfx ANIM_GFX_BEAM
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_call BattleAnim_Solarbeam_branch_cbb39
anim_wait 48
anim_ret
@@ -1307,31 +1303,31 @@ BattleAnim_Solarbeam_branch_c9b30: ; c9b30
BattleAnim_Thunderpunch: ; c9b3c
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_LIGHTNING
- anim_obj $a, 136, 56, $43
+ anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
- anim_sound $1, SFX_THUNDER
- anim_obj $2f, 152, 68, $0
+ anim_sound 0, 1, SFX_THUNDER
+ anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0
anim_wait 64
anim_ret
; c9b53
BattleAnim_Thundershock: ; c9b53
anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
- anim_obj $34, 136, 56, $2
+ anim_obj ANIM_OBJ_34, -15, 0, 7, 0, $2
anim_wait 16
- anim_sound $1, SFX_THUNDERSHOCK
- anim_obj $33, 136, 56, $0
+ anim_sound 0, 1, SFX_THUNDERSHOCK
+ anim_obj ANIM_OBJ_33, -15, 0, 7, 0, $0
anim_wait 96
anim_ret
; c9b66
BattleAnim_Thunderbolt: ; c9b66
anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
- anim_obj $32, 136, 56, $2
+ anim_obj ANIM_OBJ_32, -15, 0, 7, 0, $2
anim_wait 16
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_sound $1, SFX_THUNDERSHOCK
- anim_obj $31, 136, 56, $0
+ anim_sound 0, 1, SFX_THUNDERSHOCK
+ anim_obj ANIM_OBJ_31, -15, 0, 7, 0, $0
anim_wait 64
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
anim_wait 64
@@ -1341,11 +1337,11 @@ BattleAnim_Thunderbolt: ; c9b66
BattleAnim_ThunderWave: ; c9b84
anim_1gfx ANIM_GFX_LIGHTNING
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
- anim_sound $1, SFX_THUNDERSHOCK
- anim_obj $30, 136, 56, $0
+ anim_sound 0, 1, SFX_THUNDERSHOCK
+ anim_obj ANIM_OBJ_30, -15, 0, 7, 0, $0
anim_wait 20
anim_bgp $1b
- anim_incobj $1
+ anim_incobj 1
anim_wait 96
anim_ret
; c9b9a
@@ -1353,14 +1349,14 @@ BattleAnim_ThunderWave: ; c9b84
BattleAnim_Thunder: ; c9b9a
anim_1gfx ANIM_GFX_LIGHTNING
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
- anim_sound $1, SFX_THUNDER
- anim_obj $2e, 120, 68, $0
+ anim_sound 0, 1, SFX_THUNDER
+ anim_obj ANIM_OBJ_2E, 15, 0, 8, 4, $0
anim_wait 16
- anim_sound $1, SFX_THUNDER
- anim_obj $2f, 152, 68, $0
+ anim_sound 0, 1, SFX_THUNDER
+ anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0
anim_wait 16
- anim_sound $1, SFX_THUNDER
- anim_obj $2d, 136, 68, $0
+ anim_sound 0, 1, SFX_THUNDER
+ anim_obj ANIM_OBJ_2D, -15, 0, 8, 4, $0
anim_wait 48
anim_ret
; c9bbd
@@ -1368,50 +1364,50 @@ BattleAnim_Thunder: ; c9b9a
BattleAnim_RazorWind: ; c9bbd
anim_jumpif $1, BattleAnim_RazorWind_branch_c9fb5
anim_1gfx ANIM_GFX_WHIP
- anim_bgeffect $6, $0, $1, $0
-BattleAnim_RazorWind_branch_c9bc8: ; c9bc8
+ anim_bgeffect ANIM_BG_06, $0, $1, $0
+.loop
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_sound $1, SFX_RAZOR_WIND
- anim_obj $42, 152, 40, $3
+ anim_sound 0, 1, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_42, -13, 0, 5, 0, $3
anim_wait 4
- anim_sound $1, SFX_RAZOR_WIND
- anim_obj $42, 136, 56, $3
+ anim_sound 0, 1, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_42, -15, 0, 7, 0, $3
anim_wait 4
- anim_sound $1, SFX_RAZOR_WIND
- anim_obj $42, 152, 64, $3
+ anim_sound 0, 1, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_42, -13, 0, 8, 0, $3
anim_wait 4
- anim_sound $1, SFX_RAZOR_WIND
- anim_obj $41, 120, 40, $83
+ anim_sound 0, 1, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_41, 15, 0, 5, 0, $83
anim_wait 4
- anim_sound $1, SFX_RAZOR_WIND
- anim_obj $41, 120, 64, $83
+ anim_sound 0, 1, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_41, 15, 0, 8, 0, $83
anim_wait 4
- anim_loop $3, BattleAnim_RazorWind_branch_c9bc8
+ anim_loop 3, .loop
anim_wait 24
anim_ret
; c9c00
BattleAnim_Sonicboom_JP: ; c9c00
anim_2gfx ANIM_GFX_WHIP, ANIM_GFX_HIT
-BattleAnim_Sonicboom_JP_branch_c9c03: ; c9c03
- anim_sound $c, SFX_RAZOR_WIND
- anim_obj $43, 64, 80, $3
+.loop
+ anim_sound 3, 0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_43, 8, 0, 10, 0, $3
anim_wait 8
- anim_sound $c, SFX_RAZOR_WIND
- anim_obj $43, 64, 88, $2
+ anim_sound 3, 0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_43, 8, 0, 11, 0, $2
anim_wait 8
- anim_sound $c, SFX_RAZOR_WIND
- anim_obj $43, 64, 96, $4
+ anim_sound 3, 0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_43, 8, 0, 12, 0, $4
anim_wait 8
- anim_loop $2, BattleAnim_Sonicboom_JP_branch_c9c03
+ anim_loop 2, .loop
anim_wait 32
- anim_incobj $1
- anim_incobj $2
- anim_incobj $3
- anim_incobj $4
- anim_incobj $5
- anim_incobj $6
- anim_obj $1, 136, 56, $0
+ anim_incobj 1
+ anim_incobj 2
+ anim_incobj 3
+ anim_incobj 4
+ anim_incobj 5
+ anim_incobj 6
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; c9c36
@@ -1419,15 +1415,14 @@ BattleAnim_Sonicboom_JP_branch_c9c03: ; c9c03
BattleAnim_Gust: ; c9c36
BattleAnim_Sonicboom: ; c9c36
anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
-BattleAnim_Gust_branch_c9c39: ; c9c39
-BattleAnim_Sonicboom_branch_c9c39: ; c9c39
- anim_sound $1, SFX_RAZOR_WIND
- anim_obj ANIM_OBJ_GUST, 136, 72, $0
+.loop
+ anim_sound 0, 1, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_GUST, -15, 0, 9, 0, $0
anim_wait 6
- anim_loop $9, BattleAnim_Gust_branch_c9c39
- anim_obj $1, 144, 64, $18
+ anim_loop 9, .loop
+ anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $18
anim_wait 8
- anim_obj $1, 128, 32, $18
+ anim_obj ANIM_OBJ_01, 16, 0, 4, 0, $18
anim_wait 16
anim_ret
; c9c53
@@ -1435,36 +1430,36 @@ BattleAnim_Sonicboom_branch_c9c39: ; c9c39
BattleAnim_Selfdestruct: ; c9c53
anim_1gfx ANIM_GFX_EXPLOSION
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24
- anim_jumpif $1, BattleAnim_Selfdestruct_branch_c9c63
+ anim_jumpif $1, .loop
anim_call BattleAnim_Selfdestruct_branch_cbb8f
anim_wait 16
anim_ret
; c9c63
-BattleAnim_Selfdestruct_branch_c9c63: ; c9c63
+.loop
anim_call BattleAnim_Selfdestruct_branch_cbb62
anim_wait 5
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
- anim_loop $2, BattleAnim_Selfdestruct_branch_c9c63
+ anim_loop 2, .loop
anim_wait 16
anim_ret
; c9c72
BattleAnim_Explosion: ; c9c72
anim_1gfx ANIM_GFX_EXPLOSION
- anim_bgeffect $1f, $60, $4, $10
+ anim_bgeffect ANIM_BG_1F, $60, $4, $10
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24
- anim_jumpif $1, BattleAnim_Explosion_branch_c9c87
+ anim_jumpif $1, .loop
anim_call BattleAnim_Explosion_branch_cbb8f
anim_wait 16
anim_ret
; c9c87
-BattleAnim_Explosion_branch_c9c87: ; c9c87
+.loop
anim_call BattleAnim_Explosion_branch_cbb62
anim_wait 5
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
- anim_loop $2, BattleAnim_Explosion_branch_c9c87
+ anim_loop 2, .loop
anim_wait 16
anim_ret
; c9c96
@@ -1478,64 +1473,64 @@ BattleAnim_Acid: ; c9c96
BattleAnim_RockThrow: ; c9c9d
anim_1gfx ANIM_GFX_ROCKS
- anim_bgeffect $1f, $60, $1, $0
- anim_sound $1, SFX_STRENGTH
- anim_obj $1e, 128, 64, $40
+ anim_bgeffect ANIM_BG_1F, $60, $1, $0
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40
anim_wait 2
- anim_sound $1, SFX_STRENGTH
- anim_obj $1d, 120, 68, $30
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1D, 15, 0, 8, 4, $30
anim_wait 2
- anim_sound $1, SFX_STRENGTH
- anim_obj $1e, 152, 68, $30
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30
anim_wait 2
- anim_sound $1, SFX_STRENGTH
- anim_obj $1d, 144, 64, $40
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1D, -14, 0, 8, 0, $40
anim_wait 2
- anim_sound $1, SFX_STRENGTH
- anim_obj $1e, 136, 68, $30
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30
anim_wait 96
anim_ret
; c9cd2
BattleAnim_RockSlide: ; c9cd2
anim_1gfx ANIM_GFX_ROCKS
- anim_bgeffect $1f, $c0, $1, $0
-BattleAnim_RockSlide_branch_c9cd9: ; c9cd9
- anim_sound $1, SFX_STRENGTH
- anim_obj $1e, 128, 64, $40
+ anim_bgeffect ANIM_BG_1F, $c0, $1, $0
+.loop
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40
anim_wait 4
- anim_sound $1, SFX_STRENGTH
- anim_obj $1d, 120, 68, $30
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1D, 15, 0, 8, 4, $30
anim_wait 4
- anim_sound $1, SFX_STRENGTH
- anim_obj $1e, 152, 68, $30
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30
anim_wait 4
- anim_sound $1, SFX_STRENGTH
- anim_obj $1d, 144, 64, $40
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1D, -14, 0, 8, 0, $40
anim_wait 4
- anim_sound $1, SFX_STRENGTH
- anim_obj $1e, 136, 68, $30
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30
anim_wait 16
- anim_loop $4, BattleAnim_RockSlide_branch_c9cd9
+ anim_loop 4, .loop
anim_wait 96
anim_ret
; c9d0c
BattleAnim_Sing: ; c9d0c
anim_1gfx ANIM_GFX_NOISE
- anim_sound $42, SFX_SING
-BattleAnim_Sing_branch_c9d11: ; c9d11
- anim_obj $23, 64, 92, $0
+ anim_sound 16, 2, SFX_SING
+.loop
+ anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $0
anim_wait 8
- anim_obj $23, 64, 92, $1
+ anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $1
anim_wait 8
- anim_obj $23, 64, 92, $2
+ anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $2
anim_wait 8
- anim_obj $23, 64, 92, $0
+ anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $0
anim_wait 8
- anim_obj $23, 64, 92, $2
+ anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $2
anim_wait 8
- anim_loop $4, BattleAnim_Sing_branch_c9d11
+ anim_loop 4, .loop
anim_wait 64
anim_ret
; c9d35
@@ -1545,35 +1540,32 @@ BattleAnim_SleepPowder: ; c9d35
BattleAnim_Spore: ; c9d35
BattleAnim_StunSpore: ; c9d35
anim_1gfx ANIM_GFX_POWDER
-BattleAnim_Poisonpowder_branch_c9d37: ; c9d37
-BattleAnim_SleepPowder_branch_c9d37: ; c9d37
-BattleAnim_Spore_branch_c9d37: ; c9d37
-BattleAnim_StunSpore_branch_c9d37: ; c9d37
- anim_sound $1, SFX_POWDER
- anim_obj $26, 104, 16, $0
+.loop
+ anim_sound 0, 1, SFX_POWDER
+ anim_obj ANIM_OBJ_26, 13, 0, 2, 0, $0
anim_wait 4
- anim_sound $1, SFX_POWDER
- anim_obj $26, 136, 16, $0
+ anim_sound 0, 1, SFX_POWDER
+ anim_obj ANIM_OBJ_26, -15, 0, 2, 0, $0
anim_wait 4
- anim_sound $1, SFX_POWDER
- anim_obj $26, 112, 16, $0
+ anim_sound 0, 1, SFX_POWDER
+ anim_obj ANIM_OBJ_26, 14, 0, 2, 0, $0
anim_wait 4
- anim_sound $1, SFX_POWDER
- anim_obj $26, 128, 16, $0
+ anim_sound 0, 1, SFX_POWDER
+ anim_obj ANIM_OBJ_26, 16, 0, 2, 0, $0
anim_wait 4
- anim_sound $1, SFX_POWDER
- anim_obj $26, 120, 16, $0
+ anim_sound 0, 1, SFX_POWDER
+ anim_obj ANIM_OBJ_26, 15, 0, 2, 0, $0
anim_wait 4
- anim_loop $2, BattleAnim_Poisonpowder_branch_c9d37
+ anim_loop 2, .loop
anim_wait 96
anim_ret
; c9d6a
BattleAnim_HyperBeam: ; c9d6a
anim_1gfx ANIM_GFX_BEAM
- anim_bgeffect $1f, $30, $4, $10
+ anim_bgeffect ANIM_BG_1F, $30, $4, $10
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_call BattleAnim_HyperBeam_branch_cbb39
anim_wait 48
anim_ret
@@ -1581,31 +1573,31 @@ BattleAnim_HyperBeam: ; c9d6a
BattleAnim_AuroraBeam: ; c9d80
anim_1gfx ANIM_GFX_BEAM
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
anim_wait 64
anim_call BattleAnim_AuroraBeam_branch_cbb39
anim_wait 48
- anim_incobj $5
+ anim_incobj 5
anim_wait 64
anim_ret
; c9d95
BattleAnim_Vicegrip: ; c9d95
anim_1gfx ANIM_GFX_CUT
- anim_sound $1, SFX_VICEGRIP
- anim_obj $37, 152, 40, $0
- anim_obj $39, 120, 72, $0
+ anim_sound 0, 1, SFX_VICEGRIP
+ anim_obj ANIM_OBJ_37, -13, 0, 5, 0, $0
+ anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0
anim_wait 32
anim_ret
; c9da6
BattleAnim_Scratch: ; c9da6
anim_1gfx ANIM_GFX_CUT
- anim_sound $1, SFX_SCRATCH
- anim_obj $37, 144, 48, $0
- anim_obj $37, 140, 44, $0
- anim_obj $37, 136, 40, $0
+ anim_sound 0, 1, SFX_SCRATCH
+ anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0
+ anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0
+ anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0
anim_wait 32
anim_ret
; c9dbc
@@ -1613,80 +1605,80 @@ BattleAnim_Scratch: ; c9da6
BattleAnim_FurySwipes: ; c9dbc
anim_1gfx ANIM_GFX_CUT
anim_jumpif $1, BattleAnim_FurySwipes_branch_c9dd9
- anim_sound $1, SFX_SCRATCH
- anim_obj $37, 144, 48, $0
- anim_obj $37, 140, 44, $0
- anim_obj $37, 136, 40, $0
- anim_sound $1, SFX_SCRATCH
+ anim_sound 0, 1, SFX_SCRATCH
+ anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0
+ anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0
+ anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0
+ anim_sound 0, 1, SFX_SCRATCH
anim_wait 32
anim_ret
; c9dd9
BattleAnim_FurySwipes_branch_c9dd9: ; c9dd9
- anim_sound $1, SFX_SCRATCH
- anim_obj $38, 120, 48, $0
- anim_obj $38, 124, 44, $0
- anim_obj $38, 128, 40, $0
- anim_sound $1, SFX_SCRATCH
+ anim_sound 0, 1, SFX_SCRATCH
+ anim_obj ANIM_OBJ_38, 15, 0, 6, 0, $0
+ anim_obj ANIM_OBJ_38, 15, 4, 5, 4, $0
+ anim_obj ANIM_OBJ_38, 16, 0, 5, 0, $0
+ anim_sound 0, 1, SFX_SCRATCH
anim_wait 32
anim_ret
; c9df0
BattleAnim_Cut: ; c9df0
anim_1gfx ANIM_GFX_CUT
- anim_sound $1, SFX_CUT
- anim_obj $3a, 152, 40, $0
+ anim_sound 0, 1, SFX_CUT
+ anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0
anim_wait 32
anim_ret
; c9dfc
BattleAnim_Slash: ; c9dfc
anim_1gfx ANIM_GFX_CUT
- anim_sound $1, SFX_CUT
- anim_obj $3a, 152, 40, $0
- anim_obj $3a, 148, 36, $0
+ anim_sound 0, 1, SFX_CUT
+ anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0
+ anim_obj ANIM_OBJ_3A, -14, 4, 4, 4, $0
anim_wait 32
anim_ret
; c9e0d
BattleAnim_Clamp: ; c9e0d
anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
- anim_obj $35, 136, 56, $a0
- anim_obj $35, 136, 56, $20
+ anim_obj ANIM_OBJ_35, -15, 0, 7, 0, $a0
+ anim_obj ANIM_OBJ_35, -15, 0, 7, 0, $20
anim_wait 16
- anim_sound $1, SFX_BITE
- anim_obj $1, 144, 48, $18
+ anim_sound 0, 1, SFX_BITE
+ anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $18
anim_wait 32
- anim_sound $1, SFX_BITE
- anim_obj $1, 128, 64, $18
+ anim_sound 0, 1, SFX_BITE
+ anim_obj ANIM_OBJ_01, 16, 0, 8, 0, $18
anim_wait 16
anim_ret
; c9e2e
BattleAnim_Bite: ; c9e2e
anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
- anim_obj $36, 136, 56, $98
- anim_obj $36, 136, 56, $18
+ anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $98
+ anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $18
anim_wait 8
- anim_sound $1, SFX_BITE
- anim_obj $1, 144, 48, $18
+ anim_sound 0, 1, SFX_BITE
+ anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $18
anim_wait 16
- anim_sound $1, SFX_BITE
- anim_obj $1, 128, 64, $18
+ anim_sound 0, 1, SFX_BITE
+ anim_obj ANIM_OBJ_01, 16, 0, 8, 0, $18
anim_wait 8
anim_ret
; c9e4f
BattleAnim_Teleport: ; c9e4f
anim_1gfx ANIM_GFX_SPEED
- anim_call BattleAnim_Teleport_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_TELEPORT, $0, $1, $0
anim_wait 32
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
anim_wait 3
anim_incbgeffect ANIM_BG_TELEPORT
- anim_call BattleAnim_Teleport_branch_cbcb7
- anim_bgeffect $6, $0, $1, $0
+ anim_call BattleAnim_ShowMon_0
+ anim_bgeffect ANIM_BG_06, $0, $1, $0
anim_call BattleAnim_Teleport_branch_cbb12
anim_wait 64
anim_ret
@@ -1696,8 +1688,8 @@ BattleAnim_Fly: ; c9e6f
anim_jumpif $1, BattleAnim_Fly_branch_c9e89
anim_jumpif $2, BattleAnim_Fly_branch_c9e82
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_WING_ATTACK
- anim_obj $1, 136, 56, $0
+ anim_sound 0, 1, SFX_WING_ATTACK
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 32
BattleAnim_Fly_branch_c9e82: ; c9e82
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
@@ -1707,7 +1699,7 @@ BattleAnim_Fly_branch_c9e82: ; c9e82
BattleAnim_Fly_branch_c9e89: ; c9e89
anim_1gfx ANIM_GFX_SPEED
- anim_bgeffect $6, $0, $1, $0
+ anim_bgeffect ANIM_BG_06, $0, $1, $0
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
anim_call BattleAnim_Fly_branch_cbb12
anim_wait 64
@@ -1715,125 +1707,125 @@ BattleAnim_Fly_branch_c9e89: ; c9e89
; c9e9a
BattleAnim_DoubleTeam: ; c9e9a
- anim_call BattleAnim_DoubleTeam_branch_cbcaf
- anim_sound $0, SFX_PSYBEAM
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_sound 0, 0, SFX_PSYBEAM
anim_bgeffect ANIM_BG_DOUBLE_TEAM, $0, $1, $0
anim_wait 96
anim_incbgeffect ANIM_BG_DOUBLE_TEAM
anim_wait 24
anim_incbgeffect ANIM_BG_DOUBLE_TEAM
- anim_call BattleAnim_DoubleTeam_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; c9eaf
BattleAnim_Recover: ; c9eaf
anim_1gfx ANIM_GFX_BUBBLE
- anim_call BattleAnim_Recover_branch_cbca7
- anim_sound $0, SFX_FULL_HEAL
- anim_bgeffect $18, $0, $1, $40
- anim_obj $2c, 44, 88, $30
- anim_obj $2c, 44, 88, $31
- anim_obj $2c, 44, 88, $32
- anim_obj $2c, 44, 88, $33
- anim_obj $2c, 44, 88, $34
- anim_obj $2c, 44, 88, $35
- anim_obj $2c, 44, 88, $36
- anim_obj $2c, 44, 88, $37
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_sound 0, 0, SFX_FULL_HEAL
+ anim_bgeffect ANIM_BG_18, $0, $1, $40
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $30
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $31
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $32
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $33
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $34
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $35
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $36
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $37
anim_wait 64
- anim_incbgeffect $18
- anim_call BattleAnim_Recover_branch_cbcb7
+ anim_incbgeffect ANIM_BG_18
+ anim_call BattleAnim_ShowMon_0
anim_ret
; c9eeb
BattleAnim_Absorb: ; c9eeb
anim_1gfx ANIM_GFX_CHARGE
- anim_obj $3d, 44, 88, $0
-BattleAnim_Absorb_branch_c9ef2: ; c9ef2
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 128, 48, $2
+ anim_obj ANIM_OBJ_3D, 5, 4, 11, 0, $0
+.loop
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, 16, 0, 6, 0, $2
anim_wait 6
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 136, 64, $3
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, -15, 0, 8, 0, $3
anim_wait 6
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 136, 32, $4
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, -15, 0, 4, 0, $4
anim_wait 6
- anim_loop $5, BattleAnim_Absorb_branch_c9ef2
+ anim_loop 5, .loop
anim_wait 32
anim_ret
; c9f13
BattleAnim_MegaDrain: ; c9f13
anim_1gfx ANIM_GFX_CHARGE
- anim_call BattleAnim_MegaDrain_branch_cbca7
- anim_bgeffect $1c, $0, $0, $10
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1C, $0, $0, $10
anim_setvar $0
-BattleAnim_MegaDrain_branch_c9f1f: ; c9f1f
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 128, 48, $2
+.loop
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, 16, 0, 6, 0, $2
anim_wait 6
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 136, 64, $3
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, -15, 0, 8, 0, $3
anim_wait 6
- anim_sound $1b, SFX_WATER_GUN
- anim_obj $45, 136, 32, $4
+ anim_sound 6, 3, SFX_WATER_GUN
+ anim_obj ANIM_OBJ_45, -15, 0, 4, 0, $4
anim_wait 6
anim_incvar
- anim_jumpvar $7, BattleAnim_MegaDrain_branch_c9f4e
- anim_jumpvar $2, BattleAnim_MegaDrain_branch_c9f46
- anim_jump BattleAnim_MegaDrain_branch_c9f1f
+ anim_jumpvar $7, .done
+ anim_jumpvar $2, .spawn
+ anim_jump .loop
; c9f46
-BattleAnim_MegaDrain_branch_c9f46: ; c9f46
- anim_obj $3d, 44, 88, $0
- anim_jump BattleAnim_MegaDrain_branch_c9f1f
+.spawn
+ anim_obj ANIM_OBJ_3D, 5, 4, 11, 0, $0
+ anim_jump .loop
; c9f4e
-BattleAnim_MegaDrain_branch_c9f4e: ; c9f4e
+.done
anim_wait 32
- anim_incbgeffect $1c
- anim_call BattleAnim_MegaDrain_branch_cbcb7
+ anim_incbgeffect ANIM_BG_1C
+ anim_call BattleAnim_ShowMon_0
anim_ret
; c9f55
BattleAnim_EggBomb: ; c9f55
anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION
- anim_sound $0, SFX_SWITCH_POKEMON
- anim_obj $46, 44, 104, $1
+ anim_sound 0, 0, SFX_SWITCH_POKEMON
+ anim_obj ANIM_OBJ_46, 5, 4, 13, 0, $1
anim_wait 128
anim_wait 96
- anim_incobj $1
+ anim_incobj 1
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $18, 128, 64, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_18, 16, 0, 8, 0, $0
anim_wait 8
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $18, 144, 68, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_18, -14, 0, 8, 4, $0
anim_wait 8
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $18, 136, 72, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_18, -15, 0, 9, 0, $0
anim_wait 24
anim_ret
; c9f85
BattleAnim_Softboiled: ; c9f85
anim_2gfx ANIM_GFX_EGG, ANIM_GFX_BUBBLE
- anim_call BattleAnim_Softboiled_branch_cbca7
- anim_sound $0, SFX_SWITCH_POKEMON
- anim_obj $46, 44, 104, $6
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_sound 0, 0, SFX_SWITCH_POKEMON
+ anim_obj ANIM_OBJ_46, 5, 4, 13, 0, $6
anim_wait 128
- anim_incobj $2
- anim_obj $46, 76, 104, $b
+ anim_incobj 2
+ anim_obj ANIM_OBJ_46, 9, 4, 13, 0, $b
anim_wait 16
- anim_bgeffect $18, $0, $1, $40
- anim_sound $0, SFX_METRONOME
-BattleAnim_Softboiled_branch_c9fa4: ; c9fa4
- anim_obj $2c, 44, 88, $20
+ anim_bgeffect ANIM_BG_18, $0, $1, $40
+ anim_sound 0, 0, SFX_METRONOME
+.loop
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $20
anim_wait 8
- anim_loop $8, BattleAnim_Softboiled_branch_c9fa4
+ anim_loop 8, .loop
anim_wait 128
- anim_incbgeffect $18
- anim_call BattleAnim_Softboiled_branch_cbcb7
+ anim_incbgeffect ANIM_BG_18
+ anim_call BattleAnim_ShowMon_0
anim_ret
; c9fb5
@@ -1842,211 +1834,208 @@ BattleAnim_RazorWind_branch_c9fb5: ; c9fb5
BattleAnim_SkullBash_branch_c9fb5: ; c9fb5
BattleAnim_SkyAttack_branch_c9fb5: ; c9fb5
anim_1gfx ANIM_GFX_SPEED
- anim_call BattleAnim_FocusEnergy_branch_cbca7
- anim_bgeffect $16, $0, $1, $40
- anim_bgeffect $6, $0, $2, $0
-BattleAnim_FocusEnergy_branch_c9fc4: ; c9fc4
-BattleAnim_RazorWind_branch_c9fc4: ; c9fc4
-BattleAnim_SkullBash_branch_c9fc4: ; c9fc4
-BattleAnim_SkyAttack_branch_c9fc4: ; c9fc4
- anim_sound $0, SFX_SWORDS_DANCE
- anim_obj $47, 44, 108, $6
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_16, $0, $1, $40
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+.loop
+ anim_sound 0, 0, SFX_SWORDS_DANCE
+ anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 36, 108, $6
+ anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 52, 108, $8
+ anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 28, 108, $8
+ anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 60, 108, $6
+ anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 20, 108, $8
+ anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 68, 108, $8
+ anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8
anim_wait 2
- anim_loop $3, BattleAnim_FocusEnergy_branch_c9fc4
+ anim_loop 3, .loop
anim_wait 8
- anim_incbgeffect $16
- anim_call BattleAnim_FocusEnergy_branch_cbcb7
+ anim_incbgeffect ANIM_BG_16
+ anim_call BattleAnim_ShowMon_0
anim_ret
; c9ffc
BattleAnim_Bide: ; c9ffc
anim_jumpif $0, BattleAnim_Bide_branch_c9651
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Bide_branch_cbca7
- anim_sound $0, SFX_ESCAPE_ROPE
- anim_bgeffect $1a, $0, $1, $20
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_sound 0, 0, SFX_ESCAPE_ROPE
+ anim_bgeffect ANIM_BG_1A, $0, $1, $20
anim_wait 72
- anim_incbgeffect $1a
- anim_call BattleAnim_Bide_branch_cbcb7
+ anim_incbgeffect ANIM_BG_1A
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca014
BattleAnim_Bind: ; ca014
anim_1gfx ANIM_GFX_ROPE
- anim_sound $1, SFX_BIND
- anim_obj $48, 132, 64, $0
+ anim_sound 0, 1, SFX_BIND
+ anim_obj ANIM_OBJ_48, -16, 4, 8, 0, $0
anim_wait 8
- anim_obj $49, 132, 56, $0
+ anim_obj ANIM_OBJ_49, -16, 4, 7, 0, $0
anim_wait 8
- anim_obj $48, 132, 48, $0
+ anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0
anim_wait 64
- anim_sound $1, SFX_BIND
- anim_incobj $1
- anim_incobj $2
- anim_incobj $3
+ anim_sound 0, 1, SFX_BIND
+ anim_incobj 1
+ anim_incobj 2
+ anim_incobj 3
anim_wait 96
anim_ret
; ca036
BattleAnim_Wrap: ; ca036
anim_1gfx ANIM_GFX_ROPE
- anim_sound $1, SFX_BIND
- anim_obj $48, 132, 64, $0
+ anim_sound 0, 1, SFX_BIND
+ anim_obj ANIM_OBJ_48, -16, 4, 8, 0, $0
anim_wait 8
- anim_obj $48, 132, 56, $0
+ anim_obj ANIM_OBJ_48, -16, 4, 7, 0, $0
anim_wait 8
- anim_obj $48, 132, 48, $0
+ anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0
anim_wait 64
- anim_sound $1, SFX_BIND
- anim_incobj $1
- anim_incobj $2
- anim_incobj $3
+ anim_sound 0, 1, SFX_BIND
+ anim_incobj 1
+ anim_incobj 2
+ anim_incobj 3
anim_wait 96
anim_ret
; ca058
BattleAnim_Confusion: ; ca058
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Confusion_branch_cbcca
- anim_sound $1, SFX_PSYCHIC
+ anim_call BattleAnim_FollowPlayerHead_1
+ anim_sound 0, 1, SFX_PSYCHIC
anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
anim_wait 128
anim_incbgeffect ANIM_BG_NIGHT_SHADE
- anim_call BattleAnim_Confusion_branch_cbcd2
+ anim_call BattleAnim_ShowMon_1
anim_ret
; ca06c
BattleAnim_Constrict: ; ca06c
anim_1gfx ANIM_GFX_ROPE
- anim_sound $1, SFX_BIND
- anim_obj $49, 132, 64, $0
+ anim_sound 0, 1, SFX_BIND
+ anim_obj ANIM_OBJ_49, -16, 4, 8, 0, $0
anim_wait 8
- anim_obj $48, 132, 48, $0
+ anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0
anim_wait 8
- anim_obj $49, 132, 40, $0
+ anim_obj ANIM_OBJ_49, -16, 4, 5, 0, $0
anim_wait 8
- anim_obj $48, 132, 56, $0
+ anim_obj ANIM_OBJ_48, -16, 4, 7, 0, $0
anim_wait 64
anim_ret
; ca08a
BattleAnim_Earthquake: ; ca08a
- anim_bgeffect $1f, $60, $4, $10
-BattleAnim_Earthquake_branch_ca08f: ; ca08f
- anim_sound $1, SFX_EMBER
+ anim_bgeffect ANIM_BG_1F, $60, $4, $10
+.loop
+ anim_sound 0, 1, SFX_EMBER
anim_wait 24
- anim_loop $4, BattleAnim_Earthquake_branch_ca08f
+ anim_loop 4, .loop
anim_ret
; ca098
BattleAnim_Fissure: ; ca098
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
- anim_bgeffect $1f, $60, $4, $0
-BattleAnim_Fissure_branch_ca0a2: ; ca0a2
- anim_sound $1, SFX_EMBER
+ anim_bgeffect ANIM_BG_1F, $60, $4, $0
+.loop
+ anim_sound 0, 1, SFX_EMBER
anim_wait 24
- anim_loop $4, BattleAnim_Fissure_branch_ca0a2
+ anim_loop 4, .loop
anim_ret
; ca0ab
BattleAnim_Growl: ; ca0ab
anim_1gfx ANIM_GFX_NOISE
anim_enemyfeetobj
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_cry $0
-BattleAnim_Growl_branch_ca0b5: ; ca0b5
+.loop
anim_call BattleAnim_Growl_branch_cbbbc
anim_wait 16
- anim_loop $3, BattleAnim_Growl_branch_ca0b5
+ anim_loop 3, .loop
anim_wait 9
anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0
anim_wait 8
- anim_bgeffect $19, $0, $0, $40
+ anim_bgeffect ANIM_BG_19, $0, $0, $40
anim_wait 64
- anim_incbgeffect $19
+ anim_incbgeffect ANIM_BG_19
anim_wait 1
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
anim_wait 5
- anim_incobj $a
+ anim_incobj 10
anim_wait 8
anim_ret
; ca0d7
BattleAnim_Roar: ; ca0d7
anim_1gfx ANIM_GFX_NOISE
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_cry $1
-BattleAnim_Roar_branch_ca0e0: ; ca0e0
+.loop
anim_call BattleAnim_Roar_branch_cbbbc
anim_wait 16
- anim_loop $3, BattleAnim_Roar_branch_ca0e0
+ anim_loop 3, .loop
anim_wait 16
- anim_jumpif $0, BattleAnim_Roar_branch_ca0f3
- anim_bgeffect $27, $0, $0, $0
+ anim_jumpif $0, .done
+ anim_bgeffect ANIM_BG_27, $0, $0, $0
anim_wait 64
-BattleAnim_Roar_branch_ca0f3: ; ca0f3
+.done
anim_ret
; ca0f4
BattleAnim_Supersonic: ; ca0f4
anim_1gfx ANIM_GFX_PSYCHIC
-BattleAnim_Supersonic_branch_ca0f6: ; ca0f6
- anim_sound $1a, SFX_SUPERSONIC
- anim_obj $4c, 64, 88, $2
+.loop
+ anim_sound 6, 2, SFX_SUPERSONIC
+ anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2
anim_wait 4
- anim_loop $a, BattleAnim_Supersonic_branch_ca0f6
+ anim_loop 10, .loop
anim_wait 64
anim_ret
; ca105
BattleAnim_Screech: ; ca105
anim_1gfx ANIM_GFX_PSYCHIC
- anim_bgeffect $1f, $8, $1, $20
- anim_sound $1a, SFX_SCREECH
-BattleAnim_Screech_branch_ca10f: ; ca10f
- anim_obj $4c, 64, 88, $2
+ anim_bgeffect ANIM_BG_1F, $8, $1, $20
+ anim_sound 6, 2, SFX_SCREECH
+.loop
+ anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2
anim_wait 2
- anim_loop $2, BattleAnim_Screech_branch_ca10f
+ anim_loop 2, .loop
anim_wait 64
anim_ret
; ca11b
BattleAnim_ConfuseRay: ; ca11b
anim_1gfx ANIM_GFX_SPEED
- anim_bgeffect $6, $0, $2, $0
- anim_bgeffect $8, $0, $4, $0
- anim_obj $4d, 64, 88, $0
- anim_obj $4d, 64, 88, $80
- anim_obj $4d, 64, 88, $88
- anim_obj $4d, 64, 88, $90
- anim_obj $4d, 64, 88, $98
- anim_obj $4d, 64, 88, $a0
- anim_obj $4d, 64, 88, $a8
- anim_obj $4d, 64, 88, $b0
- anim_obj $4d, 64, 88, $b8
-BattleAnim_ConfuseRay_branch_ca154: ; ca154
- anim_sound $1a, SFX_WHIRLWIND
- anim_wait 16
- anim_loop $8, BattleAnim_ConfuseRay_branch_ca154
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_bgeffect ANIM_BG_08, $0, $4, $0
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $0
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $80
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $88
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $90
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $98
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $a0
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $a8
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $b0
+ anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $b8
+.loop
+ anim_sound 6, 2, SFX_WHIRLWIND
+ anim_wait 16
+ anim_loop 8, .loop
anim_wait 32
anim_ret
; ca15e
BattleAnim_Leer: ; ca15e
anim_1gfx ANIM_GFX_BEAM
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_call BattleAnim_Leer_branch_cbadc
anim_wait 16
anim_ret
@@ -2054,128 +2043,127 @@ BattleAnim_Leer: ; ca15e
BattleAnim_Reflect: ; ca16a
anim_1gfx ANIM_GFX_REFLECT
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_sound $0, SFX_SHINE
- anim_obj $50, 72, 80, $0
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0
anim_wait 24
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_sound $0, SFX_SHINE
- anim_obj $50, 72, 80, $0
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0
anim_wait 64
anim_ret
; ca18e
BattleAnim_LightScreen: ; ca18e
anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_REFLECT
- anim_bgeffect $6, $0, $2, $0
- anim_sound $0, SFX_FLASH
- anim_obj $50, 72, 80, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_sound 0, 0, SFX_FLASH
+ anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0
anim_wait 4
- anim_obj $6d, 72, 80, $0
+ anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $0
anim_wait 4
- anim_obj $6d, 72, 80, $8
+ anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $8
anim_wait 4
- anim_obj $6d, 72, 80, $10
+ anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $10
anim_wait 4
- anim_obj $6d, 72, 80, $18
+ anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $18
anim_wait 4
- anim_obj $50, 72, 80, $0
- anim_obj $6d, 72, 80, $20
+ anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0
+ anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $20
anim_wait 4
- anim_obj $6d, 72, 80, $28
+ anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $28
anim_wait 4
- anim_obj $6d, 72, 80, $30
+ anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $30
anim_wait 4
- anim_obj $6d, 72, 80, $38
+ anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $38
anim_wait 64
anim_ret
; ca1d5
BattleAnim_Amnesia: ; ca1d5
anim_1gfx ANIM_GFX_STATUS
- anim_sound $0, SFX_LICK
- anim_obj $53, 64, 80, $2
+ anim_sound 0, 0, SFX_LICK
+ anim_obj ANIM_OBJ_53, 8, 0, 10, 0, $2
anim_wait 16
- anim_obj $53, 68, 80, $1
+ anim_obj ANIM_OBJ_53, 8, 4, 10, 0, $1
anim_wait 16
- anim_obj $53, 72, 80, $0
+ anim_obj ANIM_OBJ_53, 9, 0, 10, 0, $0
anim_wait 64
anim_ret
; ca1ed
BattleAnim_DizzyPunch: ; ca1ed
anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_HIT
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $0, 136, 40, $0
- anim_obj $2, 136, 64, $0
- anim_wait 16
- anim_sound $1, SFX_KINESIS
- anim_obj ANIM_OBJ_CHICK, 136, 24, $15
- anim_obj ANIM_OBJ_CHICK, 136, 24, $aa
- anim_obj ANIM_OBJ_CHICK, 136, 24, $bf
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_00, -15, 0, 5, 0, $0
+ anim_obj ANIM_OBJ_02, -15, 0, 8, 0, $0
+ anim_wait 16
+ anim_sound 0, 1, SFX_KINESIS
+ anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $15
+ anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $aa
+ anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $bf
anim_wait 96
anim_ret
; ca212
BattleAnim_Rest: ; ca212
anim_1gfx ANIM_GFX_STATUS
- anim_sound $0, SFX_TAIL_WHIP
-BattleAnim_Rest_branch_ca217: ; ca217
- anim_obj $54, 64, 80, $0
+ anim_sound 0, 0, SFX_TAIL_WHIP
+.loop
+ anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0
anim_wait 40
- anim_loop $3, BattleAnim_Rest_branch_ca217
+ anim_loop 3, .loop
anim_wait 32
anim_ret
; ca223
BattleAnim_AcidArmor: ; ca223
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_AcidArmor_branch_cbcaf
+ anim_call BattleAnim_FollowPlayerHead_0
anim_bgeffect ANIM_BG_ACID_ARMOR, $0, $1, $8
- anim_sound $0, SFX_MEGA_PUNCH
+ anim_sound 0, 0, SFX_MEGA_PUNCH
anim_wait 64
anim_incbgeffect ANIM_BG_ACID_ARMOR
- anim_call BattleAnim_AcidArmor_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca237
BattleAnim_Splash: ; ca237
anim_1gfx ANIM_GFX_HIT
- anim_sound $0, SFX_VICEGRIP
- anim_call BattleAnim_Splash_branch_cbcaf
- anim_bgeffect $22, $0, $1, $0
+ anim_sound 0, 0, SFX_VICEGRIP
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
anim_wait 96
- anim_incbgeffect $22
- anim_call BattleAnim_Splash_branch_cbcb7
+ anim_incbgeffect ANIM_BG_BOUNCE_DOWN
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca24b
BattleAnim_Dig: ; ca24b
anim_2gfx ANIM_GFX_SAND, ANIM_GFX_HIT
- anim_jumpif $0, BattleAnim_Dig_branch_ca27d
- anim_jumpif $2, BattleAnim_Dig_branch_ca286
- anim_call BattleAnim_Dig_branch_cbcaf
- anim_bgeffect $23, $0, $1, $1
- anim_obj $57, 72, 104, $0
-BattleAnim_Dig_branch_ca263: ; ca263
- anim_sound $0, SFX_RAZOR_WIND
- anim_obj $56, 56, 104, $0
- anim_wait 16
- anim_loop $6, BattleAnim_Dig_branch_ca263
+ anim_jumpif $0, .hit
+ anim_jumpif $2, .fail
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_DIG, $0, $1, $1
+ anim_obj ANIM_OBJ_57, 9, 0, 13, 0, $0
+.loop
+ anim_sound 0, 0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_56, 7, 0, 13, 0, $0
+ anim_wait 16
+ anim_loop 6, .loop
anim_wait 32
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
anim_wait 8
- anim_incbgeffect $23
- anim_call BattleAnim_Dig_branch_cbcb7
+ anim_incbgeffect ANIM_BG_DIG
+ anim_call BattleAnim_ShowMon_0
anim_ret
-; ca27d
-BattleAnim_Dig_branch_ca27d: ; ca27d
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $1, 136, 56, $0
+.hit
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 32
-BattleAnim_Dig_branch_ca286: ; ca286
+.fail
anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
anim_wait 32
anim_ret
@@ -2189,168 +2177,168 @@ BattleAnim_SandAttack: ; ca28d
BattleAnim_StringShot: ; ca293
anim_1gfx ANIM_GFX_WEB
- anim_bgeffect $7, $0, $2, $0
- anim_sound $1a, SFX_MENU
- anim_obj $5a, 64, 80, $0
+ anim_bgeffect ANIM_BG_07, $0, $2, $0
+ anim_sound 6, 2, SFX_MENU
+ anim_obj ANIM_OBJ_5A, 8, 0, 10, 0, $0
anim_wait 4
- anim_sound $1, SFX_MENU
- anim_obj $5a, 132, 48, $1
+ anim_sound 0, 1, SFX_MENU
+ anim_obj ANIM_OBJ_5A, -16, 4, 6, 0, $1
anim_wait 4
- anim_sound $1a, SFX_MENU
- anim_obj $5a, 64, 88, $0
+ anim_sound 6, 2, SFX_MENU
+ anim_obj ANIM_OBJ_5A, 8, 0, 11, 0, $0
anim_wait 4
- anim_sound $1, SFX_MENU
- anim_obj $5a, 132, 64, $1
+ anim_sound 0, 1, SFX_MENU
+ anim_obj ANIM_OBJ_5A, -16, 4, 8, 0, $1
anim_wait 4
- anim_sound $1a, SFX_MENU
- anim_obj $5a, 64, 84, $0
+ anim_sound 6, 2, SFX_MENU
+ anim_obj ANIM_OBJ_5A, 8, 0, 10, 4, $0
anim_wait 4
- anim_sound $1, SFX_MENU
- anim_obj $5a, 132, 56, $2
+ anim_sound 0, 1, SFX_MENU
+ anim_obj ANIM_OBJ_5A, -16, 4, 7, 0, $2
anim_wait 64
anim_ret
; ca2d1
BattleAnim_Headbutt: ; ca2d1
anim_1gfx ANIM_GFX_HIT
- anim_bgeffect $1f, $14, $2, $0
+ anim_bgeffect ANIM_BG_1F, $14, $2, $0
anim_wait 32
- anim_call BattleAnim_Headbutt_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 4
- anim_sound $1, SFX_HEADBUTT
- anim_obj $1, 136, 56, $0
+ anim_sound 0, 1, SFX_HEADBUTT
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 8
- anim_call BattleAnim_Headbutt_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca2ef
BattleAnim_Tackle: ; ca2ef
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Tackle_branch_cbcaf
+ anim_call BattleAnim_FollowPlayerHead_0
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 4
- anim_sound $1, SFX_TACKLE
- anim_obj $0, 136, 48, $0
+ anim_sound 0, 1, SFX_TACKLE
+ anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0
anim_wait 8
- anim_call BattleAnim_Tackle_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca307
BattleAnim_BodySlam: ; ca307
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_BodySlam_branch_cbcaf
- anim_bgeffect $22, $0, $1, $0
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
anim_wait 32
- anim_incbgeffect $22
+ anim_incbgeffect ANIM_BG_BOUNCE_DOWN
anim_wait 4
- anim_bgeffect $25, $0, $1, $0
+ anim_bgeffect ANIM_BG_25, $0, $1, $0
anim_wait 3
- anim_sound $1, SFX_TACKLE
- anim_obj $1, 136, 48, $0
+ anim_sound 0, 1, SFX_TACKLE
+ anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0
anim_wait 6
- anim_sound $1, SFX_TACKLE
- anim_obj $1, 144, 48, $0
+ anim_sound 0, 1, SFX_TACKLE
+ anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0
anim_wait 3
- anim_call BattleAnim_BodySlam_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca331
BattleAnim_TakeDown: ; ca331
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_TakeDown_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 3
- anim_sound $1, SFX_TACKLE
+ anim_sound 0, 1, SFX_TACKLE
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_obj $1, 128, 56, $0
+ anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_TACKLE
+ anim_sound 0, 1, SFX_TACKLE
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_obj $1, 144, 48, $0
+ anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0
anim_wait 3
- anim_call BattleAnim_TakeDown_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca35c
BattleAnim_DoubleEdge: ; ca35c
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_DoubleEdge_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $10
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 3
- anim_sound $1, SFX_TACKLE
- anim_obj $0, 128, 48, $0
+ anim_sound 0, 1, SFX_TACKLE
+ anim_obj ANIM_OBJ_00, 16, 0, 6, 0, $0
anim_wait 6
- anim_sound $1, SFX_TACKLE
- anim_obj $0, 144, 48, $0
+ anim_sound 0, 1, SFX_TACKLE
+ anim_obj ANIM_OBJ_00, -14, 0, 6, 0, $0
anim_wait 3
- anim_call BattleAnim_DoubleEdge_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca382
BattleAnim_Submission: ; ca382
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Submission_branch_cbcc2
- anim_bgeffect $26, $0, $0, $0
- anim_sound $1, SFX_SUBMISSION
+ anim_call BattleAnim_FollowEnemyFeet_1
+ anim_bgeffect ANIM_BG_26, $0, $0, $0
+ anim_sound 0, 1, SFX_SUBMISSION
anim_wait 32
- anim_obj $1, 120, 48, $0
+ anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0
anim_wait 32
- anim_obj $1, 152, 56, $0
+ anim_obj ANIM_OBJ_01, -13, 0, 7, 0, $0
anim_wait 32
- anim_obj $1, 136, 52, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 6, 4, $0
anim_wait 32
- anim_incbgeffect $26
- anim_call BattleAnim_Submission_branch_cbcd2
+ anim_incbgeffect ANIM_BG_26
+ anim_call BattleAnim_ShowMon_1
anim_ret
; ca3a8
BattleAnim_Whirlwind: ; ca3a8
anim_1gfx ANIM_GFX_WIND
-BattleAnim_Whirlwind_branch_ca3aa: ; ca3aa
- anim_sound $0, SFX_RAZOR_WIND
- anim_obj ANIM_OBJ_GUST, 64, 112, $0
+.loop
+ anim_sound 0, 0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_GUST, 8, 0, 14, 0, $0
anim_wait 6
- anim_loop $9, BattleAnim_Whirlwind_branch_ca3aa
- anim_incobj $1
- anim_incobj $2
- anim_incobj $3
- anim_incobj $4
- anim_incobj $5
- anim_incobj $6
- anim_incobj $7
- anim_incobj $8
- anim_incobj $9
- anim_sound $42, SFX_WHIRLWIND
+ anim_loop 9, .loop
+ anim_incobj 1
+ anim_incobj 2
+ anim_incobj 3
+ anim_incobj 4
+ anim_incobj 5
+ anim_incobj 6
+ anim_incobj 7
+ anim_incobj 8
+ anim_incobj 9
+ anim_sound 16, 2, SFX_WHIRLWIND
anim_wait 128
- anim_jumpif $0, BattleAnim_Whirlwind_branch_ca3d7
- anim_bgeffect $27, $0, $0, $0
+ anim_jumpif $0, .done
+ anim_bgeffect ANIM_BG_27, $0, $0, $0
anim_wait 64
-BattleAnim_Whirlwind_branch_ca3d7: ; ca3d7
+.done
anim_ret
; ca3d8
BattleAnim_Hypnosis: ; ca3d8
anim_1gfx ANIM_GFX_PSYCHIC
-BattleAnim_Hypnosis_branch_ca3da: ; ca3da
- anim_sound $1a, SFX_SUPERSONIC
- anim_obj $4c, 64, 88, $2
- anim_obj $4c, 56, 80, $2
+.loop
+ anim_sound 6, 2, SFX_SUPERSONIC
+ anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2
+ anim_obj ANIM_OBJ_4C, 7, 0, 10, 0, $2
anim_wait 8
- anim_loop $3, BattleAnim_Hypnosis_branch_ca3da
+ anim_loop 3, .loop
anim_wait 56
anim_ret
; ca3ee
BattleAnim_Haze: ; ca3ee
anim_1gfx ANIM_GFX_HAZE
- anim_sound $1, SFX_SURF
-BattleAnim_Haze_branch_ca3f3: ; ca3f3
- anim_obj $5b, 48, 56, $0
- anim_obj $5b, 132, 16, $0
+ anim_sound 0, 1, SFX_SURF
+.loop
+ anim_obj ANIM_OBJ_5B, 6, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_5B, -16, 4, 2, 0, $0
anim_wait 12
- anim_loop $5, BattleAnim_Haze_branch_ca3f3
+ anim_loop 5, .loop
anim_wait 96
anim_ret
; ca404
@@ -2358,63 +2346,63 @@ BattleAnim_Haze_branch_ca3f3: ; ca3f3
BattleAnim_Mist: ; ca404
anim_obp0 $54
anim_1gfx ANIM_GFX_HAZE
- anim_sound $0, SFX_SURF
-BattleAnim_Mist_branch_ca40b: ; ca40b
- anim_obj $5c, 48, 56, $0
+ anim_sound 0, 0, SFX_SURF
+.loop
+ anim_obj ANIM_OBJ_5C, 6, 0, 7, 0, $0
anim_wait 8
- anim_loop $a, BattleAnim_Mist_branch_ca40b
+ anim_loop 10, .loop
anim_wait 96
anim_ret
; ca417
BattleAnim_Smog: ; ca417
anim_1gfx ANIM_GFX_HAZE
- anim_sound $1, SFX_BUBBLEBEAM
-BattleAnim_Smog_branch_ca41c: ; ca41c
- anim_obj $5d, 132, 16, $0
+ anim_sound 0, 1, SFX_BUBBLEBEAM
+.loop
+ anim_obj ANIM_OBJ_5D, -16, 4, 2, 0, $0
anim_wait 8
- anim_loop $a, BattleAnim_Smog_branch_ca41c
+ anim_loop 10, .loop
anim_wait 96
anim_ret
; ca428
BattleAnim_PoisonGas: ; ca428
anim_1gfx ANIM_GFX_HAZE
- anim_sound $42, SFX_BUBBLEBEAM
-BattleAnim_PoisonGas_branch_ca42d: ; ca42d
- anim_obj $5e, 44, 80, $2
+ anim_sound 16, 2, SFX_BUBBLEBEAM
+.loop
+ anim_obj ANIM_OBJ_5E, 5, 4, 10, 0, $2
anim_wait 8
- anim_loop $a, BattleAnim_PoisonGas_branch_ca42d
+ anim_loop 10, .loop
anim_wait 128
anim_ret
; ca439
BattleAnim_HornAttack: ; ca439
anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
- anim_obj $5f, 72, 80, $1
+ anim_obj ANIM_OBJ_5F, 9, 0, 10, 0, $1
anim_wait 16
- anim_sound $1, SFX_HORN_ATTACK
- anim_obj $1, 136, 56, $0
+ anim_sound 0, 1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; ca44c
BattleAnim_FuryAttack: ; ca44c
anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
- anim_obj $5f, 72, 72, $2
+ anim_obj ANIM_OBJ_5F, 9, 0, 9, 0, $2
anim_wait 8
- anim_sound $1, SFX_HORN_ATTACK
- anim_obj $4, 128, 40, $0
+ anim_sound 0, 1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_04, 16, 0, 5, 0, $0
anim_wait 8
- anim_obj $5f, 80, 88, $2
+ anim_obj ANIM_OBJ_5F, 10, 0, 11, 0, $2
anim_wait 8
- anim_sound $1, SFX_HORN_ATTACK
- anim_obj $4, 136, 56, $0
+ anim_sound 0, 1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_04, -15, 0, 7, 0, $0
anim_wait 8
- anim_obj $5f, 76, 80, $2
+ anim_obj ANIM_OBJ_5F, 9, 4, 10, 0, $2
anim_wait 8
- anim_sound $1, SFX_HORN_ATTACK
- anim_obj $4, 132, 48, $0
+ anim_sound 0, 1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_04, -16, 4, 6, 0, $0
anim_wait 8
anim_ret
; ca47d
@@ -2422,135 +2410,135 @@ BattleAnim_FuryAttack: ; ca44c
BattleAnim_HornDrill: ; ca47d
anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
- anim_obj $5f, 72, 80, $3
+ anim_obj ANIM_OBJ_5F, 9, 0, 10, 0, $3
anim_wait 8
-BattleAnim_HornDrill_branch_ca48b: ; ca48b
- anim_sound $1, SFX_HORN_ATTACK
- anim_obj $0, 132, 40, $0
+.loop
+ anim_sound 0, 1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0
anim_wait 8
- anim_sound $1, SFX_HORN_ATTACK
- anim_obj $0, 140, 48, $0
+ anim_sound 0, 1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_00, -15, 4, 6, 0, $0
anim_wait 8
- anim_sound $1, SFX_HORN_ATTACK
- anim_obj $0, 132, 56, $0
+ anim_sound 0, 1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_00, -16, 4, 7, 0, $0
anim_wait 8
- anim_sound $1, SFX_HORN_ATTACK
- anim_obj $0, 124, 48, $0
+ anim_sound 0, 1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_00, 15, 4, 6, 0, $0
anim_wait 8
- anim_loop $3, BattleAnim_HornDrill_branch_ca48b
+ anim_loop 3, .loop
anim_ret
; ca4b4
BattleAnim_PoisonSting: ; ca4b4
anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
- anim_obj $60, 64, 92, $14
+ anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $14
anim_wait 16
- anim_sound $1, SFX_POISON_STING
- anim_obj $5, 136, 56, $0
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; ca4c7
BattleAnim_Twineedle: ; ca4c7
anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
- anim_sound $1, SFX_POISON_STING
- anim_obj $60, 64, 92, $14
- anim_obj $60, 56, 84, $14
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $14
+ anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $14
anim_wait 16
- anim_sound $1, SFX_POISON_STING
- anim_obj $5, 136, 56, $0
- anim_obj $5, 128, 48, $0
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0
anim_wait 16
anim_ret
; ca4e7
BattleAnim_PinMissile: ; ca4e7
anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-BattleAnim_PinMissile_branch_ca4ea: ; ca4ea
- anim_obj $60, 64, 92, $28
+.loop
+ anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $28
anim_wait 8
- anim_obj $60, 56, 84, $28
- anim_sound $1, SFX_POISON_STING
- anim_obj $5, 136, 56, $0
+ anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $28
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0
anim_wait 8
- anim_obj $60, 52, 88, $28
- anim_sound $1, SFX_POISON_STING
- anim_obj $5, 128, 48, $0
+ anim_obj ANIM_OBJ_60, 6, 4, 11, 0, $28
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0
anim_wait 8
- anim_sound $1, SFX_POISON_STING
- anim_obj $5, 132, 52, $0
- anim_loop $3, BattleAnim_PinMissile_branch_ca4ea
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_05, -16, 4, 6, 4, $0
+ anim_loop 3, .loop
anim_wait 16
anim_ret
; ca51a
BattleAnim_SpikeCannon: ; ca51a
anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-BattleAnim_SpikeCannon_branch_ca51d: ; ca51d
- anim_obj $60, 64, 92, $18
+.loop
+ anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $18
anim_wait 8
- anim_obj $60, 56, 84, $18
- anim_sound $1, SFX_POISON_STING
- anim_obj $5, 136, 56, $0
+ anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $18
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0
anim_wait 8
- anim_obj $60, 52, 88, $18
- anim_sound $1, SFX_POISON_STING
- anim_obj $5, 128, 48, $0
+ anim_obj ANIM_OBJ_60, 6, 4, 11, 0, $18
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0
anim_wait 8
- anim_sound $1, SFX_POISON_STING
- anim_obj $5, 132, 52, $0
- anim_loop $3, BattleAnim_SpikeCannon_branch_ca51d
+ anim_sound 0, 1, SFX_POISON_STING
+ anim_obj ANIM_OBJ_05, -16, 4, 6, 4, $0
+ anim_loop 3, .loop
anim_wait 16
anim_ret
; ca54d
BattleAnim_Transform: ; ca54d
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Transform_branch_cbcaf
+ anim_call BattleAnim_FollowPlayerHead_0
anim_transform
- anim_sound $0, SFX_PSYBEAM
- anim_bgeffect $28, $0, $1, $0
+ anim_sound 0, 0, SFX_PSYBEAM
+ anim_bgeffect ANIM_BG_28, $0, $1, $0
anim_wait 48
anim_updateactorpic
- anim_incbgeffect $28
+ anim_incbgeffect ANIM_BG_28
anim_wait 48
- anim_call BattleAnim_Transform_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca564
BattleAnim_PetalDance: ; ca564
- anim_sound $0, SFX_MENU
+ anim_sound 0, 0, SFX_MENU
anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_HIT
-BattleAnim_PetalDance_branch_ca56a: ; ca56a
- anim_obj $61, 48, 56, $0
+.loop
+ anim_obj ANIM_OBJ_61, 6, 0, 7, 0, $0
anim_wait 11
- anim_loop $8, BattleAnim_PetalDance_branch_ca56a
+ anim_loop 8, .loop
anim_wait 128
anim_wait 64
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $0, 136, 56, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; ca580
BattleAnim_Barrage: ; ca580
anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION
- anim_sound $1a, SFX_THROW_BALL
- anim_obj $62, 64, 92, $10
+ anim_sound 6, 2, SFX_THROW_BALL
+ anim_obj ANIM_OBJ_62, 8, 0, 11, 4, $10
anim_wait 36
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $18, 136, 56, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_18, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; ca596
BattleAnim_PayDay: ; ca596
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_STATUS
- anim_sound $1, SFX_POUND
- anim_obj $1, 128, 56, $0
+ anim_sound 0, 1, SFX_POUND
+ anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0
anim_wait 16
- anim_sound $1, SFX_PAY_DAY
- anim_obj $63, 120, 76, $1
+ anim_sound 0, 1, SFX_PAY_DAY
+ anim_obj ANIM_OBJ_63, 15, 0, 9, 4, $1
anim_wait 64
anim_ret
; ca5ac
@@ -2558,15 +2546,15 @@ BattleAnim_PayDay: ; ca596
BattleAnim_Mimic: ; ca5ac
anim_1gfx ANIM_GFX_SPEED
anim_obp0 $fc
- anim_sound $ff, SFX_LICK
- anim_obj $65, 132, 44, $0
- anim_obj $65, 132, 44, $8
- anim_obj $65, 132, 44, $10
- anim_obj $65, 132, 44, $18
- anim_obj $65, 132, 44, $20
- anim_obj $65, 132, 44, $28
- anim_obj $65, 132, 44, $30
- anim_obj $65, 132, 44, $38
+ anim_sound 63, 3, SFX_LICK
+ anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $0
+ anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $8
+ anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $10
+ anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $18
+ anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $20
+ anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $28
+ anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $30
+ anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $38
anim_wait 128
anim_wait 48
anim_ret
@@ -2574,112 +2562,112 @@ BattleAnim_Mimic: ; ca5ac
BattleAnim_LovelyKiss: ; ca5de
anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS
- anim_bgeffect $7, $0, $2, $0
- anim_obj $96, 152, 40, $0
+ anim_bgeffect ANIM_BG_07, $0, $2, $0
+ anim_obj ANIM_OBJ_96, -13, 0, 5, 0, $0
anim_wait 32
- anim_sound $1, SFX_LICK
- anim_obj ANIM_OBJ_HEART, 128, 40, $0
+ anim_sound 0, 1, SFX_LICK
+ anim_obj ANIM_OBJ_HEART, 16, 0, 5, 0, $0
anim_wait 40
anim_ret
; ca5f6
BattleAnim_Bonemerang: ; ca5f6
anim_2gfx ANIM_GFX_MISC, ANIM_GFX_HIT
- anim_sound $1a, SFX_HYDRO_PUMP
- anim_obj $67, 88, 56, $1c
+ anim_sound 6, 2, SFX_HYDRO_PUMP
+ anim_obj ANIM_OBJ_67, 11, 0, 7, 0, $1c
anim_wait 24
- anim_sound $1, SFX_MOVE_PUZZLE_PIECE
- anim_obj $1, 136, 56, $0
+ anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 24
anim_ret
; ca60c
BattleAnim_Swift: ; ca60c
anim_1gfx ANIM_GFX_OBJECTS
- anim_sound $1a, SFX_METRONOME
- anim_obj $6a, 64, 88, $4
+ anim_sound 6, 2, SFX_METRONOME
+ anim_obj ANIM_OBJ_6A, 8, 0, 11, 0, $4
anim_wait 4
- anim_obj $6a, 64, 72, $4
+ anim_obj ANIM_OBJ_6A, 8, 0, 9, 0, $4
anim_wait 4
- anim_obj $6a, 64, 76, $4
+ anim_obj ANIM_OBJ_6A, 8, 0, 9, 4, $4
anim_wait 64
anim_ret
; ca624
BattleAnim_Crabhammer: ; ca624
anim_1gfx ANIM_GFX_HIT
- anim_bgeffect $1f, $40, $2, $0
+ anim_bgeffect ANIM_BG_1F, $40, $2, $0
anim_wait 48
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-BattleAnim_Crabhammer_branch_ca631: ; ca631
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $0, 136, 56, $0
+.loop
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 12
- anim_loop $3, BattleAnim_Crabhammer_branch_ca631
+ anim_loop 3, .loop
anim_ret
; ca63f
BattleAnim_SkullBash: ; ca63f
anim_jumpif $1, BattleAnim_SkullBash_branch_c9fb5
anim_1gfx ANIM_GFX_HIT
- anim_bgeffect $1f, $14, $2, $0
+ anim_bgeffect ANIM_BG_1F, $14, $2, $0
anim_wait 32
- anim_call BattleAnim_SkullBash_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 4
-BattleAnim_SkullBash_branch_ca659: ; ca659
- anim_sound $1, SFX_HEADBUTT
- anim_obj $1, 136, 56, $0
+.loop
+ anim_sound 0, 1, SFX_HEADBUTT
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 8
- anim_loop $3, BattleAnim_SkullBash_branch_ca659
- anim_call BattleAnim_SkullBash_branch_cbcb7
+ anim_loop 3, .loop
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca66a
BattleAnim_Kinesis: ; ca66a
anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE
- anim_bgeffect $6, $0, $2, $0
- anim_obj $6b, 80, 76, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_obj ANIM_OBJ_6B, 10, 0, 9, 4, $0
anim_wait 32
-BattleAnim_Kinesis_branch_ca678: ; ca678
- anim_sound $0, SFX_KINESIS
- anim_obj $4b, 64, 88, $0
+.loop
+ anim_sound 0, 0, SFX_KINESIS
+ anim_obj ANIM_OBJ_4B, 8, 0, 11, 0, $0
anim_wait 32
- anim_loop $3, BattleAnim_Kinesis_branch_ca678
+ anim_loop 3, .loop
anim_wait 32
- anim_sound $0, SFX_KINESIS_2
+ anim_sound 0, 0, SFX_KINESIS_2
anim_wait 32
anim_ret
; ca68b
BattleAnim_Peck: ; ca68b
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_PECK
- anim_obj $2, 128, 48, $0
+ anim_sound 0, 1, SFX_PECK
+ anim_obj ANIM_OBJ_02, 16, 0, 6, 0, $0
anim_wait 8
- anim_sound $1, SFX_PECK
- anim_obj $2, 136, 56, $0
+ anim_sound 0, 1, SFX_PECK
+ anim_obj ANIM_OBJ_02, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; ca6a0
BattleAnim_DrillPeck: ; ca6a0
anim_1gfx ANIM_GFX_HIT
-BattleAnim_DrillPeck_branch_ca6a2: ; ca6a2
- anim_sound $1, SFX_PECK
- anim_obj $2, 124, 56, $0
+.loop
+ anim_sound 0, 1, SFX_PECK
+ anim_obj ANIM_OBJ_02, 15, 4, 7, 0, $0
anim_wait 4
- anim_sound $1, SFX_PECK
- anim_obj $2, 132, 48, $0
+ anim_sound 0, 1, SFX_PECK
+ anim_obj ANIM_OBJ_02, -16, 4, 6, 0, $0
anim_wait 4
- anim_sound $1, SFX_PECK
- anim_obj $2, 140, 56, $0
+ anim_sound 0, 1, SFX_PECK
+ anim_obj ANIM_OBJ_02, -15, 4, 7, 0, $0
anim_wait 4
- anim_sound $1, SFX_PECK
- anim_obj $2, 132, 64, $0
+ anim_sound 0, 1, SFX_PECK
+ anim_obj ANIM_OBJ_02, -16, 4, 8, 0, $0
anim_wait 4
- anim_loop $5, BattleAnim_DrillPeck_branch_ca6a2
+ anim_loop 5, .loop
anim_wait 16
anim_ret
; ca6cc
@@ -2687,60 +2675,60 @@ BattleAnim_DrillPeck_branch_ca6a2: ; ca6a2
BattleAnim_Guillotine: ; ca6cc
anim_1gfx ANIM_GFX_CUT
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10
- anim_bgeffect $1f, $40, $2, $0
- anim_sound $1, SFX_VICEGRIP
- anim_obj $37, 156, 44, $0
- anim_obj $37, 152, 40, $0
- anim_obj $37, 148, 36, $0
- anim_obj $39, 124, 76, $0
- anim_obj $39, 120, 72, $0
- anim_obj $39, 116, 68, $0
- anim_obj $39, 120, 72, $0
+ anim_bgeffect ANIM_BG_1F, $40, $2, $0
+ anim_sound 0, 1, SFX_VICEGRIP
+ anim_obj ANIM_OBJ_37, -13, 4, 5, 4, $0
+ anim_obj ANIM_OBJ_37, -13, 0, 5, 0, $0
+ anim_obj ANIM_OBJ_37, -14, 4, 4, 4, $0
+ anim_obj ANIM_OBJ_39, 15, 4, 9, 4, $0
+ anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0
+ anim_obj ANIM_OBJ_39, 14, 4, 8, 4, $0
+ anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0
anim_wait 32
anim_ret
; ca700
BattleAnim_Flash: ; ca700
anim_1gfx ANIM_GFX_SPEED
- anim_sound $1, SFX_FLASH
+ anim_sound 0, 1, SFX_FLASH
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
anim_wait 4
- anim_obj $6c, 136, 56, $0
+ anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $0
anim_wait 4
- anim_obj $6c, 136, 56, $8
+ anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $8
anim_wait 4
- anim_obj $6c, 136, 56, $10
+ anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $10
anim_wait 4
- anim_obj $6c, 136, 56, $18
+ anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $18
anim_wait 4
- anim_obj $6c, 136, 56, $20
+ anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $20
anim_wait 4
- anim_obj $6c, 136, 56, $28
+ anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $28
anim_wait 4
- anim_obj $6c, 136, 56, $30
+ anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $30
anim_wait 4
- anim_obj $6c, 136, 56, $38
+ anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $38
anim_wait 32
anim_ret
; ca73c
BattleAnim_Substitute: ; ca73c
- anim_sound $0, SFX_SURF
+ anim_sound 0, 0, SFX_SURF
anim_jumpif $3, BattleAnim_Substitute_branch_ca77c
anim_jumpif $2, BattleAnim_Substitute_branch_ca76e
anim_jumpif $1, BattleAnim_Substitute_branch_ca760
anim_1gfx ANIM_GFX_SMOKE
- anim_bgeffect $27, $0, $1, $0
+ anim_bgeffect ANIM_BG_27, $0, $1, $0
anim_wait 48
anim_raisesub
- anim_obj $1c, 48, 96, $0
+ anim_obj ANIM_OBJ_1C, 6, 0, 12, 0, $0
anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
anim_wait 32
anim_ret
; ca760
BattleAnim_Substitute_branch_ca760: ; ca760
- anim_bgeffect $27, $0, $1, $0
+ anim_bgeffect ANIM_BG_27, $0, $1, $0
anim_wait 48
anim_dropsub
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
@@ -2749,7 +2737,7 @@ BattleAnim_Substitute_branch_ca760: ; ca760
; ca76e
BattleAnim_Substitute_branch_ca76e: ; ca76e
- anim_bgeffect $27, $0, $1, $0
+ anim_bgeffect ANIM_BG_27, $0, $1, $0
anim_wait 48
anim_raisesub
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
@@ -2767,33 +2755,33 @@ BattleAnim_Substitute_branch_ca77c: ; ca77c
; ca78a
BattleAnim_Minimize: ; ca78a
- anim_sound $0, SFX_SURF
+ anim_sound 0, 0, SFX_SURF
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Minimize_branch_cbcaf
+ anim_call BattleAnim_FollowPlayerHead_0
anim_minimize
- anim_bgeffect $28, $0, $1, $0
+ anim_bgeffect ANIM_BG_28, $0, $1, $0
anim_wait 48
anim_updateactorpic
- anim_incbgeffect $28
+ anim_incbgeffect ANIM_BG_28
anim_wait 48
- anim_call BattleAnim_Minimize_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca7a1
BattleAnim_SkyAttack: ; ca7a1
anim_jumpif $1, BattleAnim_SkyAttack_branch_c9fb5
anim_1gfx ANIM_GFX_SKY_ATTACK
- anim_bgeffect $27, $0, $1, $0
+ anim_bgeffect ANIM_BG_27, $0, $1, $0
anim_wait 32
- anim_sound $0, SFX_HYPER_BEAM
- anim_obj $6e, 48, 88, $40
+ anim_sound 0, 0, SFX_HYPER_BEAM
+ anim_obj ANIM_OBJ_6E, 6, 0, 11, 0, $40
anim_wait 64
- anim_incobj $1
+ anim_incobj 1
anim_wait 21
- anim_sound $1, SFX_HYPER_BEAM
+ anim_sound 0, 1, SFX_HYPER_BEAM
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
anim_wait 64
- anim_incobj $1
+ anim_incobj 1
anim_wait 32
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
anim_wait 16
@@ -2805,19 +2793,19 @@ BattleAnim_NightShade: ; ca7cc
anim_bgp $1b
anim_obp1 $1b
anim_wait 32
- anim_call BattleAnim_NightShade_branch_cbcca
+ anim_call BattleAnim_FollowPlayerHead_1
anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
- anim_sound $1, SFX_PSYCHIC
+ anim_sound 0, 1, SFX_PSYCHIC
anim_wait 96
anim_incbgeffect ANIM_BG_NIGHT_SHADE
- anim_call BattleAnim_NightShade_branch_cbcd2
+ anim_call BattleAnim_ShowMon_1
anim_ret
; ca7e5
BattleAnim_Lick: ; ca7e5
anim_1gfx ANIM_GFX_WATER
- anim_sound $1, SFX_LICK
- anim_obj $6f, 136, 56, $0
+ anim_sound 0, 1, SFX_LICK
+ anim_obj ANIM_OBJ_6F, -15, 0, 7, 0, $0
anim_wait 64
anim_ret
; ca7f1
@@ -2829,36 +2817,36 @@ BattleAnim_TriAttack: ; ca7f1
anim_call BattleAnim_TriAttack_branch_cbbdf
anim_wait 16
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $4
- anim_sound $1, SFX_THUNDER
- anim_obj $2f, 152, 68, $0
+ anim_sound 0, 1, SFX_THUNDER
+ anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0
anim_wait 16
anim_ret
; ca80c
BattleAnim_Withdraw: ; ca80c
anim_1gfx ANIM_GFX_REFLECT
- anim_call BattleAnim_Withdraw_branch_cbcaf
- anim_bgeffect $21, $0, $1, $50
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_21, $0, $1, $50
anim_wait 48
- anim_sound $0, SFX_SHINE
- anim_obj $70, 48, 88, $0
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_70, 6, 0, 11, 0, $0
anim_wait 64
- anim_incobj $2
+ anim_incobj 2
anim_wait 1
- anim_incbgeffect $21
- anim_call BattleAnim_Withdraw_branch_cbcb7
+ anim_incbgeffect ANIM_BG_21
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca829
BattleAnim_Psybeam: ; ca829
anim_1gfx ANIM_GFX_PSYCHIC
- anim_bgeffect $6, $0, $2, $0
- anim_bgeffect $8, $0, $4, $0
-BattleAnim_Psybeam_branch_ca835: ; ca835
- anim_sound $1a, SFX_PSYBEAM
- anim_obj $4c, 64, 88, $4
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_bgeffect ANIM_BG_08, $0, $4, $0
+.loop
+ anim_sound 6, 2, SFX_PSYBEAM
+ anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $4
anim_wait 4
- anim_loop $a, BattleAnim_Psybeam_branch_ca835
+ anim_loop 10, .loop
anim_wait 48
anim_ret
; ca844
@@ -2867,7 +2855,7 @@ BattleAnim_DreamEater: ; ca844
anim_1gfx ANIM_GFX_BUBBLE
anim_bgp $1b
anim_obp0 $27
- anim_sound $1b, SFX_WATER_GUN
+ anim_sound 6, 3, SFX_WATER_GUN
anim_call BattleAnim_DreamEater_branch_cbab3
anim_wait 128
anim_wait 48
@@ -2876,7 +2864,7 @@ BattleAnim_DreamEater: ; ca844
BattleAnim_LeechLife: ; ca853
anim_1gfx ANIM_GFX_BUBBLE
- anim_sound $1b, SFX_WATER_GUN
+ anim_sound 6, 3, SFX_WATER_GUN
anim_call BattleAnim_LeechLife_branch_cbab3
anim_wait 128
anim_wait 48
@@ -2886,26 +2874,26 @@ BattleAnim_LeechLife: ; ca853
BattleAnim_Harden: ; ca85e
anim_1gfx ANIM_GFX_REFLECT
anim_obp0 $0
- anim_call BattleAnim_Harden_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_call BattleAnim_Harden_branch_cbc43
- anim_call BattleAnim_Harden_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca86c
BattleAnim_Psywave: ; ca86c
anim_1gfx ANIM_GFX_PSYCHIC
anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
-BattleAnim_Psywave_branch_ca873: ; ca873
- anim_sound $1a, SFX_PSYCHIC
- anim_obj $4c, 64, 80, $2
+.loop
+ anim_sound 6, 2, SFX_PSYCHIC
+ anim_obj ANIM_OBJ_4C, 8, 0, 10, 0, $2
anim_wait 8
- anim_sound $1a, SFX_PSYCHIC
- anim_obj $4c, 64, 88, $3
+ anim_sound 6, 2, SFX_PSYCHIC
+ anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $3
anim_wait 8
- anim_sound $1a, SFX_PSYCHIC
- anim_obj $4c, 64, 96, $4
+ anim_sound 6, 2, SFX_PSYCHIC
+ anim_obj ANIM_OBJ_4C, 8, 0, 12, 0, $4
anim_wait 8
- anim_loop $3, BattleAnim_Psywave_branch_ca873
+ anim_loop 3, .loop
anim_wait 32
anim_incbgeffect ANIM_BG_PSYCHIC
anim_wait 4
@@ -2915,7 +2903,7 @@ BattleAnim_Psywave_branch_ca873: ; ca873
BattleAnim_Glare: ; ca897
anim_1gfx ANIM_GFX_BEAM
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $20
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_call BattleAnim_Glare_branch_cbadc
anim_wait 16
anim_ret
@@ -2923,17 +2911,17 @@ BattleAnim_Glare: ; ca897
BattleAnim_Thrash: ; ca8a8
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_POUND
- anim_obj $8, 120, 72, $0
- anim_obj $0, 120, 72, $0
+ anim_sound 0, 1, SFX_POUND
+ anim_obj ANIM_OBJ_08, 15, 0, 9, 0, $0
+ anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0
anim_wait 6
- anim_sound $1, SFX_MOVE_PUZZLE_PIECE
- anim_obj $6, 136, 56, $0
- anim_obj $0, 136, 56, $0
+ anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
+ anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 152, 40, $0
- anim_obj $0, 152, 40, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, -13, 0, 5, 0, $0
+ anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0
anim_wait 16
anim_ret
; ca8d5
@@ -2941,30 +2929,30 @@ BattleAnim_Thrash: ; ca8a8
BattleAnim_Growth: ; ca8d5
anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
anim_1gfx ANIM_GFX_CHARGE
- anim_sound $0, SFX_SWORDS_DANCE
- anim_obj $72, 48, 108, $0
- anim_obj $72, 48, 108, $8
- anim_obj $72, 48, 108, $10
- anim_obj $72, 48, 108, $18
- anim_obj $72, 48, 108, $20
- anim_obj $72, 48, 108, $28
- anim_obj $72, 48, 108, $30
- anim_obj $72, 48, 108, $38
+ anim_sound 0, 0, SFX_SWORDS_DANCE
+ anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $0
+ anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $8
+ anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $10
+ anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $18
+ anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $20
+ anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $28
+ anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $30
+ anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $38
anim_wait 64
anim_ret
; ca909
BattleAnim_Conversion2: ; ca909
anim_1gfx ANIM_GFX_EXPLOSION
- anim_sound $ff, SFX_SHARPEN
- anim_obj $73, 132, 44, $0
- anim_obj $73, 132, 44, $8
- anim_obj $73, 132, 44, $10
- anim_obj $73, 132, 44, $18
- anim_obj $73, 132, 44, $20
- anim_obj $73, 132, 44, $28
- anim_obj $73, 132, 44, $30
- anim_obj $73, 132, 44, $38
+ anim_sound 63, 3, SFX_SHARPEN
+ anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $0
+ anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $8
+ anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $10
+ anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $18
+ anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $20
+ anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $28
+ anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $30
+ anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $38
anim_wait 128
anim_wait 48
anim_ret
@@ -2972,61 +2960,61 @@ BattleAnim_Conversion2: ; ca909
BattleAnim_Smokescreen: ; ca939
anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE
- anim_sound $1a, SFX_THROW_BALL
- anim_obj $75, 64, 92, $6c
+ anim_sound 6, 2, SFX_THROW_BALL
+ anim_obj ANIM_OBJ_75, 8, 0, 11, 4, $6c
anim_wait 24
- anim_incobj $1
- anim_sound $1, SFX_BALL_POOF
- anim_obj $1c, 108, 70, $10
+ anim_incobj 1
+ anim_sound 0, 1, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_1C, 13, 4, 8, 6, $10
anim_wait 8
-BattleAnim_Smokescreen_branch_ca951: ; ca951
- anim_sound $1, SFX_MENU
- anim_obj $74, 132, 60, $20
+.loop
+ anim_sound 0, 1, SFX_MENU
+ anim_obj ANIM_OBJ_74, -16, 4, 7, 4, $20
anim_wait 8
- anim_loop $5, BattleAnim_Smokescreen_branch_ca951
+ anim_loop 5, .loop
anim_wait 128
anim_ret
; ca960
BattleAnim_Strength: ; ca960
anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
- anim_bgeffect $20, $10, $1, $20
- anim_sound $0, SFX_STRENGTH
- anim_obj $1f, 64, 104, $1
+ anim_bgeffect ANIM_BG_20, $10, $1, $20
+ anim_sound 0, 0, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1F, 8, 0, 13, 0, $1
anim_wait 128
- anim_incobj $1
+ anim_incobj 1
anim_wait 20
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $0, 132, 40, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0
anim_wait 16
anim_ret
; ca97e
BattleAnim_SwordsDance: ; ca97e
anim_1gfx ANIM_GFX_WHIP
- anim_sound $0, SFX_SWORDS_DANCE
- anim_obj $76, 48, 108, $0
- anim_obj $76, 48, 108, $d
- anim_obj $76, 48, 108, $1a
- anim_obj $76, 48, 108, $27
- anim_obj $76, 48, 108, $34
+ anim_sound 0, 0, SFX_SWORDS_DANCE
+ anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $0
+ anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $d
+ anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $1a
+ anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $27
+ anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $34
anim_wait 56
anim_ret
; ca99e
BattleAnim_QuickAttack: ; ca99e
anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT
- anim_sound $0, SFX_MENU
+ anim_sound 0, 0, SFX_MENU
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
- anim_obj $77, 24, 88, $2
- anim_obj $77, 32, 88, $1
- anim_obj $77, 40, 88, $0
- anim_obj $77, 48, 88, $80
- anim_obj $77, 56, 88, $81
- anim_obj $77, 64, 88, $82
+ anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2
+ anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1
+ anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0
+ anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80
+ anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81
+ anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82
anim_wait 12
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $1, 136, 56, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 8
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
anim_wait 16
@@ -3035,74 +3023,74 @@ BattleAnim_QuickAttack: ; ca99e
BattleAnim_Meditate: ; ca9d8
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Meditate_branch_cbca7
- anim_sound $0, SFX_PSYBEAM
- anim_bgeffect $28, $0, $1, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_sound 0, 0, SFX_PSYBEAM
+ anim_bgeffect ANIM_BG_28, $0, $1, $0
anim_wait 48
- anim_incbgeffect $28
+ anim_incbgeffect ANIM_BG_28
anim_wait 48
- anim_call BattleAnim_Meditate_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; ca9ed
BattleAnim_Sharpen: ; ca9ed
anim_1gfx ANIM_GFX_SHAPES
anim_obp0 $e4
- anim_call BattleAnim_Sharpen_branch_cbca7
- anim_sound $0, SFX_SHARPEN
- anim_bgeffect $18, $0, $1, $40
- anim_obj $78, 48, 88, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_sound 0, 0, SFX_SHARPEN
+ anim_bgeffect ANIM_BG_18, $0, $1, $40
+ anim_obj ANIM_OBJ_78, 6, 0, 11, 0, $0
anim_wait 96
- anim_incobj $2
- anim_incbgeffect $18
- anim_call BattleAnim_Sharpen_branch_cbcb7
+ anim_incobj 2
+ anim_incbgeffect ANIM_BG_18
+ anim_call BattleAnim_ShowMon_0
anim_ret
; caa0a
BattleAnim_DefenseCurl: ; caa0a
anim_1gfx ANIM_GFX_SHAPES
anim_obp0 $e4
- anim_call BattleAnim_DefenseCurl_branch_cbca7
- anim_sound $0, SFX_SHARPEN
- anim_bgeffect $18, $0, $1, $40
- anim_obj $79, 48, 88, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_sound 0, 0, SFX_SHARPEN
+ anim_bgeffect ANIM_BG_18, $0, $1, $40
+ anim_obj ANIM_OBJ_79, 6, 0, 11, 0, $0
anim_wait 96
- anim_incobj $2
- anim_incbgeffect $18
- anim_call BattleAnim_DefenseCurl_branch_cbcb7
+ anim_incobj 2
+ anim_incbgeffect ANIM_BG_18
+ anim_call BattleAnim_ShowMon_0
anim_ret
; caa27
BattleAnim_SeismicToss: ; caa27
anim_2gfx ANIM_GFX_GLOBE, ANIM_GFX_HIT
- anim_bgeffect $20, $10, $1, $20
- anim_sound $0, SFX_STRENGTH
- anim_obj $20, 64, 104, $1
+ anim_bgeffect ANIM_BG_20, $10, $1, $20
+ anim_sound 0, 0, SFX_STRENGTH
+ anim_obj ANIM_OBJ_20, 8, 0, 13, 0, $1
anim_wait 128
- anim_incobj $1
+ anim_incobj 1
anim_wait 20
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $0, 132, 40, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0
anim_wait 16
anim_ret
; caa45
BattleAnim_Rage: ; caa45
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Rage_branch_cbca7
- anim_bgeffect $1a, $0, $1, $20
- anim_sound $0, SFX_RAGE
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1A, $0, $1, $20
+ anim_sound 0, 0, SFX_RAGE
anim_wait 72
- anim_incbgeffect $1a
- anim_call BattleAnim_Rage_branch_cbcb7
- anim_sound $1, SFX_MOVE_PUZZLE_PIECE
- anim_obj $0, 120, 72, $0
+ anim_incbgeffect ANIM_BG_1A
+ anim_call BattleAnim_ShowMon_0
+ anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
+ anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0
anim_wait 6
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $0, 136, 56, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $0, 152, 40, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0
anim_wait 16
anim_ret
; caa74
@@ -3110,31 +3098,31 @@ BattleAnim_Rage: ; caa45
BattleAnim_Agility: ; caa74
anim_1gfx ANIM_GFX_WIND
anim_obp0 $fc
- anim_call BattleAnim_Agility_branch_cbca7
- anim_bgeffect $18, $0, $1, $40
- anim_obj $7d, 8, 24, $10
- anim_obj $7d, 8, 48, $2
- anim_obj $7d, 8, 88, $8
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_18, $0, $1, $40
+ anim_obj ANIM_OBJ_7D, 1, 0, 3, 0, $10
+ anim_obj ANIM_OBJ_7D, 1, 0, 6, 0, $2
+ anim_obj ANIM_OBJ_7D, 1, 0, 11, 0, $8
anim_wait 4
- anim_obj $7d, 8, 32, $6
- anim_obj $7d, 8, 56, $c
- anim_obj $7d, 8, 80, $4
- anim_obj $7d, 8, 104, $e
-BattleAnim_Agility_branch_caaa4: ; caaa4
- anim_sound $0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_7D, 1, 0, 4, 0, $6
+ anim_obj ANIM_OBJ_7D, 1, 0, 7, 0, $c
+ anim_obj ANIM_OBJ_7D, 1, 0, 10, 0, $4
+ anim_obj ANIM_OBJ_7D, 1, 0, 13, 0, $e
+.loop
+ anim_sound 0, 0, SFX_RAZOR_WIND
anim_wait 4
- anim_loop $12, BattleAnim_Agility_branch_caaa4
- anim_incbgeffect $18
- anim_call BattleAnim_Agility_branch_cbcb7
+ anim_loop 18, .loop
+ anim_incbgeffect ANIM_BG_18
+ anim_call BattleAnim_ShowMon_0
anim_ret
; caab2
BattleAnim_BoneClub: ; caab2
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC
- anim_obj $68, 64, 88, $2
+ anim_obj ANIM_OBJ_68, 8, 0, 11, 0, $2
anim_wait 32
- anim_sound $1, SFX_BONE_CLUB
- anim_obj $1, 136, 56, $0
+ anim_sound 0, 1, SFX_BONE_CLUB
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; caac5
@@ -3142,37 +3130,37 @@ BattleAnim_BoneClub: ; caab2
BattleAnim_Barrier: ; caac5
anim_1gfx ANIM_GFX_REFLECT
anim_enemyfeetobj
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_wait 8
- anim_sound $0, SFX_SHINE
- anim_obj $50, 72, 80, $0
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0
anim_wait 32
- anim_sound $0, SFX_SHINE
- anim_obj $50, 72, 80, $0
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0
anim_wait 32
anim_ret
; caae1
BattleAnim_Waterfall: ; caae1
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Waterfall_branch_cbcaf
- anim_bgeffect $25, $0, $1, $0
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_25, $0, $1, $0
anim_wait 16
- anim_call BattleAnim_Waterfall_branch_cbcb7
- anim_sound $1, SFX_LICK
- anim_obj $1, 136, 56, $0
+ anim_call BattleAnim_ShowMon_0
+ anim_sound 0, 1, SFX_LICK
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 3
- anim_sound $1, SFX_LICK
- anim_obj $1, 136, 48, $0
+ anim_sound 0, 1, SFX_LICK
+ anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0
anim_wait 3
- anim_sound $1, SFX_LICK
- anim_obj $1, 136, 40, $0
+ anim_sound 0, 1, SFX_LICK
+ anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0
anim_wait 3
- anim_sound $1, SFX_LICK
- anim_obj $1, 136, 32, $0
+ anim_sound 0, 1, SFX_LICK
+ anim_obj ANIM_OBJ_01, -15, 0, 4, 0, $0
anim_wait 3
- anim_sound $1, SFX_LICK
- anim_obj $1, 136, 24, $0
+ anim_sound 0, 1, SFX_LICK
+ anim_obj ANIM_OBJ_01, -15, 0, 3, 0, $0
anim_wait 8
anim_ret
; cab1d
@@ -3181,11 +3169,11 @@ BattleAnim_PsychicM: ; cab1d
anim_1gfx ANIM_GFX_PSYCHIC
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
-BattleAnim_PsychicM_branch_cab29: ; cab29
- anim_sound $1a, SFX_PSYCHIC
- anim_obj $4c, 64, 88, $2
+.loop
+ anim_sound 6, 2, SFX_PSYCHIC
+ anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2
anim_wait 8
- anim_loop $8, BattleAnim_PsychicM_branch_cab29
+ anim_loop 8, .loop
anim_wait 96
anim_incbgeffect ANIM_BG_PSYCHIC
anim_wait 4
@@ -3211,35 +3199,35 @@ BattleAnim_Toxic: ; cab42
BattleAnim_Metronome: ; cab52
anim_2gfx ANIM_GFX_MISC, ANIM_GFX_SPEED
- anim_sound $0, SFX_METRONOME
- anim_obj $7a, 72, 88, $0
-BattleAnim_Metronome_branch_cab5d: ; cab5d
- anim_obj $7b, 72, 80, $0
+ anim_sound 0, 0, SFX_METRONOME
+ anim_obj ANIM_OBJ_7A, 9, 0, 11, 0, $0
+.loop
+ anim_obj ANIM_OBJ_7B, 9, 0, 10, 0, $0
anim_wait 8
- anim_loop $5, BattleAnim_Metronome_branch_cab5d
+ anim_loop 5, .loop
anim_wait 48
anim_ret
; cab69
BattleAnim_Counter: ; cab69
anim_1gfx ANIM_GFX_HIT
-BattleAnim_Counter_branch_cab6b: ; cab6b
+.loop
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
- anim_sound $1, SFX_POUND
- anim_obj $8, 120, 72, $0
- anim_obj $0, 120, 72, $0
+ anim_sound 0, 1, SFX_POUND
+ anim_obj ANIM_OBJ_08, 15, 0, 9, 0, $0
+ anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0
anim_wait 6
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $6, 136, 40, $0
- anim_obj $0, 136, 40, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_06, -15, 0, 5, 0, $0
+ anim_obj ANIM_OBJ_00, -15, 0, 5, 0, $0
anim_wait 6
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
- anim_sound $1, SFX_MEGA_KICK
- anim_obj $7, 152, 56, $0
- anim_obj $0, 152, 56, $0
+ anim_sound 0, 1, SFX_MEGA_KICK
+ anim_obj ANIM_OBJ_07, -13, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_00, -13, 0, 7, 0, $0
anim_wait 6
- anim_loop $3, BattleAnim_Counter_branch_cab6b
+ anim_loop 3, .loop
anim_wait 16
anim_ret
; cabaa
@@ -3247,89 +3235,89 @@ BattleAnim_Counter_branch_cab6b: ; cab6b
BattleAnim_LowKick: ; cabaa
anim_1gfx ANIM_GFX_HIT
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 124, 64, $0
- anim_obj $0, 124, 64, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, 15, 4, 8, 0, $0
+ anim_obj ANIM_OBJ_00, 15, 4, 8, 0, $0
anim_wait 6
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 132, 64, $0
- anim_obj $0, 132, 64, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, -16, 4, 8, 0, $0
+ anim_obj ANIM_OBJ_00, -16, 4, 8, 0, $0
anim_wait 6
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 140, 64, $0
- anim_obj $0, 140, 64, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, -15, 4, 8, 0, $0
+ anim_obj ANIM_OBJ_00, -15, 4, 8, 0, $0
anim_wait 16
anim_ret
; cabe6
BattleAnim_WingAttack: ; cabe6
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_WING_ATTACK
- anim_obj $1, 148, 56, $0
- anim_obj $1, 116, 56, $0
+ anim_sound 0, 1, SFX_WING_ATTACK
+ anim_obj ANIM_OBJ_01, -14, 4, 7, 0, $0
+ anim_obj ANIM_OBJ_01, 14, 4, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_WING_ATTACK
- anim_obj $1, 144, 56, $0
- anim_obj $1, 120, 56, $0
+ anim_sound 0, 1, SFX_WING_ATTACK
+ anim_obj ANIM_OBJ_01, -14, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_01, 15, 0, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_WING_ATTACK
- anim_obj $1, 140, 56, $0
- anim_obj $1, 124, 56, $0
+ anim_sound 0, 1, SFX_WING_ATTACK
+ anim_obj ANIM_OBJ_01, -15, 4, 7, 0, $0
+ anim_obj ANIM_OBJ_01, 15, 4, 7, 0, $0
anim_wait 16
anim_ret
; cac13
BattleAnim_Slam: ; cac13
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_WING_ATTACK
+ anim_sound 0, 1, SFX_WING_ATTACK
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
- anim_obj $1, 124, 40, $0
+ anim_obj ANIM_OBJ_01, 15, 4, 5, 0, $0
anim_wait 16
anim_ret
; cac24
BattleAnim_Disable: ; cac24
anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_STATUS
- anim_bgeffect $6, $0, $2, $0
- anim_obj $7c, 132, 56, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_obj ANIM_OBJ_7C, -16, 4, 7, 0, $0
anim_wait 16
- anim_sound $1, SFX_BIND
- anim_obj ANIM_OBJ_PARALYZED, 104, 56, $42
- anim_obj ANIM_OBJ_PARALYZED, 160, 56, $c2
+ anim_sound 0, 1, SFX_BIND
+ anim_obj ANIM_OBJ_PARALYZED, 13, 0, 7, 0, $42
+ anim_obj ANIM_OBJ_PARALYZED, -12, 0, 7, 0, $c2
anim_wait 96
anim_ret
; cac41
BattleAnim_TailWhip: ; cac41
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_TailWhip_branch_cbcaf
- anim_sound $0, SFX_TAIL_WHIP
- anim_bgeffect $26, $0, $1, $0
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_sound 0, 0, SFX_TAIL_WHIP
+ anim_bgeffect ANIM_BG_26, $0, $1, $0
anim_wait 32
- anim_incbgeffect $26
- anim_call BattleAnim_TailWhip_branch_cbcb7
+ anim_incbgeffect ANIM_BG_26
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cac55
BattleAnim_Struggle: ; cac55
anim_1gfx ANIM_GFX_HIT
- anim_sound $1, SFX_POUND
- anim_obj $1, 136, 56, $0
+ anim_sound 0, 1, SFX_POUND
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; cac61
BattleAnim_Sketch: ; cac61
anim_1gfx ANIM_GFX_OBJECTS
- anim_call BattleAnim_Sketch_branch_cbca7
- anim_bgeffect $1a, $0, $1, $20
- anim_sound $0, SFX_SKETCH
- anim_obj $98, 72, 80, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1A, $0, $1, $20
+ anim_sound 0, 0, SFX_SKETCH
+ anim_obj ANIM_OBJ_98, 9, 0, 10, 0, $0
anim_wait 80
- anim_incbgeffect $1a
- anim_call BattleAnim_Sketch_branch_cbcb7
+ anim_incbgeffect ANIM_BG_1A
+ anim_call BattleAnim_ShowMon_0
anim_wait 1
anim_ret
; cac7b
@@ -3338,73 +3326,73 @@ BattleAnim_TripleKick: ; cac7b
anim_1gfx ANIM_GFX_HIT
anim_jumpif $1, BattleAnim_TripleKick_branch_cac95
anim_jumpif $2, BattleAnim_TripleKick_branch_caca5
- anim_sound $1, SFX_MEGA_KICK
- anim_obj $7, 144, 48, $0
+ anim_sound 0, 1, SFX_MEGA_KICK
+ anim_obj ANIM_OBJ_07, -14, 0, 6, 0, $0
anim_wait 6
- anim_obj $1, 144, 48, $0
+ anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0
anim_wait 8
anim_ret
; cac95
BattleAnim_TripleKick_branch_cac95: ; cac95
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 120, 64, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, 15, 0, 8, 0, $0
anim_wait 6
- anim_obj $1, 120, 64, $0
+ anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0
anim_wait 8
anim_ret
; caca5
BattleAnim_TripleKick_branch_caca5: ; caca5
- anim_sound $1, SFX_DOUBLE_KICK
- anim_obj $7, 132, 32, $0
+ anim_sound 0, 1, SFX_DOUBLE_KICK
+ anim_obj ANIM_OBJ_07, -16, 4, 4, 0, $0
anim_wait 6
- anim_obj $1, 132, 32, $0
+ anim_obj ANIM_OBJ_01, -16, 4, 4, 0, $0
anim_wait 8
anim_ret
; cacb5
BattleAnim_Thief: ; cacb5
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Thief_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 16
- anim_sound $1, SFX_THIEF
- anim_obj $1, 128, 48, $0
+ anim_sound 0, 1, SFX_THIEF
+ anim_obj ANIM_OBJ_01, 16, 0, 6, 0, $0
anim_wait 16
- anim_call BattleAnim_Thief_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_wait 1
anim_1gfx ANIM_GFX_STATUS
- anim_sound $1, SFX_THIEF_2
- anim_obj $8b, 120, 76, $1
+ anim_sound 0, 1, SFX_THIEF_2
+ anim_obj ANIM_OBJ_8B, 15, 0, 9, 4, $1
anim_wait 64
anim_ret
; cacd9
BattleAnim_SpiderWeb: ; cacd9
anim_1gfx ANIM_GFX_WEB
- anim_bgeffect $7, $0, $2, $0
- anim_obj $92, 132, 48, $0
- anim_sound $1a, SFX_SPIDER_WEB
- anim_obj $5a, 64, 80, $0
+ anim_bgeffect ANIM_BG_07, $0, $2, $0
+ anim_obj ANIM_OBJ_92, -16, 4, 6, 0, $0
+ anim_sound 6, 2, SFX_SPIDER_WEB
+ anim_obj ANIM_OBJ_5A, 8, 0, 10, 0, $0
anim_wait 4
- anim_obj $5a, 64, 88, $0
+ anim_obj ANIM_OBJ_5A, 8, 0, 11, 0, $0
anim_wait 4
- anim_obj $5a, 64, 84, $0
+ anim_obj ANIM_OBJ_5A, 8, 0, 10, 4, $0
anim_wait 64
anim_ret
; cacfb
BattleAnim_MindReader: ; cacfb
anim_1gfx ANIM_GFX_MISC
- anim_sound $1, SFX_MIND_READER
-BattleAnim_MindReader_branch_cad00: ; cad00
- anim_obj $88, 132, 48, $3
- anim_obj $88, 132, 48, $12
- anim_obj $88, 132, 48, $20
- anim_obj $88, 132, 48, $31
- anim_wait 16
- anim_loop $2, BattleAnim_MindReader_branch_cad00
+ anim_sound 0, 1, SFX_MIND_READER
+.loop
+ anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $3
+ anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $12
+ anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $20
+ anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $31
+ anim_wait 16
+ anim_loop 2, .loop
anim_wait 32
anim_ret
; cad1b
@@ -3413,126 +3401,126 @@ BattleAnim_Nightmare: ; cad1b
anim_1gfx ANIM_GFX_ANGELS
anim_bgp $1b
anim_obp0 $f
- anim_obj $94, 132, 40, $0
- anim_obj $94, 132, 40, $a0
- anim_sound $1, SFX_NIGHTMARE
+ anim_obj ANIM_OBJ_94, -16, 4, 5, 0, $0
+ anim_obj ANIM_OBJ_94, -16, 4, 5, 0, $a0
+ anim_sound 0, 1, SFX_NIGHTMARE
anim_wait 96
anim_ret
; cad30
BattleAnim_FlameWheel: ; cad30
anim_1gfx ANIM_GFX_FIRE
-BattleAnim_FlameWheel_branch_cad32: ; cad32
- anim_sound $0, SFX_EMBER
- anim_obj $7f, 48, 96, $0
+.loop
+ anim_sound 0, 0, SFX_EMBER
+ anim_obj ANIM_OBJ_7F, 6, 0, 12, 0, $0
anim_wait 6
- anim_loop $8, BattleAnim_FlameWheel_branch_cad32
+ anim_loop 8, .loop
anim_wait 96
- anim_call BattleAnim_FlameWheel_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 4
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
- anim_sound $1, SFX_EMBER
- anim_obj $f, 136, 48, $1
- anim_obj $f, 136, 48, $4
- anim_obj $f, 136, 48, $5
+ anim_sound 0, 1, SFX_EMBER
+ anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $1
+ anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $4
+ anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $5
anim_wait 8
anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
anim_wait 4
- anim_incobj $9
+ anim_incobj 9
anim_wait 8
anim_ret
; cad6b
BattleAnim_Snore: ; cad6b
anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_NOISE
- anim_obj $54, 64, 80, $0
+ anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0
anim_wait 32
- anim_bgeffect $1f, $60, $2, $0
- anim_sound $0, SFX_SNORE
-BattleAnim_Snore_branch_cad7c: ; cad7c
+ anim_bgeffect ANIM_BG_1F, $60, $2, $0
+ anim_sound 0, 0, SFX_SNORE
+.loop
anim_call BattleAnim_Snore_branch_cbbbc
anim_wait 16
- anim_loop $2, BattleAnim_Snore_branch_cad7c
+ anim_loop 2, .loop
anim_wait 8
anim_ret
; cad86
BattleAnim_Curse: ; cad86
- anim_jumpif $1, BattleAnim_Curse_branch_cada3
+ anim_jumpif $1, .NotGhost
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS
- anim_obj $a5, 68, 72, $0
- anim_sound $0, SFX_CURSE
+ anim_obj ANIM_OBJ_A5, 8, 4, 9, 0, $0
+ anim_sound 0, 0, SFX_CURSE
anim_wait 32
- anim_incobj $1
+ anim_incobj 1
anim_wait 12
- anim_sound $0, SFX_POISON_STING
- anim_obj $4, 44, 96, $0
+ anim_sound 0, 0, SFX_POISON_STING
+ anim_obj ANIM_OBJ_04, 5, 4, 12, 0, $0
anim_wait 16
anim_ret
; cada3
-BattleAnim_Curse_branch_cada3: ; cada3
+.NotGhost: ; cada3
anim_1gfx ANIM_GFX_SPEED
- anim_call BattleAnim_Curse_branch_cbca7
- anim_bgeffect $19, $0, $1, $40
- anim_sound $0, SFX_SHARPEN
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_19, $0, $1, $40
+ anim_sound 0, 0, SFX_SHARPEN
anim_wait 64
- anim_incbgeffect $19
+ anim_incbgeffect ANIM_BG_19
anim_wait 1
- anim_bgeffect $16, $0, $1, $40
-BattleAnim_Curse_branch_cadb9: ; cadb9
- anim_sound $0, SFX_SWORDS_DANCE
- anim_obj $47, 44, 108, $6
+ anim_bgeffect ANIM_BG_16, $0, $1, $40
+.loop
+ anim_sound 0, 0, SFX_SWORDS_DANCE
+ anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 36, 108, $6
+ anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 52, 108, $8
+ anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 28, 108, $8
+ anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 60, 108, $6
+ anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 20, 108, $8
+ anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 68, 108, $8
+ anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8
anim_wait 2
- anim_loop $3, BattleAnim_Curse_branch_cadb9
+ anim_loop 3, .loop
anim_wait 8
- anim_incbgeffect $16
- anim_call BattleAnim_Curse_branch_cbcb7
+ anim_incbgeffect ANIM_BG_16
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cadf1
BattleAnim_Flail: ; cadf1
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Flail_branch_cbca7
- anim_sound $0, SFX_SUBMISSION
- anim_bgeffect $2c, $0, $1, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_sound 0, 0, SFX_SUBMISSION
+ anim_bgeffect ANIM_BG_2C, $0, $1, $0
anim_wait 8
- anim_obj $1, 120, 48, $0
+ anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0
anim_wait 8
- anim_obj $1, 152, 48, $0
+ anim_obj ANIM_OBJ_01, -13, 0, 6, 0, $0
anim_wait 8
- anim_obj $1, 136, 48, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0
anim_wait 8
- anim_incbgeffect $2c
- anim_call BattleAnim_Flail_branch_cbcb7
+ anim_incbgeffect ANIM_BG_2C
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cae17
BattleAnim_Conversion: ; cae17
anim_1gfx ANIM_GFX_EXPLOSION
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
- anim_sound $ff, SFX_SHARPEN
- anim_obj $91, 48, 88, $0
- anim_obj $91, 48, 88, $8
- anim_obj $91, 48, 88, $10
- anim_obj $91, 48, 88, $18
- anim_obj $91, 48, 88, $20
- anim_obj $91, 48, 88, $28
- anim_obj $91, 48, 88, $30
- anim_obj $91, 48, 88, $38
+ anim_sound 63, 3, SFX_SHARPEN
+ anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $0
+ anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $8
+ anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $10
+ anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $18
+ anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $20
+ anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $28
+ anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $30
+ anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $38
anim_wait 128
anim_ret
; cae4b
@@ -3540,20 +3528,20 @@ BattleAnim_Conversion: ; cae17
BattleAnim_Aeroblast: ; cae4b
anim_2gfx ANIM_GFX_BEAM, ANIM_GFX_AEROBLAST
anim_bgp $1b
- anim_bgeffect $1f, $50, $4, $10
- anim_bgeffect $6, $0, $2, $0
- anim_sound $0, SFX_AEROBLAST
- anim_obj $b3, 72, 88, $0
+ anim_bgeffect ANIM_BG_1F, $50, $4, $10
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_sound 0, 0, SFX_AEROBLAST
+ anim_obj ANIM_OBJ_B3, 9, 0, 11, 0, $0
anim_wait 32
- anim_sound $0, SFX_HYPER_BEAM
- anim_obj $27, 80, 84, $0
+ anim_sound 0, 0, SFX_HYPER_BEAM
+ anim_obj ANIM_OBJ_27, 10, 0, 10, 4, $0
anim_wait 2
- anim_sound $1, SFX_HYPER_BEAM
- anim_obj $27, 96, 76, $0
+ anim_sound 0, 1, SFX_HYPER_BEAM
+ anim_obj ANIM_OBJ_27, 12, 0, 9, 4, $0
anim_wait 2
- anim_sound $1, SFX_HYPER_BEAM
- anim_obj $27, 112, 68, $0
- anim_obj $28, 126, 62, $0
+ anim_sound 0, 1, SFX_HYPER_BEAM
+ anim_obj ANIM_OBJ_27, 14, 0, 8, 4, $0
+ anim_obj ANIM_OBJ_28, 15, 6, 7, 6, $0
anim_wait 48
anim_ret
; cae84
@@ -3561,60 +3549,60 @@ BattleAnim_Aeroblast: ; cae4b
BattleAnim_CottonSpore: ; cae84
anim_obp0 $54
anim_1gfx ANIM_GFX_MISC
- anim_sound $1, SFX_POWDER
-BattleAnim_CottonSpore_branch_cae8b: ; cae8b
- anim_obj $81, 132, 32, $0
+ anim_sound 0, 1, SFX_POWDER
+.loop: ; cae8b
+ anim_obj ANIM_OBJ_81, -16, 4, 4, 0, $0
anim_wait 8
- anim_loop $5, BattleAnim_CottonSpore_branch_cae8b
+ anim_loop 5, .loop
anim_wait 96
anim_ret
; cae97
BattleAnim_Reversal: ; cae97
anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_HIT
- anim_bgeffect $7, $0, $0, $0
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $4, 112, 64, $0
+ anim_bgeffect ANIM_BG_07, $0, $0, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_04, 14, 0, 8, 0, $0
anim_wait 2
- anim_sound $1, SFX_SHINE
- anim_obj $a7, 120, 56, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_A7, 15, 0, 7, 0, $0
anim_wait 2
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $4, 128, 56, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_04, 16, 0, 7, 0, $0
anim_wait 2
- anim_sound $1, SFX_SHINE
- anim_obj $a7, 136, 48, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_A7, -15, 0, 6, 0, $0
anim_wait 2
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $4, 144, 48, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_04, -14, 0, 6, 0, $0
anim_wait 2
- anim_sound $1, SFX_SHINE
- anim_obj $a7, 152, 40, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_A7, -13, 0, 5, 0, $0
anim_wait 24
anim_ret
; caed6
BattleAnim_Spite: ; caed6
anim_1gfx ANIM_GFX_ANGELS
- anim_obj $a4, 132, 16, $0
- anim_sound $1, SFX_SPITE
+ anim_obj ANIM_OBJ_A4, -16, 4, 2, 0, $0
+ anim_sound 0, 1, SFX_SPITE
anim_wait 96
anim_ret
; caee2
BattleAnim_PowderSnow: ; caee2
anim_1gfx ANIM_GFX_ICE
-BattleAnim_PowderSnow_branch_caee4: ; caee4
- anim_sound $1a, SFX_SHINE
- anim_obj $8f, 64, 88, $23
+.loop: ; caee4
+ anim_sound 6, 2, SFX_SHINE
+ anim_obj ANIM_OBJ_8F, 8, 0, 11, 0, $23
anim_wait 2
- anim_sound $1a, SFX_SHINE
- anim_obj $8f, 64, 80, $24
+ anim_sound 6, 2, SFX_SHINE
+ anim_obj ANIM_OBJ_8F, 8, 0, 10, 0, $24
anim_wait 2
- anim_sound $1a, SFX_SHINE
- anim_obj $8f, 64, 96, $23
+ anim_sound 6, 2, SFX_SHINE
+ anim_obj ANIM_OBJ_8F, 8, 0, 12, 0, $23
anim_wait 2
- anim_loop $2, BattleAnim_PowderSnow_branch_caee4
+ anim_loop 2, .loop
anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
anim_wait 40
anim_call BattleAnim_PowderSnow_branch_cbbdf
@@ -3624,13 +3612,13 @@ BattleAnim_PowderSnow_branch_caee4: ; caee4
BattleAnim_Protect: ; caf0e
anim_1gfx ANIM_GFX_OBJECTS
- anim_bgeffect $7, $0, $2, $0
- anim_obj $8a, 80, 80, $0
- anim_obj $8a, 80, 80, $d
- anim_obj $8a, 80, 80, $1a
- anim_obj $8a, 80, 80, $27
- anim_obj $8a, 80, 80, $34
- anim_sound $0, SFX_PROTECT
+ anim_bgeffect ANIM_BG_07, $0, $2, $0
+ anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $0
+ anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $d
+ anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $1a
+ anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $27
+ anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $34
+ anim_sound 0, 0, SFX_PROTECT
anim_wait 96
anim_ret
; caf33
@@ -3638,18 +3626,18 @@ BattleAnim_Protect: ; caf0e
BattleAnim_MachPunch: ; caf33
anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
- anim_sound $0, SFX_MENU
- anim_obj $77, 24, 88, $2
- anim_obj $77, 32, 88, $1
- anim_obj $77, 40, 88, $0
- anim_obj $77, 48, 88, $80
- anim_obj $77, 56, 88, $81
- anim_obj $77, 64, 88, $82
+ anim_sound 0, 0, SFX_MENU
+ anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2
+ anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1
+ anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0
+ anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80
+ anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81
+ anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82
anim_wait 12
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $6, 136, 56, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0
anim_wait 6
- anim_obj $1, 136, 56, $0
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 8
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
anim_wait 16
@@ -3659,7 +3647,7 @@ BattleAnim_MachPunch: ; caf33
BattleAnim_ScaryFace: ; caf73
anim_1gfx ANIM_GFX_BEAM
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_call BattleAnim_ScaryFace_branch_cbadc
anim_wait 64
anim_ret
@@ -3667,74 +3655,74 @@ BattleAnim_ScaryFace: ; caf73
BattleAnim_FaintAttack: ; caf84
anim_1gfx ANIM_GFX_HIT
- anim_sound $0, SFX_CURSE
- anim_call BattleAnim_FaintAttack_branch_cbca7
- anim_bgeffect $1d, $0, $1, $80
+ anim_sound 0, 0, SFX_CURSE
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1D, $0, $1, $80
anim_wait 96
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $4, 120, 32, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_04, 15, 0, 4, 0, $0
anim_wait 8
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $4, 152, 40, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_04, -13, 0, 5, 0, $0
anim_wait 8
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $4, 136, 48, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0
anim_wait 32
- anim_incbgeffect $1d
- anim_call BattleAnim_FaintAttack_branch_cbcb7
+ anim_incbgeffect ANIM_BG_1D
+ anim_call BattleAnim_ShowMon_0
anim_wait 4
anim_ret
; cafb4
BattleAnim_SweetKiss: ; cafb4
anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS
- anim_bgeffect $7, $0, $2, $0
- anim_obj $97, 96, 40, $0
- anim_sound $1, SFX_SWEET_KISS
+ anim_bgeffect ANIM_BG_07, $0, $2, $0
+ anim_obj ANIM_OBJ_97, 12, 0, 5, 0, $0
+ anim_sound 0, 1, SFX_SWEET_KISS
anim_wait 32
- anim_sound $1, SFX_SWEET_KISS_2
- anim_obj ANIM_OBJ_HEART, 120, 40, $0
+ anim_sound 0, 1, SFX_SWEET_KISS_2
+ anim_obj ANIM_OBJ_HEART, 15, 0, 5, 0, $0
anim_wait 40
anim_ret
; cafcf
BattleAnim_BellyDrum: ; cafcf
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_NOISE
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 24
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 24
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 12
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 12
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 24
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 12
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 12
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 12
- anim_sound $0, SFX_BELLY_DRUM
- anim_obj $aa, 64, 104, $0
- anim_obj $ab, 64, 92, $f8
+ anim_sound 0, 0, SFX_BELLY_DRUM
+ anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0
+ anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8
anim_wait 12
anim_ret
; cb051
@@ -3742,8 +3730,8 @@ BattleAnim_BellyDrum: ; cafcf
BattleAnim_SludgeBomb: ; cb051
anim_2gfx ANIM_GFX_EGG, ANIM_GFX_POISON
anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0
- anim_sound $1a, SFX_SLUDGE_BOMB
- anim_obj $62, 64, 92, $10
+ anim_sound 6, 2, SFX_SLUDGE_BOMB
+ anim_obj ANIM_OBJ_62, 8, 0, 11, 4, $10
anim_wait 36
anim_call BattleAnim_SludgeBomb_branch_cbc15
anim_wait 64
@@ -3759,31 +3747,31 @@ BattleAnim_MudSlap: ; cb067
BattleAnim_Octazooka: ; cb06f
anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE
- anim_sound $1a, SFX_SLUDGE_BOMB
- anim_obj $8c, 64, 92, $4
+ anim_sound 6, 2, SFX_SLUDGE_BOMB
+ anim_obj ANIM_OBJ_8C, 8, 0, 11, 4, $4
anim_wait 16
- anim_obj $1c, 132, 56, $10
+ anim_obj ANIM_OBJ_1C, -16, 4, 7, 0, $10
anim_wait 8
- anim_jumpif $0, BattleAnim_Octazooka_branch_cb091
-BattleAnim_Octazooka_branch_cb086: ; cb086
- anim_obj $74, 132, 60, $20
+ anim_jumpif $0, .done
+.loop
+ anim_obj ANIM_OBJ_74, -16, 4, 7, 4, $20
anim_wait 8
- anim_loop $5, BattleAnim_Octazooka_branch_cb086
+ anim_loop 5, .loop
anim_wait 128
-BattleAnim_Octazooka_branch_cb091: ; cb091
+.done
anim_ret
; cb092
BattleAnim_Spikes: ; cb092
anim_1gfx ANIM_GFX_MISC
- anim_sound $1a, SFX_MENU
- anim_obj $8e, 48, 88, $20
+ anim_sound 6, 2, SFX_MENU
+ anim_obj ANIM_OBJ_8E, 6, 0, 11, 0, $20
anim_wait 8
- anim_sound $1a, SFX_MENU
- anim_obj $8e, 48, 88, $30
+ anim_sound 6, 2, SFX_MENU
+ anim_obj ANIM_OBJ_8E, 6, 0, 11, 0, $30
anim_wait 8
- anim_sound $1a, SFX_MENU
- anim_obj $8e, 48, 88, $28
+ anim_sound 6, 2, SFX_MENU
+ anim_obj ANIM_OBJ_8E, 6, 0, 11, 0, $28
anim_wait 64
anim_ret
; cb0b0
@@ -3792,28 +3780,28 @@ BattleAnim_ZapCannon: ; cb0b0
anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
anim_bgp $1b
anim_obp0 $30
- anim_sound $1a, SFX_ZAP_CANNON
- anim_obj $a3, 64, 92, $2
+ anim_sound 6, 2, SFX_ZAP_CANNON
+ anim_obj ANIM_OBJ_A3, 8, 0, 11, 4, $2
anim_wait 40
- anim_sound $1, SFX_THUNDERSHOCK
- anim_obj $32, 136, 56, $2
+ anim_sound 0, 1, SFX_THUNDERSHOCK
+ anim_obj ANIM_OBJ_32, -15, 0, 7, 0, $2
anim_wait 16
- anim_obj $31, 136, 56, $0
+ anim_obj ANIM_OBJ_31, -15, 0, 7, 0, $0
anim_wait 128
anim_ret
; cb0d0
BattleAnim_Foresight: ; cb0d0
anim_1gfx ANIM_GFX_SHINE
- anim_call BattleAnim_Foresight_branch_cbcc2
- anim_bgeffect $7, $0, $0, $0
- anim_sound $1, SFX_FORESIGHT
- anim_obj $a7, 132, 40, $0
+ anim_call BattleAnim_FollowEnemyFeet_1
+ anim_bgeffect ANIM_BG_07, $0, $0, $0
+ anim_sound 0, 1, SFX_FORESIGHT
+ anim_obj ANIM_OBJ_A7, -16, 4, 5, 0, $0
anim_wait 24
- anim_bgeffect $19, $0, $0, $40
+ anim_bgeffect ANIM_BG_19, $0, $0, $40
anim_wait 64
- anim_incbgeffect $19
- anim_call BattleAnim_Foresight_branch_cbcd2
+ anim_incbgeffect ANIM_BG_19
+ anim_call BattleAnim_ShowMon_1
anim_wait 8
anim_ret
; cb0f0
@@ -3823,15 +3811,15 @@ BattleAnim_DestinyBond: ; cb0f0
anim_bgp $1b
anim_obp0 $0
anim_jumpif $1, BattleAnim_DestinyBond_branch_cb104
- anim_sound $1a, SFX_WHIRLWIND
- anim_obj $9b, 44, 120, $2
+ anim_sound 6, 2, SFX_WHIRLWIND
+ anim_obj ANIM_OBJ_9B, 5, 4, 15, 0, $2
anim_wait 128
anim_ret
; cb104
BattleAnim_DestinyBond_branch_cb104: ; cb104
- anim_obj $9b, 132, 76, $0
- anim_sound $1, SFX_KINESIS
+ anim_obj ANIM_OBJ_9B, -16, 4, 9, 4, $0
+ anim_sound 0, 1, SFX_KINESIS
anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
anim_wait 32
anim_ret
@@ -3839,36 +3827,36 @@ BattleAnim_DestinyBond_branch_cb104: ; cb104
BattleAnim_PerishSong: ; cb113
anim_1gfx ANIM_GFX_NOISE
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
- anim_sound $2, SFX_PERISH_SONG
- anim_obj $a6, 88, 0, $0
- anim_obj $a6, 88, 0, $8
- anim_obj $a6, 88, 0, $10
- anim_obj $a6, 88, 0, $18
- anim_obj $a6, 88, 0, $20
- anim_obj $a6, 88, 0, $28
- anim_obj $a6, 88, 0, $30
- anim_obj $a6, 88, 0, $38
+ anim_sound 0, 2, SFX_PERISH_SONG
+ anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $0
+ anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $8
+ anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $10
+ anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $18
+ anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $20
+ anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $28
+ anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $30
+ anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $38
anim_wait 112
anim_ret
; cb14c
BattleAnim_IcyWind: ; cb14c
anim_1gfx ANIM_GFX_SPEED
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
anim_playerheadobj
- anim_sound $0, SFX_PSYCHIC
-BattleAnim_IcyWind_branch_cb15c: ; cb15c
+ anim_sound 0, 0, SFX_PSYCHIC
+.loop
anim_wait 8
- anim_obj $ae, 64, 88, $4
+ anim_obj ANIM_OBJ_AE, 8, 0, 11, 0, $4
anim_wait 8
- anim_obj $ae, 64, 80, $4
+ anim_obj ANIM_OBJ_AE, 8, 0, 10, 0, $4
anim_wait 8
- anim_obj $ae, 64, 96, $4
+ anim_obj ANIM_OBJ_AE, 8, 0, 12, 0, $4
anim_wait 8
- anim_loop $2, BattleAnim_IcyWind_branch_cb15c
+ anim_loop 2, .loop
anim_wait 16
anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0
anim_wait 6
@@ -3877,271 +3865,270 @@ BattleAnim_IcyWind_branch_cb15c: ; cb15c
anim_incbgeffect ANIM_BG_NIGHT_SHADE
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
anim_wait 4
- anim_incobj $7
+ anim_incobj 7
anim_wait 1
anim_ret
; cb18c
BattleAnim_Detect: ; cb18c
anim_1gfx ANIM_GFX_SHINE
- anim_bgeffect $7, $0, $0, $0
- anim_sound $0, SFX_FORESIGHT
- anim_obj $a7, 64, 88, $0
+ anim_bgeffect ANIM_BG_07, $0, $0, $0
+ anim_sound 0, 0, SFX_FORESIGHT
+ anim_obj ANIM_OBJ_A7, 8, 0, 11, 0, $0
anim_wait 24
anim_ret
; cb19d
BattleAnim_BoneRush: ; cb19d
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC
- anim_sound $1, SFX_BONE_CLUB
- anim_obj $69, 132, 56, $2
+ anim_sound 0, 1, SFX_BONE_CLUB
+ anim_obj ANIM_OBJ_69, -16, 4, 7, 0, $2
anim_wait 16
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $1, 120, 48, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0
anim_wait 16
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $1, 144, 64, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $0
anim_wait 16
anim_ret
; cb1bc
BattleAnim_LockOn: ; cb1bc
anim_1gfx ANIM_GFX_MISC
- anim_sound $1, SFX_MIND_READER
-BattleAnim_LockOn_branch_cb1c1: ; cb1c1
- anim_obj $87, 132, 48, $3
- anim_obj $87, 132, 48, $12
- anim_obj $87, 132, 48, $20
- anim_obj $87, 132, 48, $31
- anim_wait 16
- anim_loop $2, BattleAnim_LockOn_branch_cb1c1
+ anim_sound 0, 1, SFX_MIND_READER
+.loop
+ anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $3
+ anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $12
+ anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $20
+ anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $31
+ anim_wait 16
+ anim_loop 2, .loop
anim_wait 32
anim_ret
; cb1dc
BattleAnim_Outrage: ; cb1dc
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Outrage_branch_cbca7
- anim_bgeffect $1a, $0, $1, $20
- anim_sound $0, SFX_OUTRAGE
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1A, $0, $1, $20
+ anim_sound 0, 0, SFX_OUTRAGE
anim_wait 72
- anim_incbgeffect $1a
- anim_call BattleAnim_Outrage_branch_cbcb7
+ anim_incbgeffect ANIM_BG_1A
+ anim_call BattleAnim_ShowMon_0
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
- anim_sound $1, SFX_MOVE_PUZZLE_PIECE
- anim_obj $0, 120, 72, $0
+ anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
+ anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0
anim_wait 6
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $0, 136, 56, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $0, 152, 40, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0
anim_wait 16
anim_ret
; cb210
BattleAnim_Sandstorm: ; cb210
anim_1gfx ANIM_GFX_POWDER
- anim_obj $a2, 88, 0, $0
+ anim_obj ANIM_OBJ_A2, 11, 0, 0, 0, $0
anim_wait 8
- anim_obj $a2, 72, 0, $1
+ anim_obj ANIM_OBJ_A2, 9, 0, 0, 0, $1
anim_wait 8
- anim_obj $a2, 56, 0, $2
-BattleAnim_Sandstorm_branch_cb223: ; cb223
- anim_sound $1, SFX_MENU
+ anim_obj ANIM_OBJ_A2, 7, 0, 0, 0, $2
+.loop
+ anim_sound 0, 1, SFX_MENU
anim_wait 8
- anim_loop $10, BattleAnim_Sandstorm_branch_cb223
+ anim_loop 16, .loop
anim_wait 8
anim_ret
; cb22d
BattleAnim_GigaDrain: ; cb22d
anim_2gfx ANIM_GFX_BUBBLE, ANIM_GFX_CHARGE
- anim_call BattleAnim_GigaDrain_branch_cbca7
- anim_bgeffect $1c, $0, $0, $10
- anim_sound $1b, SFX_GIGA_DRAIN
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1C, $0, $0, $10
+ anim_sound 6, 3, SFX_GIGA_DRAIN
anim_call BattleAnim_GigaDrain_branch_cbab3
anim_wait 48
anim_wait 128
- anim_incbgeffect $1c
- anim_call BattleAnim_GigaDrain_branch_cbcb7
+ anim_incbgeffect ANIM_BG_1C
+ anim_call BattleAnim_ShowMon_0
anim_wait 1
anim_1gfx ANIM_GFX_SHINE
- anim_bgeffect $7, $0, $0, $0
-BattleAnim_GigaDrain_branch_cb24d: ; cb24d
- anim_sound $0, SFX_METRONOME
- anim_obj $9d, 24, 64, $0
+ anim_bgeffect ANIM_BG_07, $0, $0, $0
+.loop
+ anim_sound 0, 0, SFX_METRONOME
+ anim_obj ANIM_OBJ_9D, 3, 0, 8, 0, $0
anim_wait 5
- anim_obj $9d, 56, 104, $0
+ anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0
anim_wait 5
- anim_obj $9d, 24, 104, $0
+ anim_obj ANIM_OBJ_9D, 3, 0, 13, 0, $0
anim_wait 5
- anim_obj $9d, 56, 64, $0
+ anim_obj ANIM_OBJ_9D, 7, 0, 8, 0, $0
anim_wait 5
- anim_obj $9d, 40, 84, $0
+ anim_obj ANIM_OBJ_9D, 5, 0, 10, 4, $0
anim_wait 5
- anim_loop $2, BattleAnim_GigaDrain_branch_cb24d
+ anim_loop 2, .loop
anim_wait 32
anim_ret
; cb274
BattleAnim_Endure: ; cb274
anim_1gfx ANIM_GFX_SPEED
- anim_call BattleAnim_Endure_branch_cbca7
- anim_bgeffect $1a, $0, $1, $20
- anim_bgeffect $7, $0, $2, $0
-BattleAnim_Endure_branch_cb283: ; cb283
- anim_sound $0, SFX_SWORDS_DANCE
- anim_obj $47, 44, 108, $6
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1A, $0, $1, $20
+ anim_bgeffect ANIM_BG_07, $0, $2, $0
+.loop
+ anim_sound 0, 0, SFX_SWORDS_DANCE
+ anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 36, 108, $6
+ anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 52, 108, $8
+ anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 28, 108, $8
+ anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 60, 108, $6
+ anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6
anim_wait 2
- anim_obj $47, 20, 108, $8
+ anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8
anim_wait 2
- anim_obj $47, 68, 108, $8
+ anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8
anim_wait 2
- anim_loop $5, BattleAnim_Endure_branch_cb283
+ anim_loop 5, .loop
anim_wait 8
- anim_incbgeffect $1a
- anim_call BattleAnim_Endure_branch_cbcb7
+ anim_incbgeffect ANIM_BG_1A
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cb2bb
BattleAnim_Charm: ; cb2bb
anim_1gfx ANIM_GFX_OBJECTS
- anim_call BattleAnim_Charm_branch_cbca7
- anim_bgeffect $26, $0, $1, $0
- anim_sound $0, SFX_ATTRACT
- anim_obj ANIM_OBJ_HEART, 64, 80, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_26, $0, $1, $0
+ anim_sound 0, 0, SFX_ATTRACT
+ anim_obj ANIM_OBJ_HEART, 8, 0, 10, 0, $0
anim_wait 32
- anim_incbgeffect $26
- anim_call BattleAnim_Charm_branch_cbcb7
+ anim_incbgeffect ANIM_BG_26
+ anim_call BattleAnim_ShowMon_0
anim_wait 4
anim_ret
; cb2d5
BattleAnim_Rollout: ; cb2d5
anim_1gfx ANIM_GFX_HIT
- anim_sound $0, SFX_SPARK
- anim_call BattleAnim_Rollout_branch_cbcaf
- anim_bgeffect $2e, $60, $1, $1
- anim_bgeffect $25, $0, $1, $0
+ anim_sound 0, 0, SFX_SPARK
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_2E, $60, $1, $1
+ anim_bgeffect ANIM_BG_25, $0, $1, $0
anim_wait 4
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $3, 136, 40, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_03, -15, 0, 5, 0, $0
anim_wait 8
- anim_call BattleAnim_Rollout_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cb2f5
BattleAnim_FalseSwipe: ; cb2f5
anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_CUT
- anim_bgeffect $7, $0, $0, $0
- anim_sound $1, SFX_CUT
- anim_obj $3a, 152, 40, $0
+ anim_bgeffect ANIM_BG_07, $0, $0, $0
+ anim_sound 0, 1, SFX_CUT
+ anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0
anim_wait 4
- anim_obj $9d, 136, 40, $0
+ anim_obj ANIM_OBJ_9D, -15, 0, 5, 0, $0
anim_wait 32
anim_ret
; cb30d
BattleAnim_Swagger: ; cb30d
anim_2gfx ANIM_GFX_MISC, ANIM_GFX_WIND
-BattleAnim_Swagger_branch_cb310: ; cb310
- anim_sound $0, SFX_MENU
- anim_obj $a9, 72, 88, $44
+.loop
+ anim_sound 0, 0, SFX_MENU
+ anim_obj ANIM_OBJ_A9, 9, 0, 11, 0, $44
anim_wait 32
- anim_loop $2, BattleAnim_Swagger_branch_cb310
+ anim_loop 2, .loop
anim_wait 32
- anim_sound $1, SFX_KINESIS_2
- anim_obj $83, 104, 40, $0
+ anim_sound 0, 1, SFX_KINESIS_2
+ anim_obj ANIM_OBJ_83, 13, 0, 5, 0, $0
anim_wait 40
anim_ret
; cb328
BattleAnim_MilkDrink: ; cb328
anim_2gfx ANIM_GFX_MISC, ANIM_GFX_BUBBLE
- anim_call BattleAnim_MilkDrink_branch_cbca7
- anim_obj $82, 74, 104, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_obj ANIM_OBJ_82, 9, 2, 13, 0, $0
anim_wait 16
- anim_bgeffect $18, $0, $1, $40
- anim_sound $0, SFX_MILK_DRINK
-BattleAnim_MilkDrink_branch_cb33c: ; cb33c
- anim_obj $2c, 44, 88, $20
+ anim_bgeffect ANIM_BG_18, $0, $1, $40
+ anim_sound 0, 0, SFX_MILK_DRINK
+.loop
+ anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $20
anim_wait 8
- anim_loop $8, BattleAnim_MilkDrink_branch_cb33c
+ anim_loop 8, .loop
anim_wait 128
- anim_incbgeffect $18
- anim_call BattleAnim_MilkDrink_branch_cbcb7
+ anim_incbgeffect ANIM_BG_18
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cb34d
BattleAnim_Spark: ; cb34d
anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
- anim_sound $0, SFX_ZAP_CANNON
+ anim_sound 0, 0, SFX_ZAP_CANNON
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
- anim_obj $30, 48, 92, $0
+ anim_obj ANIM_OBJ_30, 6, 0, 11, 4, $0
anim_wait 24
anim_setobj $1, $3
anim_wait 1
- anim_call BattleAnim_Spark_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
- anim_sound $0, SFX_SPARK
+ anim_sound 0, 0, SFX_SPARK
anim_wait 16
anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
anim_wait 4
- anim_incobj $2
+ anim_incobj 2
anim_wait 1
- anim_sound $1, SFX_THUNDERSHOCK
- anim_obj $32, 136, 56, $2
- anim_obj $33, 136, 56, $0
+ anim_sound 0, 1, SFX_THUNDERSHOCK
+ anim_obj ANIM_OBJ_32, -15, 0, 7, 0, $2
+ anim_obj ANIM_OBJ_33, -15, 0, 7, 0, $0
anim_wait 32
anim_ret
; cb386
BattleAnim_FuryCutter: ; cb386
anim_1gfx ANIM_GFX_CUT
-BattleAnim_FuryCutter_branch_cb388: ; cb388
- anim_sound $1, SFX_CUT
- anim_jumpand $1, BattleAnim_FuryCutter_branch_cb397
- anim_obj $3a, 152, 40, $0
- anim_jump BattleAnim_FuryCutter_branch_cb39c
-; cb397
+.loop
+ anim_sound 0, 1, SFX_CUT
+ anim_jumpand $1, .obj1
+ anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0
+ anim_jump .okay
-BattleAnim_FuryCutter_branch_cb397: ; cb397
- anim_obj $3b, 112, 40, $0
-BattleAnim_FuryCutter_branch_cb39c: ; cb39c
+.obj1
+ anim_obj ANIM_OBJ_3B, 14, 0, 5, 0, $0
+.okay
anim_wait 16
- anim_jumpuntil BattleAnim_FuryCutter_branch_cb388
+ anim_jumpuntil .loop
anim_ret
; cb3a1
BattleAnim_SteelWing: ; cb3a1
anim_1gfx ANIM_GFX_REFLECT
anim_obp0 $0
- anim_sound $0, SFX_RAGE
- anim_call BattleAnim_SteelWing_branch_cbca7
+ anim_sound 0, 0, SFX_RAGE
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_call BattleAnim_SteelWing_branch_cbc43
- anim_call BattleAnim_SteelWing_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_1gfx ANIM_GFX_HIT
anim_resetobp0
- anim_sound $1, SFX_WING_ATTACK
- anim_obj $1, 148, 56, $0
- anim_obj $1, 116, 56, $0
+ anim_sound 0, 1, SFX_WING_ATTACK
+ anim_obj ANIM_OBJ_01, -14, 4, 7, 0, $0
+ anim_obj ANIM_OBJ_01, 14, 4, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_WING_ATTACK
- anim_obj $1, 144, 56, $0
- anim_obj $1, 120, 56, $0
+ anim_sound 0, 1, SFX_WING_ATTACK
+ anim_obj ANIM_OBJ_01, -14, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_01, 15, 0, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_WING_ATTACK
- anim_obj $1, 140, 56, $0
- anim_obj $1, 124, 56, $0
+ anim_sound 0, 1, SFX_WING_ATTACK
+ anim_obj ANIM_OBJ_01, -15, 4, 7, 0, $0
+ anim_obj ANIM_OBJ_01, 15, 4, 7, 0, $0
anim_wait 16
anim_ret
; cb3df
@@ -4149,27 +4136,27 @@ BattleAnim_SteelWing: ; cb3a1
BattleAnim_MeanLook: ; cb3df
anim_1gfx ANIM_GFX_PSYCHIC
anim_obp0 $e0
- anim_sound $1, SFX_MEAN_LOOK
- anim_obj $ac, 148, 32, $0
+ anim_sound 0, 1, SFX_MEAN_LOOK
+ anim_obj ANIM_OBJ_AC, -14, 4, 4, 0, $0
anim_wait 5
- anim_obj $ac, 116, 64, $0
+ anim_obj ANIM_OBJ_AC, 14, 4, 8, 0, $0
anim_wait 5
- anim_obj $ac, 148, 64, $0
+ anim_obj ANIM_OBJ_AC, -14, 4, 8, 0, $0
anim_wait 5
- anim_obj $ac, 116, 32, $0
+ anim_obj ANIM_OBJ_AC, 14, 4, 4, 0, $0
anim_wait 5
- anim_obj $ac, 132, 48, $0
+ anim_obj ANIM_OBJ_AC, -16, 4, 6, 0, $0
anim_wait 128
anim_ret
; cb405
BattleAnim_Attract: ; cb405
anim_1gfx ANIM_GFX_OBJECTS
-BattleAnim_Attract_branch_cb407: ; cb407
- anim_sound $0, SFX_ATTRACT
- anim_obj $66, 44, 80, $2
+.loop
+ anim_sound 0, 0, SFX_ATTRACT
+ anim_obj ANIM_OBJ_66, 5, 4, 10, 0, $2
anim_wait 8
- anim_loop $5, BattleAnim_Attract_branch_cb407
+ anim_loop 5, .loop
anim_wait 128
anim_wait 64
anim_ret
@@ -4177,187 +4164,186 @@ BattleAnim_Attract_branch_cb407: ; cb407
BattleAnim_SleepTalk: ; cb417
anim_1gfx ANIM_GFX_STATUS
-BattleAnim_SleepTalk_branch_cb419: ; cb419
- anim_sound $0, SFX_STRENGTH
- anim_obj $54, 64, 80, $0
+.loop
+ anim_sound 0, 0, SFX_STRENGTH
+ anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0
anim_wait 40
- anim_loop $2, BattleAnim_SleepTalk_branch_cb419
+ anim_loop 2, .loop
anim_wait 32
anim_ret
; cb428
BattleAnim_HealBell: ; cb428
anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE
- anim_obj $84, 72, 56, $0
+ anim_obj ANIM_OBJ_84, 9, 0, 7, 0, $0
anim_wait 32
-BattleAnim_HealBell_branch_cb431: ; cb431
- anim_sound $0, SFX_HEAL_BELL
- anim_obj $85, 72, 52, $0
+.loop
+ anim_sound 0, 0, SFX_HEAL_BELL
+ anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $0
anim_wait 8
- anim_sound $0, SFX_HEAL_BELL
- anim_obj $85, 72, 52, $1
+ anim_sound 0, 0, SFX_HEAL_BELL
+ anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $1
anim_wait 8
- anim_sound $0, SFX_HEAL_BELL
- anim_obj $85, 72, 52, $2
+ anim_sound 0, 0, SFX_HEAL_BELL
+ anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $2
anim_wait 8
- anim_sound $0, SFX_HEAL_BELL
- anim_obj $85, 72, 52, $0
+ anim_sound 0, 0, SFX_HEAL_BELL
+ anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $0
anim_wait 8
- anim_sound $0, SFX_HEAL_BELL
- anim_obj $85, 72, 52, $2
+ anim_sound 0, 0, SFX_HEAL_BELL
+ anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $2
anim_wait 8
- anim_loop $4, BattleAnim_HealBell_branch_cb431
+ anim_loop 4, .loop
anim_wait 64
anim_ret
; cb464
BattleAnim_Return: ; cb464
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Return_branch_cbcaf
- anim_bgeffect $22, $0, $1, $0
- anim_sound $0, SFX_RETURN
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
+ anim_sound 0, 0, SFX_RETURN
anim_wait 64
- anim_incbgeffect $22
+ anim_incbgeffect ANIM_BG_BOUNCE_DOWN
anim_wait 32
- anim_bgeffect $25, $0, $1, $0
+ anim_bgeffect ANIM_BG_25, $0, $1, $0
anim_wait 4
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $3, 136, 40, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_03, -15, 0, 5, 0, $0
anim_wait 8
- anim_call BattleAnim_Return_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cb488
BattleAnim_Present: ; cb488
anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_BUBBLE
- anim_sound $1, SFX_PRESENT
- anim_obj $8d, 64, 88, $6c
+ anim_sound 0, 1, SFX_PRESENT
+ anim_obj ANIM_OBJ_8D, 8, 0, 11, 0, $6c
anim_wait 56
- anim_obj $53, 104, 48, $0
+ anim_obj ANIM_OBJ_53, 13, 0, 6, 0, $0
anim_wait 48
- anim_incobj $2
- anim_jumpif $3, BattleAnim_Present_branch_cb4b2
- anim_incobj $1
+ anim_incobj 2
+ anim_jumpif $3, .heal
+ anim_incobj 1
anim_wait 1
anim_1gfx ANIM_GFX_EXPLOSION
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12
-BattleAnim_Present_branch_cb4aa: ; cb4aa
+.loop
anim_call BattleAnim_Present_branch_cbb8f
anim_wait 16
- anim_jumpuntil BattleAnim_Present_branch_cb4aa
+ anim_jumpuntil .loop
anim_ret
-; cb4b2
-BattleAnim_Present_branch_cb4b2: ; cb4b2
- anim_sound $1, SFX_METRONOME
-BattleAnim_Present_branch_cb4b5: ; cb4b5
- anim_obj $2c, 132, 48, $24
+.heal
+ anim_sound 0, 1, SFX_METRONOME
+.loop2
+ anim_obj ANIM_OBJ_2C, -16, 4, 6, 0, $24
anim_wait 8
- anim_loop $8, BattleAnim_Present_branch_cb4b5
+ anim_loop 8, .loop2
anim_wait 128
anim_ret
; cb4c1
BattleAnim_Frustration: ; cb4c1
anim_1gfx ANIM_GFX_MISC
- anim_sound $0, SFX_KINESIS_2
- anim_obj $83, 72, 80, $0
+ anim_sound 0, 0, SFX_KINESIS_2
+ anim_obj ANIM_OBJ_83, 9, 0, 10, 0, $0
anim_wait 40
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_Frustration_branch_cbca7
- anim_bgeffect $26, $0, $1, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_26, $0, $1, $0
anim_wait 8
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $1, 120, 48, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0
anim_wait 8
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $1, 152, 48, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_01, -13, 0, 6, 0, $0
anim_wait 8
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $1, 136, 48, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0
anim_wait 8
- anim_incbgeffect $26
+ anim_incbgeffect ANIM_BG_26
anim_wait 1
- anim_call BattleAnim_Frustration_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cb4f9
BattleAnim_Safeguard: ; cb4f9
anim_1gfx ANIM_GFX_MISC
- anim_bgeffect $6, $0, $2, $0
- anim_obj $89, 80, 80, $0
- anim_obj $89, 80, 80, $d
- anim_obj $89, 80, 80, $1a
- anim_obj $89, 80, 80, $27
- anim_obj $89, 80, 80, $34
- anim_sound $0, SFX_PROTECT
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+ anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $0
+ anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $d
+ anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $1a
+ anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $27
+ anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $34
+ anim_sound 0, 0, SFX_PROTECT
anim_wait 96
anim_ret
; cb51e
BattleAnim_PainSplit: ; cb51e
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS
- anim_call BattleAnim_PainSplit_branch_cbcaf
- anim_bgeffect $25, $0, $1, $0
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_25, $0, $1, $0
anim_wait 4
- anim_sound $1, SFX_TACKLE
- anim_obj $4, 112, 48, $0
- anim_obj $4, 76, 96, $0
+ anim_sound 0, 1, SFX_TACKLE
+ anim_obj ANIM_OBJ_04, 14, 0, 6, 0, $0
+ anim_obj ANIM_OBJ_04, 9, 4, 12, 0, $0
anim_wait 8
- anim_call BattleAnim_PainSplit_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_wait 1
anim_ret
; cb53d
BattleAnim_SacredFire: ; cb53d
anim_1gfx ANIM_GFX_FIRE
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-BattleAnim_SacredFire_branch_cb549: ; cb549
- anim_sound $0, SFX_EMBER
- anim_obj $80, 48, 104, $0
+.loop
+ anim_sound 0, 0, SFX_EMBER
+ anim_obj ANIM_OBJ_80, 6, 0, 13, 0, $0
anim_wait 8
- anim_loop $8, BattleAnim_SacredFire_branch_cb549
+ anim_loop 8, .loop
anim_wait 96
- anim_call BattleAnim_SacredFire_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 4
- anim_sound $1, SFX_EMBER
- anim_obj $f, 136, 48, $1
- anim_obj $f, 136, 48, $4
- anim_obj $f, 136, 48, $5
+ anim_sound 0, 1, SFX_EMBER
+ anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $1
+ anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $4
+ anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $5
anim_wait 8
anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
anim_wait 4
- anim_incobj $9
+ anim_incobj 9
anim_wait 8
anim_ret
; cb57d
BattleAnim_Magnitude: ; cb57d
anim_1gfx ANIM_GFX_ROCKS
-BattleAnim_Magnitude_branch_cb57f: ; cb57f
- anim_bgeffect $1f, $e, $4, $0
- anim_sound $1, SFX_STRENGTH
- anim_obj $1e, 128, 64, $40
+.loop
+ anim_bgeffect ANIM_BG_1F, $e, $4, $0
+ anim_sound 0, 1, SFX_STRENGTH
+ anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40
anim_wait 2
- anim_obj $1e, 120, 68, $30
+ anim_obj ANIM_OBJ_1E, 15, 0, 8, 4, $30
anim_wait 2
- anim_obj $1e, 152, 68, $30
+ anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30
anim_wait 2
- anim_obj $1e, 144, 64, $40
+ anim_obj ANIM_OBJ_1E, -14, 0, 8, 0, $40
anim_wait 2
- anim_obj $1e, 136, 68, $30
+ anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30
anim_wait 2
- anim_jumpuntil BattleAnim_Magnitude_branch_cb57f
+ anim_jumpuntil .loop
anim_wait 96
anim_ret
; cb5aa
BattleAnim_Dynamicpunch: ; cb5aa
anim_2gfx ANIM_GFX_HIT, ANIM_GFX_EXPLOSION
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $a, 136, 56, $43
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43
anim_wait 16
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12
anim_call BattleAnim_Dynamicpunch_branch_cbb8f
@@ -4367,32 +4353,32 @@ BattleAnim_Dynamicpunch: ; cb5aa
BattleAnim_Megahorn: ; cb5c0
anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
- anim_bgeffect $1f, $40, $2, $0
+ anim_bgeffect ANIM_BG_1F, $40, $2, $0
anim_wait 48
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
- anim_obj $5f, 72, 80, $1
- anim_sound $1, SFX_HORN_ATTACK
+ anim_obj ANIM_OBJ_5F, 9, 0, 10, 0, $1
+ anim_sound 0, 1, SFX_HORN_ATTACK
anim_wait 16
- anim_obj $0, 136, 56, $0
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; cb5de
BattleAnim_Dragonbreath: ; cb5de
anim_1gfx ANIM_GFX_FIRE
- anim_sound $1a, SFX_EMBER
-BattleAnim_Dragonbreath_branch_cb5e3: ; cb5e3
- anim_obj $90, 64, 92, $4
+ anim_sound 6, 2, SFX_EMBER
+.loop
+ anim_obj ANIM_OBJ_90, 8, 0, 11, 4, $4
anim_wait 4
- anim_loop $a, BattleAnim_Dragonbreath_branch_cb5e3
+ anim_loop 10, .loop
anim_wait 64
anim_ret
; cb5ef
BattleAnim_BatonPass: ; cb5ef
anim_1gfx ANIM_GFX_MISC
- anim_obj $86, 44, 104, $20
- anim_sound $0, SFX_BATON_PASS
+ anim_obj ANIM_OBJ_86, 5, 4, 13, 0, $20
+ anim_sound 0, 0, SFX_BATON_PASS
anim_call BattleAnim_BatonPass_branch_c9486
anim_wait 64
anim_ret
@@ -4400,13 +4386,13 @@ BattleAnim_BatonPass: ; cb5ef
BattleAnim_Encore: ; cb5fe
anim_1gfx ANIM_GFX_OBJECTS
- anim_obj $99, 64, 80, $90
- anim_obj $99, 64, 80, $10
- anim_sound $0, SFX_ENCORE
+ anim_obj ANIM_OBJ_99, 8, 0, 10, 0, $90
+ anim_obj ANIM_OBJ_99, 8, 0, 10, 0, $10
+ anim_sound 0, 0, SFX_ENCORE
anim_wait 16
- anim_obj $9a, 64, 72, $2c
+ anim_obj ANIM_OBJ_9A, 8, 0, 9, 0, $2c
anim_wait 32
- anim_obj $9a, 64, 72, $34
+ anim_obj ANIM_OBJ_9A, 8, 0, 9, 0, $34
anim_wait 16
anim_ret
; cb61b
@@ -4414,8 +4400,8 @@ BattleAnim_Encore: ; cb5fe
BattleAnim_Pursuit: ; cb61b
anim_1gfx ANIM_GFX_HIT
anim_jumpif $1, BattleAnim_Pursuit_branch_cb62b
- anim_sound $1, SFX_COMET_PUNCH
- anim_obj $1, 136, 56, $0
+ anim_sound 0, 1, SFX_COMET_PUNCH
+ anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0
anim_wait 16
anim_ret
; cb62b
@@ -4423,20 +4409,20 @@ BattleAnim_Pursuit: ; cb61b
BattleAnim_Pursuit_branch_cb62b: ; cb62b
anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0
anim_wait 4
- anim_call BattleAnim_Pursuit_branch_cbcc2
- anim_obj $ad, 132, 64, $0
+ anim_call BattleAnim_FollowEnemyFeet_1
+ anim_obj ANIM_OBJ_AD, -16, 4, 8, 0, $0
anim_wait 64
- anim_obj $ad, 132, 64, $1
- anim_sound $1, SFX_BALL_POOF
+ anim_obj ANIM_OBJ_AD, -16, 4, 8, 0, $1
+ anim_sound 0, 1, SFX_BALL_POOF
anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0
anim_wait 64
- anim_incobj $3
+ anim_incobj 3
anim_wait 16
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $0, 120, 56, $0
- anim_bgeffect $2d, $0, $0, $0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_00, 15, 0, 7, 0, $0
+ anim_bgeffect ANIM_BG_2D, $0, $0, $0
anim_wait 16
- anim_call BattleAnim_Pursuit_branch_cbcd2
+ anim_call BattleAnim_ShowMon_1
anim_wait 1
anim_ret
; cb65e
@@ -4444,38 +4430,38 @@ BattleAnim_Pursuit_branch_cb62b: ; cb62b
BattleAnim_RapidSpin: ; cb65e
anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
anim_obp0 $e4
-BattleAnim_RapidSpin_branch_cb663: ; cb663
- anim_sound $0, SFX_MENU
- anim_obj $a8, 44, 112, $0
+.loop
+ anim_sound 0, 0, SFX_MENU
+ anim_obj ANIM_OBJ_A8, 5, 4, 14, 0, $0
anim_wait 2
- anim_loop $5, BattleAnim_RapidSpin_branch_cb663
+ anim_loop 5, .loop
anim_wait 24
- anim_call BattleAnim_RapidSpin_branch_cbcaf
- anim_bgeffect $25, $0, $1, $0
+ anim_call BattleAnim_FollowPlayerHead_0
+ anim_bgeffect ANIM_BG_25, $0, $1, $0
anim_wait 4
anim_resetobp0
- anim_sound $1, SFX_MEGA_KICK
- anim_obj $4, 136, 40, $0
+ anim_sound 0, 1, SFX_MEGA_KICK
+ anim_obj ANIM_OBJ_04, -15, 0, 5, 0, $0
anim_wait 8
anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
anim_wait 4
- anim_incobj $6
+ anim_incobj 6
anim_wait 1
anim_ret
; cb68e
BattleAnim_SweetScent: ; cb68e
anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC
- anim_sound $0, SFX_SWEET_SCENT
- anim_obj ANIM_OBJ_FLOWER, 64, 96, $2
+ anim_sound 0, 0, SFX_SWEET_SCENT
+ anim_obj ANIM_OBJ_FLOWER, 8, 0, 12, 0, $2
anim_wait 2
- anim_obj ANIM_OBJ_FLOWER, 64, 80, $2
+ anim_obj ANIM_OBJ_FLOWER, 8, 0, 10, 0, $2
anim_wait 96
anim_obp0 $54
- anim_sound $1, SFX_SWEET_SCENT_2
- anim_obj ANIM_OBJ_COTTON, 136, 40, $15
- anim_obj ANIM_OBJ_COTTON, 136, 40, $2a
- anim_obj ANIM_OBJ_COTTON, 136, 40, $3f
+ anim_sound 0, 1, SFX_SWEET_SCENT_2
+ anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $15
+ anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $2a
+ anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $3f
anim_wait 128
anim_ret
; cb6b6
@@ -4483,90 +4469,90 @@ BattleAnim_SweetScent: ; cb68e
BattleAnim_IronTail: ; cb6b6
anim_1gfx ANIM_GFX_REFLECT
anim_obp0 $0
- anim_sound $0, SFX_RAGE
- anim_call BattleAnim_IronTail_branch_cbca7
+ anim_sound 0, 0, SFX_RAGE
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_call BattleAnim_IronTail_branch_cbc43
anim_wait 4
anim_1gfx ANIM_GFX_HIT
anim_resetobp0
- anim_bgeffect $26, $0, $1, $0
+ anim_bgeffect ANIM_BG_26, $0, $1, $0
anim_wait 16
- anim_sound $1, SFX_MEGA_KICK
- anim_obj $0, 136, 48, $0
+ anim_sound 0, 1, SFX_MEGA_KICK
+ anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0
anim_wait 16
- anim_incbgeffect $26
- anim_call BattleAnim_IronTail_branch_cbcb7
+ anim_incbgeffect ANIM_BG_26
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cb6dc
BattleAnim_MetalClaw: ; cb6dc
anim_1gfx ANIM_GFX_REFLECT
anim_obp0 $0
- anim_sound $0, SFX_RAGE
- anim_call BattleAnim_MetalClaw_branch_cbca7
+ anim_sound 0, 0, SFX_RAGE
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_call BattleAnim_MetalClaw_branch_cbc43
- anim_call BattleAnim_MetalClaw_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_1gfx ANIM_GFX_CUT
anim_resetobp0
- anim_sound $1, SFX_SCRATCH
- anim_obj $37, 144, 48, $0
- anim_obj $37, 140, 44, $0
- anim_obj $37, 136, 40, $0
+ anim_sound 0, 1, SFX_SCRATCH
+ anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0
+ anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0
+ anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0
anim_wait 32
anim_ret
; cb703
BattleAnim_VitalThrow: ; cb703
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_VitalThrow_branch_cbca7
- anim_bgeffect $2f, $0, $1, $0
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_2F, $0, $1, $0
anim_wait 16
- anim_sound $0, SFX_MENU
- anim_obj $4, 64, 96, $0
+ anim_sound 0, 0, SFX_MENU
+ anim_obj ANIM_OBJ_04, 8, 0, 12, 0, $0
anim_wait 8
- anim_sound $0, SFX_MENU
- anim_obj $4, 56, 88, $0
+ anim_sound 0, 0, SFX_MENU
+ anim_obj ANIM_OBJ_04, 7, 0, 11, 0, $0
anim_wait 8
- anim_sound $0, SFX_MENU
- anim_obj $4, 68, 104, $0
+ anim_sound 0, 0, SFX_MENU
+ anim_obj ANIM_OBJ_04, 8, 4, 13, 0, $0
anim_wait 8
- anim_incbgeffect $2f
+ anim_incbgeffect ANIM_BG_2F
anim_wait 16
- anim_call BattleAnim_VitalThrow_branch_cbcb7
- anim_sound $1, SFX_MEGA_PUNCH
- anim_obj $3, 132, 56, $0
+ anim_call BattleAnim_ShowMon_0
+ anim_sound 0, 1, SFX_MEGA_PUNCH
+ anim_obj ANIM_OBJ_03, -16, 4, 7, 0, $0
anim_wait 16
anim_ret
; cb739
BattleAnim_MorningSun: ; cb739
anim_1gfx ANIM_GFX_SHINE
- anim_bgeffect $7, $0, $0, $0
- anim_sound $0, SFX_MORNING_SUN
-BattleAnim_MorningSun_branch_cb743: ; cb743
- anim_obj $9c, 16, 48, $88
+ anim_bgeffect ANIM_BG_07, $0, $0, $0
+ anim_sound 0, 0, SFX_MORNING_SUN
+.loop
+ anim_obj ANIM_OBJ_9C, 2, 0, 6, 0, $88
anim_wait 6
- anim_loop $5, BattleAnim_MorningSun_branch_cb743
+ anim_loop 5, .loop
anim_wait 32
- anim_jumpif $0, BattleAnim_MorningSun_branch_cb756
+ anim_jumpif $0, .zero
anim_call BattleAnim_MorningSun_branch_cbc6a
anim_ret
; cb756
-BattleAnim_MorningSun_branch_cb756: ; cb756
+.zero
anim_call BattleAnim_MorningSun_branch_cbc80
anim_ret
; cb75a
BattleAnim_Synthesis: ; cb75a
anim_1gfx ANIM_GFX_SHINE
- anim_call BattleAnim_Synthesis_branch_cbca7
- anim_bgeffect $18, $0, $1, $40
- anim_bgeffect $7, $0, $0, $0
- anim_sound $0, SFX_OUTRAGE
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_18, $0, $1, $40
+ anim_bgeffect ANIM_BG_07, $0, $0, $0
+ anim_sound 0, 0, SFX_OUTRAGE
anim_wait 72
- anim_incbgeffect $18
- anim_call BattleAnim_Synthesis_branch_cbcb7
+ anim_incbgeffect ANIM_BG_18
+ anim_call BattleAnim_ShowMon_0
anim_jumpif $1, BattleAnim_Synthesis_branch_cb77a
anim_call BattleAnim_Synthesis_branch_cbc6a
anim_ret
@@ -4581,15 +4567,15 @@ BattleAnim_Crunch: ; cb77e
anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
anim_bgp $1b
anim_obp0 $c0
- anim_bgeffect $1f, $20, $2, $0
- anim_obj $36, 136, 56, $a8
- anim_obj $36, 136, 56, $28
+ anim_bgeffect ANIM_BG_1F, $20, $2, $0
+ anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $a8
+ anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $28
anim_wait 8
- anim_sound $1, SFX_BITE
- anim_obj $0, 144, 48, $18
+ anim_sound 0, 1, SFX_BITE
+ anim_obj ANIM_OBJ_00, -14, 0, 6, 0, $18
anim_wait 16
- anim_sound $1, SFX_BITE
- anim_obj $0, 128, 64, $18
+ anim_sound 0, 1, SFX_BITE
+ anim_obj ANIM_OBJ_00, 16, 0, 8, 0, $18
anim_wait 8
anim_ret
; cb7a8
@@ -4597,14 +4583,14 @@ BattleAnim_Crunch: ; cb77e
BattleAnim_Moonlight: ; cb7a8
anim_1gfx ANIM_GFX_SHINE
anim_bgp $1b
- anim_bgeffect $7, $0, $0, $0
- anim_obj $9e, 0, 40, $0
- anim_obj $9e, 16, 56, $0
- anim_obj $9e, 32, 72, $0
- anim_obj $9e, 48, 88, $0
- anim_obj $9e, 64, 104, $0
+ anim_bgeffect ANIM_BG_07, $0, $0, $0
+ anim_obj ANIM_OBJ_9E, 0, 0, 5, 0, $0
+ anim_obj ANIM_OBJ_9E, 2, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_9E, 4, 0, 9, 0, $0
+ anim_obj ANIM_OBJ_9E, 6, 0, 11, 0, $0
+ anim_obj ANIM_OBJ_9E, 8, 0, 13, 0, $0
anim_wait 1
- anim_sound $0, SFX_MOONLIGHT
+ anim_sound 0, 0, SFX_MOONLIGHT
anim_wait 63
anim_jumpif $3, BattleAnim_Moonlight_branch_cb7d7
anim_call BattleAnim_Moonlight_branch_cbc6a
@@ -4618,48 +4604,48 @@ BattleAnim_Moonlight_branch_cb7d7: ; cb7d7
BattleAnim_HiddenPower: ; cb7db
anim_1gfx ANIM_GFX_CHARGE
- anim_call BattleAnim_HiddenPower_branch_cbca7
- anim_bgeffect $1a, $0, $1, $20
- anim_bgeffect $7, $0, $2, $0
- anim_obj $9f, 44, 88, $0
- anim_obj $9f, 44, 88, $8
- anim_obj $9f, 44, 88, $10
- anim_obj $9f, 44, 88, $18
- anim_obj $9f, 44, 88, $20
- anim_obj $9f, 44, 88, $28
- anim_obj $9f, 44, 88, $30
- anim_obj $9f, 44, 88, $38
-BattleAnim_HiddenPower_branch_cb812: ; cb812
- anim_sound $0, SFX_SWORDS_DANCE
- anim_wait 8
- anim_loop $c, BattleAnim_HiddenPower_branch_cb812
- anim_incbgeffect $1a
- anim_call BattleAnim_HiddenPower_branch_cbcb7
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1A, $0, $1, $20
+ anim_bgeffect ANIM_BG_07, $0, $2, $0
+ anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $0
+ anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $8
+ anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $10
+ anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $18
+ anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $20
+ anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $28
+ anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $30
+ anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $38
+.loop
+ anim_sound 0, 0, SFX_SWORDS_DANCE
+ anim_wait 8
+ anim_loop 12, .loop
+ anim_incbgeffect ANIM_BG_1A
+ anim_call BattleAnim_ShowMon_0
anim_wait 1
- anim_incobj $2
- anim_incobj $3
- anim_incobj $4
- anim_incobj $5
- anim_incobj $6
- anim_incobj $7
- anim_incobj $8
- anim_incobj $9
+ anim_incobj 2
+ anim_incobj 3
+ anim_incobj 4
+ anim_incobj 5
+ anim_incobj 6
+ anim_incobj 7
+ anim_incobj 8
+ anim_incobj 9
anim_wait 16
anim_1gfx ANIM_GFX_HIT
- anim_obj $0, 136, 56, $0
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 32
anim_ret
; cb83a
BattleAnim_CrossChop: ; cb83a
anim_1gfx ANIM_GFX_CUT
- anim_sound $1, SFX_CUT
- anim_obj $a0, 152, 40, $0
- anim_obj $a1, 120, 72, $0
+ anim_sound 0, 1, SFX_CUT
+ anim_obj ANIM_OBJ_A0, -13, 0, 5, 0, $0
+ anim_obj ANIM_OBJ_A1, 15, 0, 9, 0, $0
anim_wait 8
- anim_bgeffect $1f, $58, $2, $0
+ anim_bgeffect ANIM_BG_1F, $58, $2, $0
anim_wait 92
- anim_sound $1, SFX_VICEGRIP
+ anim_sound 0, 1, SFX_VICEGRIP
anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10
anim_wait 16
anim_ret
@@ -4667,44 +4653,44 @@ BattleAnim_CrossChop: ; cb83a
BattleAnim_Twister: ; cb85a
anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
-BattleAnim_Twister_branch_cb85d: ; cb85d
- anim_sound $0, SFX_RAZOR_WIND
- anim_obj ANIM_OBJ_GUST, 64, 112, $0
+.loop1
+ anim_sound 0, 0, SFX_RAZOR_WIND
+ anim_obj ANIM_OBJ_GUST, 8, 0, 14, 0, $0
anim_wait 6
- anim_loop $9, BattleAnim_Twister_branch_cb85d
-BattleAnim_Twister_branch_cb86a: ; cb86a
- anim_sound $0, SFX_RAZOR_WIND
- anim_wait 8
- anim_loop $8, BattleAnim_Twister_branch_cb86a
- anim_incobj $1
- anim_incobj $2
- anim_incobj $3
- anim_incobj $4
- anim_incobj $5
- anim_incobj $6
- anim_incobj $7
- anim_incobj $8
- anim_incobj $9
+ anim_loop 9, .loop1
+.loop2
+ anim_sound 0, 0, SFX_RAZOR_WIND
+ anim_wait 8
+ anim_loop 8, .loop2
+ anim_incobj 1
+ anim_incobj 2
+ anim_incobj 3
+ anim_incobj 4
+ anim_incobj 5
+ anim_incobj 6
+ anim_incobj 7
+ anim_incobj 8
+ anim_incobj 9
anim_wait 64
- anim_obj $1, 144, 64, $18
-BattleAnim_Twister_branch_cb88a: ; cb88a
- anim_sound $1, SFX_RAZOR_WIND
- anim_wait 8
- anim_loop $4, BattleAnim_Twister_branch_cb88a
- anim_obj $1, 128, 32, $18
-BattleAnim_Twister_branch_cb897: ; cb897
- anim_sound $1, SFX_RAZOR_WIND
- anim_wait 8
- anim_loop $4, BattleAnim_Twister_branch_cb897
- anim_incobj $1
- anim_incobj $2
- anim_incobj $3
- anim_incobj $4
- anim_incobj $5
- anim_incobj $6
- anim_incobj $7
- anim_incobj $8
- anim_incobj $9
+ anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $18
+.loop3
+ anim_sound 0, 1, SFX_RAZOR_WIND
+ anim_wait 8
+ anim_loop 4, .loop3
+ anim_obj ANIM_OBJ_01, 16, 0, 4, 0, $18
+.loop4
+ anim_sound 0, 1, SFX_RAZOR_WIND
+ anim_wait 8
+ anim_loop 4, .loop4
+ anim_incobj 1
+ anim_incobj 2
+ anim_incobj 3
+ anim_incobj 4
+ anim_incobj 5
+ anim_incobj 6
+ anim_incobj 7
+ anim_incobj 8
+ anim_incobj 9
anim_wait 32
anim_ret
; cb8b3
@@ -4713,12 +4699,12 @@ BattleAnim_RainDance: ; cb8b3
anim_1gfx ANIM_GFX_WATER
anim_bgp $f8
anim_obp0 $7c
- anim_sound $1, SFX_RAIN_DANCE
- anim_obj $af, 88, 0, $0
+ anim_sound 0, 1, SFX_RAIN_DANCE
+ anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $0
anim_wait 8
- anim_obj $af, 88, 0, $1
+ anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $1
anim_wait 8
- anim_obj $af, 88, 0, $2
+ anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2
anim_wait 128
anim_ret
; cb8cf
@@ -4726,47 +4712,47 @@ BattleAnim_RainDance: ; cb8b3
BattleAnim_SunnyDay: ; cb8cf
anim_1gfx ANIM_GFX_WATER
anim_bgp $90
- anim_sound $1, SFX_MORNING_SUN
- anim_obj $af, 88, 0, $2
+ anim_sound 0, 1, SFX_MORNING_SUN
+ anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2
anim_wait 8
- anim_obj $af, 88, 0, $2
+ anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2
anim_wait 8
- anim_obj $af, 88, 0, $2
+ anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2
anim_wait 128
anim_ret
; cb8e9
BattleAnim_MirrorCoat: ; cb8e9
anim_2gfx ANIM_GFX_REFLECT, ANIM_GFX_SPEED
- anim_bgeffect $6, $0, $2, $0
-BattleAnim_MirrorCoat_branch_cb8f1: ; cb8f1
- anim_sound $0, SFX_SHINE
- anim_obj $50, 72, 80, $0
- anim_obj $ae, 64, 72, $4
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
+.loop
+ anim_sound 0, 0, SFX_SHINE
+ anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0
+ anim_obj ANIM_OBJ_AE, 8, 0, 9, 0, $4
anim_wait 8
- anim_obj $ae, 64, 88, $4
+ anim_obj ANIM_OBJ_AE, 8, 0, 11, 0, $4
anim_wait 8
- anim_obj $ae, 64, 80, $4
+ anim_obj ANIM_OBJ_AE, 8, 0, 10, 0, $4
anim_wait 8
- anim_obj $ae, 64, 96, $4
+ anim_obj ANIM_OBJ_AE, 8, 0, 12, 0, $4
anim_wait 8
- anim_loop $3, BattleAnim_MirrorCoat_branch_cb8f1
+ anim_loop 3, .loop
anim_wait 32
anim_ret
; cb917
BattleAnim_PsychUp: ; cb917
anim_1gfx ANIM_GFX_STATUS
- anim_call BattleAnim_PsychUp_branch_cbca7
- anim_bgeffect $1a, $0, $1, $20
- anim_sound $0, SFX_PSYBEAM
- anim_obj $b1, 44, 88, $0
- anim_obj $b1, 44, 88, $10
- anim_obj $b1, 44, 88, $20
- anim_obj $b1, 44, 88, $30
+ anim_call BattleAnim_FollowEnemyFeet_0
+ anim_bgeffect ANIM_BG_1A, $0, $1, $20
+ anim_sound 0, 0, SFX_PSYBEAM
+ anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $0
+ anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $10
+ anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $20
+ anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $30
anim_wait 64
- anim_incbgeffect $1a
- anim_call BattleAnim_PsychUp_branch_cbcb7
+ anim_incbgeffect ANIM_BG_1A
+ anim_call BattleAnim_ShowMon_0
anim_wait 16
anim_ret
; cb940
@@ -4774,16 +4760,16 @@ BattleAnim_PsychUp: ; cb917
BattleAnim_Extremespeed: ; cb940
anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_CUT
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
- anim_sound $0, SFX_MENU
- anim_obj $77, 24, 88, $2
- anim_obj $77, 32, 88, $1
- anim_obj $77, 40, 88, $0
- anim_obj $77, 48, 88, $80
- anim_obj $77, 56, 88, $81
- anim_obj $77, 64, 88, $82
+ anim_sound 0, 0, SFX_MENU
+ anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2
+ anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1
+ anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0
+ anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80
+ anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81
+ anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82
anim_wait 12
- anim_sound $1, SFX_CUT
- anim_obj $3a, 152, 40, $0
+ anim_sound 0, 1, SFX_CUT
+ anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0
anim_wait 32
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
anim_wait 16
@@ -4792,29 +4778,29 @@ BattleAnim_Extremespeed: ; cb940
BattleAnim_Ancientpower: ; cb97a
anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
- anim_sound $0, SFX_SPARK
- anim_obj $b2, 64, 108, $20
+ anim_sound 0, 0, SFX_SPARK
+ anim_obj ANIM_OBJ_B2, 8, 0, 13, 4, $20
anim_wait 8
- anim_sound $0, SFX_SPARK
- anim_obj $b2, 75, 102, $20
+ anim_sound 0, 0, SFX_SPARK
+ anim_obj ANIM_OBJ_B2, 9, 3, 12, 6, $20
anim_wait 8
- anim_sound $0, SFX_SPARK
- anim_obj $b2, 85, 97, $20
+ anim_sound 0, 0, SFX_SPARK
+ anim_obj ANIM_OBJ_B2, 10, 5, 12, 1, $20
anim_wait 8
- anim_sound $0, SFX_SPARK
- anim_obj $b2, 96, 92, $20
+ anim_sound 0, 0, SFX_SPARK
+ anim_obj ANIM_OBJ_B2, 12, 0, 11, 4, $20
anim_wait 8
- anim_sound $1, SFX_SPARK
- anim_obj $b2, 106, 87, $20
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_B2, 13, 2, 10, 7, $20
anim_wait 8
- anim_sound $1, SFX_SPARK
- anim_obj $b2, 116, 82, $20
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_B2, 14, 4, 10, 2, $20
anim_wait 8
- anim_sound $1, SFX_SPARK
- anim_obj $b2, 126, 77, $20
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_B2, 15, 6, 9, 5, $20
anim_wait 8
- anim_sound $1, SFX_SPARK
- anim_obj $0, 136, 56, $0
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0
anim_wait 6
anim_ret
; cb9c6
@@ -4822,55 +4808,55 @@ BattleAnim_Ancientpower: ; cb97a
BattleAnim_ShadowBall: ; cb9c6
anim_2gfx ANIM_GFX_EGG, ANIM_GFX_SMOKE
anim_bgp $1b
- anim_sound $1a, SFX_SLUDGE_BOMB
- anim_obj $b4, 64, 92, $2
+ anim_sound 6, 2, SFX_SLUDGE_BOMB
+ anim_obj ANIM_OBJ_B4, 8, 0, 11, 4, $2
anim_wait 32
- anim_obj $1c, 132, 56, $10
+ anim_obj ANIM_OBJ_1C, -16, 4, 7, 0, $10
anim_wait 24
anim_ret
; cb9db
BattleAnim_FutureSight: ; cb9db
anim_1gfx ANIM_GFX_WIND
- anim_bgeffect $6, $0, $2, $0
+ anim_bgeffect ANIM_BG_06, $0, $2, $0
anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
- anim_obj $7d, 8, 24, $10
- anim_obj $7d, 8, 48, $2
- anim_obj $7d, 8, 88, $8
+ anim_obj ANIM_OBJ_7D, 1, 0, 3, 0, $10
+ anim_obj ANIM_OBJ_7D, 1, 0, 6, 0, $2
+ anim_obj ANIM_OBJ_7D, 1, 0, 11, 0, $8
anim_wait 4
- anim_obj $7d, 8, 32, $6
- anim_obj $7d, 8, 56, $c
- anim_obj $7d, 8, 80, $4
- anim_obj $7d, 8, 104, $e
-BattleAnim_FutureSight_branch_cba10: ; cba10
- anim_sound $0, SFX_THROW_BALL
- anim_wait 16
- anim_loop $4, BattleAnim_FutureSight_branch_cba10
+ anim_obj ANIM_OBJ_7D, 1, 0, 4, 0, $6
+ anim_obj ANIM_OBJ_7D, 1, 0, 7, 0, $c
+ anim_obj ANIM_OBJ_7D, 1, 0, 10, 0, $4
+ anim_obj ANIM_OBJ_7D, 1, 0, 13, 0, $e
+.loop
+ anim_sound 0, 0, SFX_THROW_BALL
+ anim_wait 16
+ anim_loop 4, .loop
anim_incbgeffect ANIM_BG_PSYCHIC
anim_ret
; cba1b
BattleAnim_RockSmash: ; cba1b
anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
- anim_sound $1, SFX_SPARK
- anim_obj $1, 128, 56, $0
- anim_sound $1, SFX_SPARK
- anim_obj $b5, 128, 64, $28
- anim_obj $b5, 128, 64, $5c
- anim_sound $1, SFX_SPARK
- anim_obj $b5, 128, 64, $10
- anim_obj $b5, 128, 64, $e8
- anim_sound $1, SFX_SPARK
- anim_obj $b5, 128, 64, $9c
- anim_obj $b5, 128, 64, $d0
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $28
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $5c
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $10
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $e8
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $9c
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $d0
anim_wait 6
- anim_sound $1, SFX_SPARK
- anim_obj $b5, 128, 64, $1c
- anim_obj $b5, 128, 64, $50
- anim_sound $1, SFX_SPARK
- anim_obj $b5, 128, 64, $dc
- anim_obj $b5, 128, 64, $90
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $1c
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $50
+ anim_sound 0, 1, SFX_SPARK
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $dc
+ anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $90
anim_wait 32
anim_ret
; cba6a
@@ -4878,12 +4864,12 @@ BattleAnim_RockSmash: ; cba1b
BattleAnim_Whirlpool: ; cba6a
anim_1gfx ANIM_GFX_WIND
anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0
- anim_sound $1, SFX_SURF
+ anim_sound 0, 1, SFX_SURF
anim_wait 16
-BattleAnim_Whirlpool_branch_cba75: ; cba75
- anim_obj ANIM_OBJ_GUST, 132, 72, $0
+.loop
+ anim_obj ANIM_OBJ_GUST, -16, 4, 9, 0, $0
anim_wait 6
- anim_loop $9, BattleAnim_Whirlpool_branch_cba75
+ anim_loop 9, .loop
anim_wait 64
anim_incbgeffect ANIM_BG_WHIRLPOOL
anim_wait 1
@@ -4891,104 +4877,104 @@ BattleAnim_Whirlpool_branch_cba75: ; cba75
; cba84
BattleAnim_BeatUp: ; cba84
- anim_jumpif $0, BattleAnim_BeatUp_branch_cba9b
- anim_sound $0, SFX_BALL_POOF
+ anim_jumpif $0, .current_mon
+ anim_sound 0, 0, SFX_BALL_POOF
anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0
anim_wait 16
anim_beatup
- anim_sound $0, SFX_BALL_POOF
+ anim_sound 0, 0, SFX_BALL_POOF
anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
anim_wait 16
-BattleAnim_BeatUp_branch_cba9b: ; cba9b
+.current_mon
anim_1gfx ANIM_GFX_HIT
- anim_call BattleAnim_BeatUp_branch_cbca7
+ anim_call BattleAnim_FollowEnemyFeet_0
anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
anim_wait 4
- anim_sound $1, SFX_BEAT_UP
- anim_obj $0, 136, 48, $0
+ anim_sound 0, 1, SFX_BEAT_UP
+ anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0
anim_wait 8
- anim_call BattleAnim_BeatUp_branch_cbcb7
+ anim_call BattleAnim_ShowMon_0
anim_ret
; cbab3
BattleAnim_DreamEater_branch_cbab3: ; cbab3
BattleAnim_GigaDrain_branch_cbab3: ; cbab3
BattleAnim_LeechLife_branch_cbab3: ; cbab3
- anim_obj $71, 132, 44, $0
- anim_obj $71, 132, 44, $8
- anim_obj $71, 132, 44, $10
- anim_obj $71, 132, 44, $18
- anim_obj $71, 132, 44, $20
- anim_obj $71, 132, 44, $28
- anim_obj $71, 132, 44, $30
- anim_obj $71, 132, 44, $38
+ anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $0
+ anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $8
+ anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $10
+ anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $18
+ anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $20
+ anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $28
+ anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $30
+ anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $38
anim_ret
; cbadc
BattleAnim_Glare_branch_cbadc: ; cbadc
BattleAnim_Leer_branch_cbadc: ; cbadc
BattleAnim_ScaryFace_branch_cbadc: ; cbadc
- anim_sound $1a, SFX_LEER
- anim_obj $4e, 72, 84, $0
- anim_obj $4e, 64, 80, $0
- anim_obj $4e, 88, 76, $0
- anim_obj $4e, 80, 72, $0
- anim_obj $4e, 104, 68, $0
- anim_obj $4e, 96, 64, $0
- anim_obj $4e, 120, 60, $0
- anim_obj $4e, 112, 56, $0
- anim_obj $4f, 130, 54, $0
- anim_obj $4f, 122, 50, $0
+ anim_sound 6, 2, SFX_LEER
+ anim_obj ANIM_OBJ_4E, 9, 0, 10, 4, $0
+ anim_obj ANIM_OBJ_4E, 8, 0, 10, 0, $0
+ anim_obj ANIM_OBJ_4E, 11, 0, 9, 4, $0
+ anim_obj ANIM_OBJ_4E, 10, 0, 9, 0, $0
+ anim_obj ANIM_OBJ_4E, 13, 0, 8, 4, $0
+ anim_obj ANIM_OBJ_4E, 12, 0, 8, 0, $0
+ anim_obj ANIM_OBJ_4E, 15, 0, 7, 4, $0
+ anim_obj ANIM_OBJ_4E, 14, 0, 7, 0, $0
+ anim_obj ANIM_OBJ_4F, -16, 2, 6, 6, $0
+ anim_obj ANIM_OBJ_4F, 15, 2, 6, 2, $0
anim_ret
; cbb12
BattleAnim_Fly_branch_cbb12: ; cbb12
BattleAnim_Teleport_branch_cbb12: ; cbb12
- anim_sound $0, SFX_WARP_TO
- anim_obj $44, 44, 108, $0
- anim_obj $44, 44, 100, $0
- anim_obj $44, 44, 92, $0
- anim_obj $44, 44, 84, $0
- anim_obj $44, 44, 76, $0
- anim_obj $44, 44, 68, $0
- anim_obj $44, 44, 60, $0
+ anim_sound 0, 0, SFX_WARP_TO
+ anim_obj ANIM_OBJ_44, 5, 4, 13, 4, $0
+ anim_obj ANIM_OBJ_44, 5, 4, 12, 4, $0
+ anim_obj ANIM_OBJ_44, 5, 4, 11, 4, $0
+ anim_obj ANIM_OBJ_44, 5, 4, 10, 4, $0
+ anim_obj ANIM_OBJ_44, 5, 4, 9, 4, $0
+ anim_obj ANIM_OBJ_44, 5, 4, 8, 4, $0
+ anim_obj ANIM_OBJ_44, 5, 4, 7, 4, $0
anim_ret
; cbb39
BattleAnim_AuroraBeam_branch_cbb39: ; cbb39
BattleAnim_HyperBeam_branch_cbb39: ; cbb39
BattleAnim_Solarbeam_branch_cbb39: ; cbb39
- anim_sound $0, SFX_HYPER_BEAM
- anim_obj $27, 64, 92, $0
+ anim_sound 0, 0, SFX_HYPER_BEAM
+ anim_obj ANIM_OBJ_27, 8, 0, 11, 4, $0
anim_wait 4
- anim_sound $0, SFX_HYPER_BEAM
- anim_obj $27, 80, 84, $0
+ anim_sound 0, 0, SFX_HYPER_BEAM
+ anim_obj ANIM_OBJ_27, 10, 0, 10, 4, $0
anim_wait 4
- anim_sound $1, SFX_HYPER_BEAM
- anim_obj $27, 96, 76, $0
+ anim_sound 0, 1, SFX_HYPER_BEAM
+ anim_obj ANIM_OBJ_27, 12, 0, 9, 4, $0
anim_wait 4
- anim_sound $1, SFX_HYPER_BEAM
- anim_obj $27, 112, 68, $0
- anim_obj $28, 126, 62, $0
+ anim_sound 0, 1, SFX_HYPER_BEAM
+ anim_obj ANIM_OBJ_27, 14, 0, 8, 4, $0
+ anim_obj ANIM_OBJ_28, 15, 6, 7, 6, $0
anim_ret
; cbb62
BattleAnim_Explosion_branch_cbb62: ; cbb62
BattleAnim_Selfdestruct_branch_cbb62: ; cbb62
- anim_sound $0, SFX_EGG_BOMB
- anim_obj $17, 24, 64, $0
+ anim_sound 0, 0, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, 3, 0, 8, 0, $0
anim_wait 5
- anim_sound $0, SFX_EGG_BOMB
- anim_obj $17, 56, 104, $0
+ anim_sound 0, 0, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, 7, 0, 13, 0, $0
anim_wait 5
- anim_sound $0, SFX_EGG_BOMB
- anim_obj $17, 24, 104, $0
+ anim_sound 0, 0, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, 3, 0, 13, 0, $0
anim_wait 5
- anim_sound $0, SFX_EGG_BOMB
- anim_obj $17, 56, 64, $0
+ anim_sound 0, 0, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, 7, 0, 8, 0, $0
anim_wait 5
- anim_sound $0, SFX_EGG_BOMB
- anim_obj $17, 40, 84, $0
+ anim_sound 0, 0, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, 5, 0, 10, 4, $0
anim_ret
; cbb8f
@@ -4996,89 +4982,90 @@ BattleAnim_Dynamicpunch_branch_cbb8f: ; cbb8f
BattleAnim_Explosion_branch_cbb8f: ; cbb8f
BattleAnim_Present_branch_cbb8f: ; cbb8f
BattleAnim_Selfdestruct_branch_cbb8f: ; cbb8f
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $17, 148, 32, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, -14, 4, 4, 0, $0
anim_wait 5
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $17, 116, 72, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, 14, 4, 9, 0, $0
anim_wait 5
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $17, 148, 72, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, -14, 4, 9, 0, $0
anim_wait 5
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $17, 116, 32, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, 14, 4, 4, 0, $0
anim_wait 5
- anim_sound $1, SFX_EGG_BOMB
- anim_obj $17, 132, 52, $0
+ anim_sound 0, 1, SFX_EGG_BOMB
+ anim_obj ANIM_OBJ_17, -16, 4, 6, 4, $0
anim_ret
; cbbbc
BattleAnim_Growl_branch_cbbbc: ; cbbbc
BattleAnim_Roar_branch_cbbbc: ; cbbbc
BattleAnim_Snore_branch_cbbbc: ; cbbbc
- anim_obj $4b, 64, 76, $0
- anim_obj $4b, 64, 88, $1
- anim_obj $4b, 64, 100, $2
+ anim_obj ANIM_OBJ_4B, 8, 0, 9, 4, $0
+ anim_obj ANIM_OBJ_4B, 8, 0, 11, 0, $1
+ anim_obj ANIM_OBJ_4B, 8, 0, 12, 4, $2
anim_ret
; cbbcc
BattleAnim_FirePunch_branch_cbbcc: ; cbbcc
BattleAnim_TriAttack_branch_cbbcc: ; cbbcc
- anim_sound $1, SFX_EMBER
-BattleAnim_FirePunch_branch_cbbcf: ; cbbcf
-BattleAnim_TriAttack_branch_cbbcf: ; cbbcf
- anim_obj $10, 136, 56, $10
- anim_obj $10, 136, 56, $90
+ anim_sound 0, 1, SFX_EMBER
+.loop
+ anim_obj ANIM_OBJ_BURNED, -15, 0, 7, 0, $10
+ anim_obj ANIM_OBJ_BURNED, -15, 0, 7, 0, $90
anim_wait 4
- anim_loop $4, BattleAnim_FirePunch_branch_cbbcf
+ anim_loop 4, .loop
anim_ret
; cbbdf
BattleAnim_IcePunch_branch_cbbdf: ; cbbdf
BattleAnim_PowderSnow_branch_cbbdf: ; cbbdf
BattleAnim_TriAttack_branch_cbbdf: ; cbbdf
- anim_sound $1, SFX_SHINE
- anim_obj $12, 128, 42, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_12, 16, 0, 5, 2, $0
anim_wait 6
- anim_sound $1, SFX_SHINE
- anim_obj $12, 144, 70, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_12, -14, 0, 8, 6, $0
anim_wait 6
- anim_sound $1, SFX_SHINE
- anim_obj $12, 120, 56, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_12, 15, 0, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_SHINE
- anim_obj $12, 152, 56, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_12, -13, 0, 7, 0, $0
anim_wait 6
- anim_sound $1, SFX_SHINE
- anim_obj $12, 144, 42, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_12, -14, 0, 5, 2, $0
anim_wait 6
- anim_sound $1, SFX_SHINE
- anim_obj $12, 128, 70, $0
+ anim_sound 0, 1, SFX_SHINE
+ anim_obj ANIM_OBJ_12, 16, 0, 8, 6, $0
anim_ret
; cbc15
BattleAnim_SludgeBomb_branch_cbc15: ; cbc15
BattleAnim_Sludge_branch_cbc15: ; cbc15
BattleAnim_Toxic_branch_cbc15: ; cbc15
- anim_sound $1, SFX_UNKNOWN_7F
- anim_obj $1a, 132, 72, $0
+.loop
+ anim_sound 0, 1, SFX_UNKNOWN_7F
+ anim_obj ANIM_OBJ_1A, -16, 4, 9, 0, $0
anim_wait 8
- anim_sound $1, SFX_UNKNOWN_7F
- anim_obj $1a, 116, 72, $0
+ anim_sound 0, 1, SFX_UNKNOWN_7F
+ anim_obj ANIM_OBJ_1A, 14, 4, 9, 0, $0
anim_wait 8
- anim_sound $1, SFX_UNKNOWN_7F
- anim_obj $1a, 148, 72, $0
+ anim_sound 0, 1, SFX_UNKNOWN_7F
+ anim_obj ANIM_OBJ_1A, -14, 4, 9, 0, $0
anim_wait 8
- anim_loop $5, BattleAnim_SludgeBomb_branch_cbc15
+ anim_loop 5, .loop
anim_ret
; cbc35
BattleAnim_Acid_branch_cbc35: ; cbc35
BattleAnim_Toxic_branch_cbc35: ; cbc35
- anim_sound $1a, SFX_BUBBLEBEAM
- anim_obj $19, 64, 92, $10
+.loop
+ anim_sound 6, 2, SFX_BUBBLEBEAM
+ anim_obj ANIM_OBJ_19, 8, 0, 11, 4, $10
anim_wait 5
- anim_loop $8, BattleAnim_Acid_branch_cbc35
+ anim_loop 8, .loop
anim_ret
; cbc43
@@ -5086,23 +5073,24 @@ BattleAnim_Harden_branch_cbc43: ; cbc43
BattleAnim_IronTail_branch_cbc43: ; cbc43
BattleAnim_MetalClaw_branch_cbc43: ; cbc43
BattleAnim_SteelWing_branch_cbc43: ; cbc43
- anim_sound $0, SFX_SHINE
- anim_bgeffect $17, $0, $1, $40
+ anim_sound 0, 0, SFX_SHINE
+ anim_bgeffect ANIM_BG_17, $0, $1, $40
anim_wait 8
- anim_obj $51, 48, 84, $0
+ anim_obj ANIM_OBJ_51, 6, 0, 10, 4, $0
anim_wait 32
- anim_obj $51, 48, 84, $0
+ anim_obj ANIM_OBJ_51, 6, 0, 10, 4, $0
anim_wait 64
- anim_incbgeffect $17
+ anim_incbgeffect ANIM_BG_17
anim_ret
; cbc5b
BattleAnim_MudSlap_branch_cbc5b: ; cbc5b
BattleAnim_SandAttack_branch_cbc5b: ; cbc5b
- anim_sound $1a, SFX_MENU
- anim_obj $58, 64, 92, $4
+.loop
+ anim_sound 6, 2, SFX_MENU
+ anim_obj ANIM_OBJ_58, 8, 0, 11, 4, $4
anim_wait 4
- anim_loop $8, BattleAnim_MudSlap_branch_cbc5b
+ anim_loop 8, .loop
anim_wait 32
anim_ret
; cbc6a
@@ -5110,12 +5098,12 @@ BattleAnim_SandAttack_branch_cbc5b: ; cbc5b
BattleAnim_Moonlight_branch_cbc6a: ; cbc6a
BattleAnim_MorningSun_branch_cbc6a: ; cbc6a
BattleAnim_Synthesis_branch_cbc6a: ; cbc6a
- anim_sound $0, SFX_METRONOME
- anim_obj $9d, 44, 64, $0
+ anim_sound 0, 0, SFX_METRONOME
+ anim_obj ANIM_OBJ_9D, 5, 4, 8, 0, $0
anim_wait 5
- anim_obj $9d, 24, 96, $0
+ anim_obj ANIM_OBJ_9D, 3, 0, 12, 0, $0
anim_wait 5
- anim_obj $9d, 56, 104, $0
+ anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0
anim_wait 21
anim_ret
; cbc80
@@ -5123,189 +5111,65 @@ BattleAnim_Synthesis_branch_cbc6a: ; cbc6a
BattleAnim_Moonlight_branch_cbc80: ; cbc80
BattleAnim_MorningSun_branch_cbc80: ; cbc80
BattleAnim_Synthesis_branch_cbc80: ; cbc80
- anim_sound $0, SFX_METRONOME
-BattleAnim_Moonlight_branch_cbc83: ; cbc83
-BattleAnim_MorningSun_branch_cbc83: ; cbc83
-BattleAnim_Synthesis_branch_cbc83: ; cbc83
- anim_obj $9d, 24, 64, $0
+ anim_sound 0, 0, SFX_METRONOME
+.loop
+ anim_obj ANIM_OBJ_9D, 3, 0, 8, 0, $0
anim_wait 5
- anim_obj $9d, 56, 104, $0
+ anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0
anim_wait 5
- anim_obj $9d, 24, 104, $0
+ anim_obj ANIM_OBJ_9D, 3, 0, 13, 0, $0
anim_wait 5
- anim_obj $9d, 56, 64, $0
+ anim_obj ANIM_OBJ_9D, 7, 0, 8, 0, $0
anim_wait 5
- anim_obj $9d, 40, 84, $0
+ anim_obj ANIM_OBJ_9D, 5, 0, 10, 4, $0
anim_wait 5
- anim_loop $2, BattleAnim_Moonlight_branch_cbc83
+ anim_loop 2, .loop
anim_wait 16
anim_ret
; cbca7
-BattleAnim_Agility_branch_cbca7: ; cbca7
-BattleAnim_BeatUp_branch_cbca7: ; cbca7
-BattleAnim_Bide_branch_cbca7: ; cbca7
-BattleAnim_Charm_branch_cbca7: ; cbca7
-BattleAnim_Curse_branch_cbca7: ; cbca7
-BattleAnim_DefenseCurl_branch_cbca7: ; cbca7
-BattleAnim_DoubleEdge_branch_cbca7: ; cbca7
-BattleAnim_Endure_branch_cbca7: ; cbca7
-BattleAnim_FaintAttack_branch_cbca7: ; cbca7
-BattleAnim_Flail_branch_cbca7: ; cbca7
-BattleAnim_FlameWheel_branch_cbca7: ; cbca7
-BattleAnim_FocusEnergy_branch_cbca7: ; cbca7
-BattleAnim_Frustration_branch_cbca7: ; cbca7
-BattleAnim_GigaDrain_branch_cbca7: ; cbca7
-BattleAnim_Harden_branch_cbca7: ; cbca7
-BattleAnim_Headbutt_branch_cbca7: ; cbca7
-BattleAnim_HiddenPower_branch_cbca7: ; cbca7
-BattleAnim_IronTail_branch_cbca7: ; cbca7
-BattleAnim_Meditate_branch_cbca7: ; cbca7
-BattleAnim_MegaDrain_branch_cbca7: ; cbca7
-BattleAnim_MetalClaw_branch_cbca7: ; cbca7
-BattleAnim_MilkDrink_branch_cbca7: ; cbca7
-BattleAnim_Outrage_branch_cbca7: ; cbca7
-BattleAnim_PsychUp_branch_cbca7: ; cbca7
-BattleAnim_Rage_branch_cbca7: ; cbca7
-BattleAnim_RazorWind_branch_cbca7: ; cbca7
-BattleAnim_Recover_branch_cbca7: ; cbca7
-BattleAnim_SacredFire_branch_cbca7: ; cbca7
-BattleAnim_SendOutMon_branch_cbca7: ; cbca7
-BattleAnim_Sharpen_branch_cbca7: ; cbca7
-BattleAnim_Sketch_branch_cbca7: ; cbca7
-BattleAnim_SkullBash_branch_cbca7: ; cbca7
-BattleAnim_SkyAttack_branch_cbca7: ; cbca7
-BattleAnim_Softboiled_branch_cbca7: ; cbca7
-BattleAnim_Spark_branch_cbca7: ; cbca7
-BattleAnim_SteelWing_branch_cbca7: ; cbca7
-BattleAnim_Synthesis_branch_cbca7: ; cbca7
-BattleAnim_TakeDown_branch_cbca7: ; cbca7
-BattleAnim_Teleport_branch_cbca7: ; cbca7
-BattleAnim_Thief_branch_cbca7: ; cbca7
-BattleAnim_VitalThrow_branch_cbca7: ; cbca7
+BattleAnim_FollowEnemyFeet_0: ; cbca7
anim_enemyfeetobj
anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $0, $0
anim_wait 6
anim_ret
; cbcaf
-BattleAnim_AcidArmor_branch_cbcaf: ; cbcaf
-BattleAnim_BodySlam_branch_cbcaf: ; cbcaf
-BattleAnim_Dig_branch_cbcaf: ; cbcaf
-BattleAnim_DoubleTeam_branch_cbcaf: ; cbcaf
-BattleAnim_Minimize_branch_cbcaf: ; cbcaf
-BattleAnim_PainSplit_branch_cbcaf: ; cbcaf
-BattleAnim_RapidSpin_branch_cbcaf: ; cbcaf
-BattleAnim_Return_branch_cbcaf: ; cbcaf
-BattleAnim_Rollout_branch_cbcaf: ; cbcaf
-BattleAnim_Splash_branch_cbcaf: ; cbcaf
-BattleAnim_Tackle_branch_cbcaf: ; cbcaf
-BattleAnim_TailWhip_branch_cbcaf: ; cbcaf
-BattleAnim_Transform_branch_cbcaf: ; cbcaf
-BattleAnim_Waterfall_branch_cbcaf: ; cbcaf
-BattleAnim_Withdraw_branch_cbcaf: ; cbcaf
+BattleAnim_FollowPlayerHead_0: ; cbcaf
anim_playerheadobj
anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $0, $0
anim_wait 6
anim_ret
; cbcb7
-BattleAnim_AcidArmor_branch_cbcb7: ; cbcb7
-BattleAnim_Agility_branch_cbcb7: ; cbcb7
-BattleAnim_BeatUp_branch_cbcb7: ; cbcb7
-BattleAnim_Bide_branch_cbcb7: ; cbcb7
-BattleAnim_BodySlam_branch_cbcb7: ; cbcb7
-BattleAnim_Charm_branch_cbcb7: ; cbcb7
-BattleAnim_Curse_branch_cbcb7: ; cbcb7
-BattleAnim_DefenseCurl_branch_cbcb7: ; cbcb7
-BattleAnim_Dig_branch_cbcb7: ; cbcb7
-BattleAnim_DoubleEdge_branch_cbcb7: ; cbcb7
-BattleAnim_DoubleTeam_branch_cbcb7: ; cbcb7
-BattleAnim_Endure_branch_cbcb7: ; cbcb7
-BattleAnim_FaintAttack_branch_cbcb7: ; cbcb7
-BattleAnim_Flail_branch_cbcb7: ; cbcb7
-BattleAnim_FocusEnergy_branch_cbcb7: ; cbcb7
-BattleAnim_Frustration_branch_cbcb7: ; cbcb7
-BattleAnim_GigaDrain_branch_cbcb7: ; cbcb7
-BattleAnim_Harden_branch_cbcb7: ; cbcb7
-BattleAnim_Headbutt_branch_cbcb7: ; cbcb7
-BattleAnim_HiddenPower_branch_cbcb7: ; cbcb7
-BattleAnim_IronTail_branch_cbcb7: ; cbcb7
-BattleAnim_Meditate_branch_cbcb7: ; cbcb7
-BattleAnim_MegaDrain_branch_cbcb7: ; cbcb7
-BattleAnim_MetalClaw_branch_cbcb7: ; cbcb7
-BattleAnim_MilkDrink_branch_cbcb7: ; cbcb7
-BattleAnim_Minimize_branch_cbcb7: ; cbcb7
-BattleAnim_Outrage_branch_cbcb7: ; cbcb7
-BattleAnim_PainSplit_branch_cbcb7: ; cbcb7
-BattleAnim_PsychUp_branch_cbcb7: ; cbcb7
-BattleAnim_Rage_branch_cbcb7: ; cbcb7
-BattleAnim_RazorWind_branch_cbcb7: ; cbcb7
-BattleAnim_Recover_branch_cbcb7: ; cbcb7
-BattleAnim_Return_branch_cbcb7: ; cbcb7
-BattleAnim_Rollout_branch_cbcb7: ; cbcb7
-BattleAnim_SendOutMon_branch_cbcb7: ; cbcb7
-BattleAnim_Sharpen_branch_cbcb7: ; cbcb7
-BattleAnim_Sketch_branch_cbcb7: ; cbcb7
-BattleAnim_SkullBash_branch_cbcb7: ; cbcb7
-BattleAnim_SkyAttack_branch_cbcb7: ; cbcb7
-BattleAnim_Softboiled_branch_cbcb7: ; cbcb7
-BattleAnim_Splash_branch_cbcb7: ; cbcb7
-BattleAnim_SteelWing_branch_cbcb7: ; cbcb7
-BattleAnim_Synthesis_branch_cbcb7: ; cbcb7
-BattleAnim_Tackle_branch_cbcb7: ; cbcb7
-BattleAnim_TailWhip_branch_cbcb7: ; cbcb7
-BattleAnim_TakeDown_branch_cbcb7: ; cbcb7
-BattleAnim_Teleport_branch_cbcb7: ; cbcb7
-BattleAnim_Thief_branch_cbcb7: ; cbcb7
-BattleAnim_Transform_branch_cbcb7: ; cbcb7
-BattleAnim_VitalThrow_branch_cbcb7: ; cbcb7
-BattleAnim_Waterfall_branch_cbcb7: ; cbcb7
-BattleAnim_Withdraw_branch_cbcb7: ; cbcb7
+BattleAnim_ShowMon_0: ; cbcb7
anim_wait 1
anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
anim_wait 5
- anim_incobj $1
+ anim_incobj 1
anim_wait 1
anim_ret
; cbcc2
-BattleAnim_EnemyStatDown_branch_cbcc2: ; cbcc2
-BattleAnim_Foresight_branch_cbcc2: ; cbcc2
-BattleAnim_PlayerStatDown_branch_cbcc2: ; cbcc2
-BattleAnim_Pursuit_branch_cbcc2: ; cbcc2
-BattleAnim_Submission_branch_cbcc2: ; cbcc2
+BattleAnim_FollowEnemyFeet_1: ; cbcc2
anim_enemyfeetobj
anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0
anim_wait 6
anim_ret
; cbcca
-BattleAnim_Bubblebeam_branch_cbcca: ; cbcca
-BattleAnim_Confusion_branch_cbcca: ; cbcca
-BattleAnim_HydroPump_branch_cbcca: ; cbcca
-BattleAnim_NightShade_branch_cbcca: ; cbcca
-BattleAnim_WaterGun_branch_cbcca: ; cbcca
+BattleAnim_FollowPlayerHead_1: ; cbcca
anim_playerheadobj
anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0
anim_wait 4
anim_ret
; cbcd2
-BattleAnim_Bubblebeam_branch_cbcd2: ; cbcd2
-BattleAnim_Confusion_branch_cbcd2: ; cbcd2
-BattleAnim_EnemyStatDown_branch_cbcd2: ; cbcd2
-BattleAnim_Foresight_branch_cbcd2: ; cbcd2
-BattleAnim_HydroPump_branch_cbcd2: ; cbcd2
-BattleAnim_NightShade_branch_cbcd2: ; cbcd2
-BattleAnim_PlayerStatDown_branch_cbcd2: ; cbcd2
-BattleAnim_Pursuit_branch_cbcd2: ; cbcd2
-BattleAnim_Submission_branch_cbcd2: ; cbcd2
-BattleAnim_WaterGun_branch_cbcd2: ; cbcd2
+BattleAnim_ShowMon_1: ; cbcd2
anim_wait 1
anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
anim_wait 4
- anim_incobj $1
+ anim_incobj 1
anim_wait 1
anim_ret
; cbcdd
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)
diff --git a/battle/core.asm b/battle/core.asm
index bda8e736d..d8c38d2c1 100644
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -1,9 +1,6 @@
-BattleCore:
-
; Core components of the battle engine.
-
-
-SendOutFirstMons: ; 3c000
+BattleCore:
+DoBattle: ; 3c000
xor a
ld [wBattleParticipantsNotFainted], a
ld [wc6fc], a
@@ -83,8 +80,8 @@ SendOutFirstMons: ; 3c000
ld [CurPartySpecies], a
ld [TempBattleMonSpecies], a
hlcoord 1, 5
- ld a, $9
- call Function3d490
+ ld a, 9
+ call SlideBattlePicOut
call LoadTileMapToTempTileMap
call ResetBattleParticipants
call InitBattleMon
@@ -113,7 +110,7 @@ SendOutFirstMons: ; 3c000
call SpikesDamage
.not_linked_2
- jp Function3c12f
+ jp BattleTurn
.tutorial_debug
jp BattleMenu
@@ -130,33 +127,33 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5
ld a, [wLinkMode]
and a
ld hl, BattleText_WildFled
- jr z, .asm_3c115
+ jr z, .print_text
ld a, [wBattleResult]
and $c0
ld [wBattleResult], a
ld hl, BattleText_EnemyFled
call CheckMobileBattleError
- jr nc, .asm_3c115
+ jr nc, .print_text
ld hl, wcd2a
bit 4, [hl]
- jr nz, .asm_3c118
+ jr nz, .skip_text
ld hl, BattleText_LinkErrorBattleCanceled
-.asm_3c115
+.print_text
call StdBattleTextBox
-.asm_3c118
+.skip_text
call StopDangerSound
call CheckMobileBattleError
- jr c, .asm_3c126
+ jr c, .skip_sfx
ld de, SFX_RUN
call PlaySFX
-.asm_3c126
+.skip_sfx
call SetPlayerTurn
ld a, 1
ld [BattleEnded], a
@@ -164,7 +161,7 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5
; 3c12f
-Function3c12f: ; 3c12f
+BattleTurn: ; 3c12f
.loop
call MobileFn_3c1bf
call CheckContestBattleOver
@@ -424,7 +421,7 @@ HandleBerserkGene: ; 3c27c
bit SUBSTATUS_CONFUSED, a
ret nz
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_CONFUSED
call Call_PlayBattleAnim_OnlyIfVisible
call SwitchTurnCore
@@ -1101,7 +1098,7 @@ ResidualDamage: ; 3c716
pop de
xor a
- ld [wcfca], a
+ ld [wNumHits], a
call Call_PlayBattleAnim_OnlyIfVisible
call GetEighthMaxHP
ld de, PlayerToxicCount
@@ -1141,7 +1138,7 @@ ResidualDamage: ; 3c716
call SwitchTurnCore
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_SAP
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
@@ -1166,7 +1163,7 @@ ResidualDamage: ; 3c716
bit SUBSTATUS_NIGHTMARE, [hl]
jr z, .not_nightmare
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_IN_NIGHTMARE
call Call_PlayBattleAnim_OnlyIfVisible
call GetQuarterMaxHP
@@ -1184,7 +1181,7 @@ ResidualDamage: ; 3c716
jr z, .not_cursed
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_IN_NIGHTMARE
call Call_PlayBattleAnim_OnlyIfVisible
call GetQuarterMaxHP
@@ -1328,7 +1325,7 @@ HandleWrap: ; 3c874
call SwitchTurnCore
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
predef PlayBattleAnim
call SwitchTurnCore
@@ -1433,8 +1430,8 @@ HandleMysteryberry: ; 3c93c
ld a, [hBattleTurn]
and a
jr z, .wild
- ld de, wc739
- ld hl, wc735
+ ld de, wWildMonPP
+ ld hl, wWildMonMoves
ld a, [wBattleMode]
dec a
jr z, .wild
@@ -1830,7 +1827,7 @@ HandleWeather: ; 3cb9e
call SwitchTurnCore
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_IN_SANDSTORM
call Call_PlayBattleAnim
call SwitchTurnCore
@@ -1852,9 +1849,8 @@ HandleWeather: ; 3cb9e
dec a
ld c, a
ld b, 0
-rept 2
add hl, bc
-endr
+ add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1892,26 +1888,26 @@ SubtractHP: ; 3cc45
.ok
inc hl
ld a, [hl]
- ld [wd1ec], a
+ ld [Buffer3], a
sub c
ld [hld], a
- ld [wd1ee], a
+ ld [Buffer5], a
ld a, [hl]
- ld [wd1ed], a
+ ld [Buffer4], a
sbc b
ld [hl], a
- ld [wd1ef], a
+ ld [Buffer6], a
ret nc
- ld a, [wd1ec]
+ ld a, [Buffer3]
ld c, a
- ld a, [wd1ed]
+ ld a, [Buffer4]
ld b, a
xor a
ld [hli], a
ld [hl], a
- ld [wd1ee], a
- ld [wd1ef], a
+ ld [Buffer5], a
+ ld [Buffer6], a
ret
; 3cc76
@@ -2101,7 +2097,7 @@ UpdateHPBar: ; 3cd3c
xor a
.ok
push bc
- ld [wd10a], a
+ ld [wWhichHPBar], a
predef AnimateHPBar
pop bc
ret
@@ -2415,7 +2411,7 @@ Function3cf4a: ; 3cf4a
ld e, HP_BAR_LENGTH_PX
call UpdateHPPal
call WaitBGMap
- callba Function2c012
+ callba EnemySwitch_TrainerHud
ld a, [wLinkMode]
and a
jr z, .not_linked
@@ -2489,15 +2485,15 @@ WinTrainerBattle: ; 3cfa4
bit 0, a
jr nz, .battle_tower
- call Function3ebd8
- ld c, $28
+ call BattleWinSlideInEnemyTrainerFrontpic
+ ld c, 40
call DelayFrames
ld a, [BattleType]
cp BATTLETYPE_CANLOSE
jr nz, .skip_heal
predef HealParty
.skip_heal
- ld a, [wc2cc]
+ ld a, [wMonStatusFlags]
bit 0, a
jr nz, .skip_win_loss_text
call PrintWinLossText
@@ -2506,7 +2502,7 @@ WinTrainerBattle: ; 3cfa4
jp Function3d02b
.mobile
- call Function3ebd8
+ call BattleWinSlideInEnemyTrainerFrontpic
ld c, 40
call DelayFrames
ld c, $4
@@ -2514,7 +2510,7 @@ WinTrainerBattle: ; 3cfa4
ret
.battle_tower
- call Function3ebd8
+ call BattleWinSlideInEnemyTrainerFrontpic
ld c, 40
call DelayFrames
call EmptyBattleTextBox
@@ -2578,9 +2574,8 @@ Function3d02b: ; 3d02b
dec a
ld c, a
ld b, 0
-rept 2
add hl, bc
-endr
+ add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
@@ -2618,9 +2613,8 @@ endr
rl [hl]
ret nc
ld a, $ff
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
ret
; 3d0ab
@@ -2874,13 +2868,13 @@ AskUseNextPokemon: ; 3d1f8
.loop
lb bc, 1, 7
call PlaceYesNoBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
jr c, .pressed_b
and a
ret
.pressed_b
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp $1 ; YES
jr z, .loop
ld hl, PartyMon1Speed
@@ -2891,7 +2885,7 @@ AskUseNextPokemon: ; 3d1f8
ForcePlayerMonChoice: ; 3d227
call EmptyBattleTextBox
call LoadStandardMenuDataHeader
- call Function3d2f7
+ call SetUpBattlePartyMenu_NoLoop
call ForcePickPartyMonInBattle
ld a, [wLinkMode]
and a
@@ -2935,7 +2929,7 @@ ForcePlayerMonChoice: ; 3d227
call ClearPalettes
call DelayFrame
call _LoadHPBar
- call WriteBackup
+ call CloseWindow
call GetMemSGBLayout
call SetPalettes
call SendOutPkmnText
@@ -2995,12 +2989,12 @@ IsMobileBattle: ; 3d2f1
ret
; 3d2f7
-Function3d2f7: ; 3d2f7
+SetUpBattlePartyMenu_NoLoop: ; 3d2f7
call ClearBGPalettes
-Function3d2fa: ; switch to fullscreen menu?
+SetUpBattlePartyMenu: ; switch to fullscreen menu?
callba LoadPartyMenuGFX
callba InitPartyMenuWithCancel
- callba Function8e85
+ callba InitPartyMenuBGPal7
callba InitPartyMenuGFX
ret
; 3d313
@@ -3111,12 +3105,12 @@ LostBattle: ; 3d38e
hlcoord 0, 0
lb bc, 8, 21
call ClearBox
- call Function3ebd8
+ call BattleWinSlideInEnemyTrainerFrontpic
ld c, 40
call DelayFrames
- ld a, [wc2cc]
+ ld a, [wMonStatusFlags]
bit 0, a
jr nz, .skip_win_loss_text
call PrintWinLossText
@@ -3128,7 +3122,7 @@ LostBattle: ; 3d38e
hlcoord 0, 0
lb bc, 8, 21
call ClearBox
- call Function3ebd8
+ call BattleWinSlideInEnemyTrainerFrontpic
ld c, 40
call DelayFrames
@@ -3147,7 +3141,7 @@ LostBattle: ; 3d38e
jr nz, .LostLinkBattle
; Greyscale
- ld b, SCGB_00
+ ld b, SCGB_BATTLE_GRAYSCALE
call GetSGBLayout
call SetPalettes
jr .end
@@ -3180,7 +3174,7 @@ LostBattle: ; 3d38e
hlcoord 0, 0
lb bc, 8, 21
call ClearBox
- call Function3ebd8
+ call BattleWinSlideInEnemyTrainerFrontpic
ld c, 40
call DelayFrames
@@ -3260,31 +3254,31 @@ MonFaintedAnimation: ; 3d444
; 3d490
-Function3d490: ; 3d490
+SlideBattlePicOut: ; 3d490
ld [hMapObjectIndexBuffer], a
ld c, a
-.asm_3d493
+.loop
push bc
push hl
ld b, $7
-.asm_3d497
+.loop2
push hl
- call Function3d4ae
+ call .DoFrame
pop hl
ld de, SCREEN_WIDTH
add hl, de
dec b
- jr nz, .asm_3d497
+ jr nz, .loop2
ld c, 2
call DelayFrames
pop hl
pop bc
dec c
- jr nz, .asm_3d493
+ jr nz, .loop
ret
; 3d4ae
-Function3d4ae: ; 3d4ae
+.DoFrame: ; 3d4ae
ld a, [hMapObjectIndexBuffer]
ld c, a
cp $8
@@ -3413,8 +3407,8 @@ ResetEnemyBattleVars: ; 3d557
xor a
ld [wPlayerWrapCount], a
hlcoord 18, 0
- ld a, $8
- call Function3d490
+ ld a, 8
+ call SlideBattlePicOut
call EmptyBattleTextBox
jp LoadStandardMenuDataHeader
; 3d57a
@@ -3646,13 +3640,13 @@ LoadEnemyPkmnToSwitchTo: ; 3d6ca
ld a, [CurPartySpecies]
cp UNOWN
jr nz, .skip_unown
- ld a, [wdef4]
+ ld a, [wFirstUnownSeen]
and a
jr nz, .skip_unown
ld hl, EnemyMonDVs
predef GetUnownLetter
ld a, [UnownLetter]
- ld [wdef4], a
+ ld [wFirstUnownSeen], a
.skip_unown
ld hl, EnemyMonHP
@@ -3701,10 +3695,10 @@ OfferSwitch: ; 3d74b
call StdBattleTextBox
lb bc, 1, 7
call PlaceYesNoBox
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
jr nz, .said_no
- call Function3d2f7
+ call SetUpBattlePartyMenu_NoLoop
call PickSwitchMonInBattle
jr c, .canceled_switch
ld a, [CurBattleMon]
@@ -3764,8 +3758,8 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7
call GetMonFrontpic
xor a
- ld [wcfca], a
- ld [wKickCounter], a
+ ld [wNumHits], a
+ ld [wBattleAnimParam], a
call SetEnemyTurn
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
@@ -3773,7 +3767,7 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7
call BattleCheckEnemyShininess
jr nc, .not_shiny
ld a, 1 ; shiny anim
- ld [wKickCounter], a
+ ld [wBattleAnimParam], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
.not_shiny
@@ -4270,14 +4264,14 @@ SendOutPlayerMon: ; 3db5f
ld [wEnemyWrapCount], a
call SetPlayerTurn
xor a
- ld [wcfca], a
- ld [wKickCounter], a
+ ld [wNumHits], a
+ ld [wBattleAnimParam], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
call BattleCheckPlayerShininess
jr nc, .not_shiny
- ld a, $1
- ld [wKickCounter], a
+ ld a, 1
+ ld [wBattleAnimParam], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
@@ -4463,7 +4457,7 @@ Function3dce6: ; 3dce6
push af
xor a
ld [hBattleTurn], a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_RETURN_MON
call Call_PlayBattleAnim
pop af
@@ -4478,21 +4472,21 @@ HandleHealingItems: ; 3dcf9
call SetPlayerTurn
call HandleHPHealingItem
call UseHeldStatusHealingItem
- call HandleStatusHealingItem
+ call UseConfusionHealingItem
call SetEnemyTurn
call HandleHPHealingItem
call UseHeldStatusHealingItem
- jp HandleStatusHealingItem
+ jp UseConfusionHealingItem
.player_1
call SetEnemyTurn
call HandleHPHealingItem
call UseHeldStatusHealingItem
- call HandleStatusHealingItem
+ call UseConfusionHealingItem
call SetPlayerTurn
call HandleHPHealingItem
call UseHeldStatusHealingItem
- jp HandleStatusHealingItem
+ jp UseConfusionHealingItem
; 3dd2f
HandleHPHealingItem: ; 3dd2f
@@ -4511,13 +4505,13 @@ HandleHPHealingItem: ; 3dd2f
.go
push bc
ld a, [de]
- ld [wd1ec], a
+ ld [Buffer3], a
add a
ld c, a
dec de
ld a, [de]
inc de
- ld [wd1ed], a
+ ld [Buffer4], a
adc a
ld b, a
ld a, b
@@ -4542,12 +4536,12 @@ HandleHPHealingItem: ; 3dd2f
ld [Buffer1], a
ld a, [de]
add c
- ld [wd1ee], a
+ ld [Buffer5], a
ld c, a
dec de
ld a, [de]
adc $0
- ld [wd1ef], a
+ ld [Buffer6], a
ld b, a
ld a, [hld]
cp c
@@ -4555,25 +4549,25 @@ HandleHPHealingItem: ; 3dd2f
sbc b
jr nc, .okay
ld a, [hli]
- ld [wd1ef], a
+ ld [Buffer6], a
ld a, [hl]
- ld [wd1ee], a
+ ld [Buffer5], a
.okay
- ld a, [wd1ef]
+ ld a, [Buffer6]
ld [de], a
inc de
- ld a, [wd1ee]
+ ld a, [Buffer5]
ld [de], a
ld a, [hBattleTurn]
- ld [wd10a], a
+ ld [wWhichHPBar], a
and a
hlcoord 2, 2
jr z, .got_hp_bar_coords
hlcoord 10, 9
.got_hp_bar_coords
- ld [wd10a], a
+ ld [wWhichHPBar], a
predef AnimateHPBar
UseOpponentItem:
call RefreshBattleHuds
@@ -4596,7 +4590,7 @@ ItemRecoveryAnim: ; 3ddc8
ld [FXAnimIDLo], a
call SwitchTurnCore
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
predef PlayBattleAnim
call SwitchTurnCore
@@ -4672,7 +4666,7 @@ UseHeldStatusHealingItem: ; 3dde9
; 3de51
-HandleStatusHealingItem: ; 3de51
+UseConfusionHealingItem: ; 3de51
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
bit SUBSTATUS_CONFUSED, a
@@ -4692,7 +4686,7 @@ HandleStatusHealingItem: ; 3de51
res SUBSTATUS_CONFUSED, [hl]
call GetItemName
call ItemRecoveryAnim
- ld hl, BattleText_0x80dab
+ ld hl, BattleText_ItemHealedConfusion
call StdBattleTextBox
ld a, [hBattleTurn]
and a
@@ -4750,18 +4744,16 @@ HandleStatBoostingHeldItems: ; 3de97
ld a, [hli]
cp $ff
jr z, .finish
-rept 2
inc hl
-endr
+ inc hl
cp b
jr nz, .loop
pop bc
ld a, [bc]
ld [wd265], a
push bc
-rept 2
dec hl
-endr
+ dec hl
ld a, [hli]
ld h, [hl]
ld l, a
@@ -4856,7 +4848,7 @@ DrawPlayerHUD: ; 3df58
lb bc, 5, 11
call ClearBox
- callba DrawPlayerExpBar
+ callba DrawPlayerHUDBorder
hlcoord 18, 9
ld [hl], $73 ; vertical bar
@@ -4998,7 +4990,7 @@ DrawEnemyHUD: ; 3e043
lb bc, 4, 11
call ClearBox
- callba Function2c0c5
+ callba DrawEnemyHUDBorder
ld a, [TempEnemyMonSpecies]
ld [CurSpecies], a
@@ -5116,7 +5108,7 @@ DrawEnemyHUD: ; 3e043
.draw_bar
xor a
- ld [wd10a], a
+ ld [wWhichHPBar], a
hlcoord 2, 2
ld b, 0
call DrawBattleHPBar
@@ -5228,11 +5220,11 @@ LoadBattleMenu2: ; 3e19b
BattleMenu_Pack: ; 3e1c7
ld a, [wLinkMode]
and a
- jp nz, ItemsCantBeUsed
+ jp nz, .ItemsCantBeUsed
ld a, [InBattleTowerBattle]
and a
- jp nz, ItemsCantBeUsed
+ jp nz, .ItemsCantBeUsed
call LoadStandardMenuDataHeader
@@ -5261,7 +5253,7 @@ BattleMenu_Pack: ; 3e1c7
call DoItemEffect
.got_item
- call Function3e234
+ call .UseItem
ret
.didnt_use_item
@@ -5277,52 +5269,52 @@ BattleMenu_Pack: ; 3e1c7
jp BattleMenu
; 3e22b
-ItemsCantBeUsed: ; 3e22b
+.ItemsCantBeUsed: ; 3e22b
ld hl, BattleText_ItemsCantBeUsedHere
call StdBattleTextBox
jp BattleMenu
; 3e234
-Function3e234: ; 3e234
- ld a, [wc64e]
+.UseItem: ; 3e234
+ ld a, [wWildMon]
and a
- jr nz, .asm_3e279
+ jr nz, .run
callab CheckItemPocket
ld a, [wItemAttributeParamBuffer]
- cp $3
- jr z, .asm_3e24a
+ cp BALL
+ jr z, .ball
call ClearBGPalettes
-.asm_3e24a
+.ball
xor a
ld [hBGMapMode], a
call _LoadBattleFontsHPBar
call ClearSprites
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
- jr z, .asm_3e25d
+ jr z, .tutorial2
call GetMonBackpic
-.asm_3e25d
+.tutorial2
call GetMonFrontpic
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
call ExitMenu
call UpdateBattleHUDs
call WaitBGMap
call LoadTileMapToTempTileMap
- call ResetTextRelatedRAM
+ call ClearWindowData
call FinishBattleAnim
and a
ret
-.asm_3e279
+.run
xor a
- ld [wc64e], a
+ ld [wWildMon], a
ld a, [wBattleResult]
and $c0
ld [wBattleResult], a
- call ResetTextRelatedRAM
+ call ClearWindowData
call SetPalettes
scf
ret
@@ -5334,62 +5326,62 @@ Function3e290:
call ExitMenu
call LoadStandardMenuDataHeader
call ClearBGPalettes
-Function3e299:
- call Function3d2fa
+BattleMenuPKMN_Loop:
+ call SetUpBattlePartyMenu
xor a
ld [PartyMenuActionText], a
call Function3d313
call Function3d329
- jr c, .asm_3e2da
-.asm_3e2a8
- callba Function8ea4a
- call Function3e2f5
- jr c, .asm_3e2c8
- call Function1bee
- ld a, [MenuSelection2]
- cp $1
- jp z, Function3e358
- cp $2
- jr z, .asm_3e2cf
- cp $3
- jr z, .asm_3e2da
- jr .asm_3e2a8
+ jr c, .Cancel
+.loop
+ callba FreezeMonIcons
+ call .GetMenu
+ jr c, .PressedB
+ call PlaceHollowCursor
+ ld a, [wMenuCursorY]
+ cp $1 ; SWITCH
+ jp z, TryPlayerSwitch
+ cp $2 ; STATS
+ jr z, .Stats
+ cp $3 ; CANCEL
+ jr z, .Cancel
+ jr .loop
-.asm_3e2c8
+.PressedB
call CheckMobileBattleError
- jr c, .asm_3e2da
- jr Function3e299
+ jr c, .Cancel
+ jr BattleMenuPKMN_Loop
-.asm_3e2cf
- call Function3e308
+.Stats
+ call Battle_StatsScreen
call CheckMobileBattleError
- jr c, .asm_3e2da
+ jr c, .Cancel
jp Function3e290
-.asm_3e2da
+.Cancel
call ClearSprites
call ClearPalettes
call DelayFrame
call _LoadHPBar
- call WriteBackup
+ call CloseWindow
call LoadTileMapToTempTileMap
call GetMemSGBLayout
call SetPalettes
jp BattleMenu
; 3e2f5
-Function3e2f5: ; 3e2f5
+.GetMenu: ; 3e2f5
call IsMobileBattle
- jr z, .asm_3e301
- callba Function24e99
+ jr z, .mobile
+ callba BattleMonMenu
ret
-.asm_3e301
- callba Function100d22
+.mobile
+ callba MobileBattleMonMenu
ret
; 3e308
-Function3e308: ; 3e308
+Battle_StatsScreen: ; 3e308
call DisableLCD
ld hl, VTiles2 tile $31
ld de, VTiles0
@@ -5397,55 +5389,55 @@ Function3e308: ; 3e308
call CopyBytes
ld hl, VTiles2
ld de, VTiles0 tile $11
- ld bc, $0310
+ ld bc, $31 tiles
call CopyBytes
call EnableLCD
call ClearSprites
call LowVolume
xor a ; PARTYMON
ld [MonType], a
- callba Function4dc7b
+ callba BattleStatsScreenInit
call MaxVolume
call DisableLCD
ld hl, VTiles0
ld de, VTiles2 tile $31
- ld bc, $0110
+ ld bc, $11 tiles
call CopyBytes
ld hl, VTiles0 tile $11
ld de, VTiles2
- ld bc, $0310
+ ld bc, $31 tiles
call CopyBytes
call EnableLCD
ret
; 3e358
-Function3e358: ; 3e358
+TryPlayerSwitch: ; 3e358
ld a, [CurBattleMon]
ld d, a
ld a, [CurPartyMon]
cp d
- jr nz, .asm_3e36b
+ jr nz, .check_trapped
ld hl, BattleText_PkmnIsAlreadyOut
call StdBattleTextBox
- jp Function3e299
+ jp BattleMenuPKMN_Loop
-.asm_3e36b
+.check_trapped
ld a, [wPlayerWrapCount]
and a
- jr nz, .asm_3e378
+ jr nz, .trapped
ld a, [EnemySubStatus5]
bit SUBSTATUS_CANT_RUN, a
- jr z, .asm_3e381
+ jr z, .try_switch
-.asm_3e378
+.trapped
ld hl, BattleText_PkmnCantBeRecalled
call StdBattleTextBox
- jp Function3e299
+ jp BattleMenuPKMN_Loop
-.asm_3e381
+.try_switch
call CheckIfPartyHasPkmnToBattleWith
- jp z, Function3e299
+ jp z, BattleMenuPKMN_Loop
ld a, [CurBattleMon]
ld [LastPlayerMon], a
ld a, $2
@@ -5454,14 +5446,11 @@ Function3e358: ; 3e358
call DelayFrame
call ClearSprites
call _LoadHPBar
- call WriteBackup
+ call CloseWindow
call GetMemSGBLayout
call SetPalettes
ld a, [CurPartyMon]
ld [CurBattleMon], a
- ; fallthrough
-; 3e3ad
-
PlayerSwitch: ; 3e3ad
ld a, 1
ld [wPlayerIsSwitching], a
@@ -5470,7 +5459,7 @@ PlayerSwitch: ; 3e3ad
jr z, .not_linked
call LoadStandardMenuDataHeader
call LinkBattleSendReceiveAction
- call WriteBackup
+ call CloseWindow
.not_linked
call ParseEnemyAction
@@ -5519,7 +5508,7 @@ EnemyMonEntrance: ; 3e3ff
; 3e40b
BattleMonEntrance: ; 3e40b
- call BattleMonNickComma_TextBox
+ call WithdrawPkmnText
ld c, 50
call DelayFrames
@@ -5551,7 +5540,7 @@ BattleMonEntrance: ; 3e40b
call SetPlayerTurn
call SpikesDamage
ld a, $2
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ret
; 3e459
@@ -5581,7 +5570,7 @@ PassedBattleMonEntrance: ; 3e459
BattleMenu_Run: ; 3e489
call Call_LoadTempTileMapToTileMap
ld a, $3
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld hl, BattleMonSpeed
ld de, EnemyMonSpeed
call TryToRunAwayFromBattle
@@ -5667,9 +5656,9 @@ MoveSelectionScreen: ; 3e4bc
ld a, 17 - NUM_MOVES - 4
.got_default_coord
- ld [wcfa1], a
+ ld [w2DMenuCursorInitY], a
ld a, b
- ld [wcfa2], a
+ ld [w2DMenuCursorInitX], a
ld a, [wMoveSelectionMenuType]
cp $1
jr z, .skip_inc
@@ -5677,14 +5666,14 @@ MoveSelectionScreen: ; 3e4bc
inc a
.skip_inc
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld a, $1
- ld [wcfaa], a
- ld a, [wd0eb]
+ ld [wMenuCursorX], a
+ ld a, [wNumMoves]
inc a
- ld [wcfa3], a
+ ld [w2DMenuNumRows], a
ld a, $1
- ld [wcfa4], a
+ ld [w2DMenuNumCols], a
ld c, $2c
ld a, [wMoveSelectionMenuType]
dec a
@@ -5700,13 +5689,13 @@ MoveSelectionScreen: ; 3e4bc
.okay
ld a, b
- ld [wcfa8], a
+ ld [wMenuJoypadFilter], a
ld a, c
- ld [wcfa5], a
+ ld [w2DMenuFlags1], a
xor a
- ld [wcfa6], a
+ ld [w2DMenuFlags2], a
ld a, $10
- ld [wcfa7], a
+ ld [w2DMenuCursorOffsets], a
.menu_loop
ld a, [wMoveSelectionMenuType]
and a
@@ -5732,7 +5721,7 @@ MoveSelectionScreen: ; 3e4bc
.interpret_joypad
ld a, $1
ld [hBGMapMode], a
- call Function1bd3
+ call ScrollingMenuJoypad
bit D_UP_F, a
jp nz, .pressed_up
bit D_DOWN_F, a
@@ -5744,9 +5733,9 @@ MoveSelectionScreen: ; 3e4bc
xor a
ld [wMoveSwapBuffer], a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
ld b, a
ld a, [wMoveSelectionMenuType]
dec a
@@ -5769,7 +5758,7 @@ MoveSelectionScreen: ; 3e4bc
ret nz
ld hl, BattleMonPP
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld c, a
ld b, 0
add hl, bc
@@ -5785,7 +5774,7 @@ MoveSelectionScreen: ; 3e4bc
ld a, [wc6e1]
and a
jr nz, .skip2
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld hl, BattleMonMoves
ld c, a
ld b, 0
@@ -5815,26 +5804,25 @@ MoveSelectionScreen: ; 3e4bc
; 3e61d
.pressed_up
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
and a
jp nz, .menu_loop
- ld a, [wd0eb]
+ ld a, [wNumMoves]
inc a
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp .menu_loop
; 3e62e
.pressed_down ; 3e62e
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld b, a
- ld a, [wd0eb]
-rept 2
+ ld a, [wNumMoves]
+ inc a
inc a
-endr
cp b
jp nz, .menu_loop
ld a, $1
- ld [MenuSelection2], a
+ ld [wMenuCursorY], a
jp .menu_loop
; 3e643
@@ -5851,7 +5839,7 @@ endr
swap a
and $f
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp b
jr nz, .not_swapping_disabled_move
ld a, [hl]
@@ -5870,7 +5858,7 @@ endr
ld a, [hl]
and $f
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
swap a
add b
ld [hl], a
@@ -5905,7 +5893,7 @@ endr
ld d, h
ld e, l
pop hl
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
dec a
ld c, a
ld b, 0
@@ -5918,7 +5906,7 @@ endr
ret
.start_swap
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld [wMoveSwapBuffer], a
jp MoveSelectionScreen
; 3e6c8
@@ -5940,7 +5928,7 @@ MoveInfoBox: ; 3e6c8
swap a
and $f
ld b, a
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
cp b
jr nz, .not_disabled
@@ -5950,11 +5938,11 @@ MoveInfoBox: ; 3e6c8
jr .done
.not_disabled
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
dec [hl]
call SetPlayerTurn
ld hl, BattleMonMoves
- ld a, [MenuSelection2]
+ ld a, [wMenuCursorY]
ld c, a
ld b, 0
add hl, bc
@@ -5967,7 +5955,7 @@ MoveInfoBox: ; 3e6c8
ld [MonType], a
callab GetMaxPPOfMove
- ld hl, MenuSelection2
+ ld hl, wMenuCursorY
ld c, [hl]
inc [hl]
ld b, 0
@@ -6014,9 +6002,8 @@ MoveInfoBox: ; 3e6c8
lb bc, 1, 2
call PrintNum
pop hl
-rept 2
inc hl
-endr
+ inc hl
ld [hl], "/"
inc hl
ld de, wNamedObjectIndexBuffer
@@ -6537,7 +6524,7 @@ LoadEnemyMon: ; 3e8eb
ld [EnemyMonLevel], a
; Fill stats
ld de, EnemyMonMaxHP
- ld b, $00
+ ld b, FALSE
ld hl, LinkBattleRNs + 7 ; ?
predef CalcPkmnStats
@@ -6714,7 +6701,7 @@ endr
ld bc, PKMN_NAME_LENGTH
call CopyBytes
-; Caught this mon
+; Saw this mon
ld a, [TempEnemyMonSpecies]
dec a
ld c, a
@@ -6824,9 +6811,8 @@ CheckUnownLetter: ; 3eb75
.next
; Make sure we haven't gone past the end of the table
-rept 2
inc e
-endr
+ inc e
ld a, e
cp a, .Set1 - .LetterSets
jr c, .loop
@@ -6874,7 +6860,7 @@ Function3ebc7: ; 3ebc7
ret
; 3ebd8
-Function3ebd8: ; 3ebd8
+BattleWinSlideInEnemyTrainerFrontpic: ; 3ebd8
xor a
ld [TempEnemyMonSpecies], a
call FinishBattleAnim
@@ -6883,12 +6869,12 @@ Function3ebd8: ; 3ebd8
ld de, VTiles2
callab GetTrainerPic
hlcoord 19, 0
- ld c, $0
+ ld c, 0
.outer_loop
inc c
ld a, c
- cp $7
+ cp 7
ret z
xor a
ld [hBGMapMode], a
@@ -6898,9 +6884,9 @@ Function3ebd8: ; 3ebd8
push hl
.inner_loop
- call Function3ec1a
+ call .CopyColumn
inc hl
- ld a, $7
+ ld a, 7
add d
ld d, a
dec c
@@ -6908,7 +6894,7 @@ Function3ebd8: ; 3ebd8
ld a, $1
ld [hBGMapMode], a
- ld c, $4
+ ld c, 4
call DelayFrames
pop hl
pop bc
@@ -6916,11 +6902,11 @@ Function3ebd8: ; 3ebd8
jr .outer_loop
; 3ec1a
-Function3ec1a: ; 3ec1a
+.CopyColumn: ; 3ec1a
push hl
push de
push bc
- ld e, $7
+ ld e, 7
.loop
ld [hl], d
@@ -6970,7 +6956,7 @@ ApplyPrzEffectOnSpeed: ; 3ec39
ld [hli], a
or b
jr nz, .player_ok
- ld b, $1
+ ld b, $1 ; min speed
.player_ok
ld [hl], b
@@ -6991,7 +6977,7 @@ ApplyPrzEffectOnSpeed: ; 3ec39
ld [hli], a
or b
jr nz, .enemy_ok
- ld b, $1
+ ld b, $1 ; min speed
.enemy_ok
ld [hl], b
@@ -7014,7 +7000,7 @@ ApplyBrnEffectOnAttack: ; 3ec76
ld [hli], a
or b
jr nz, .player_ok
- ld b, $1
+ ld b, $1 ; min attack
.player_ok
ld [hl], b
@@ -7033,7 +7019,7 @@ ApplyBrnEffectOnAttack: ; 3ec76
ld [hli], a
or b
jr nz, .enemy_ok
- ld b, $1
+ ld b, $1 ; min attack
.enemy_ok
ld [hl], b
@@ -7182,9 +7168,8 @@ BadgeStatBoosts: ; 3ed45
; Swap badges 3 (PlainBadge) and 5 (MineralBadge).
ld d, a
and (1 << PLAINBADGE)
-rept 2
add a
-endr
+ add a
ld b, a
ld a, d
and (1 << MINERALBADGE)
@@ -7203,9 +7188,8 @@ endr
ld a, b
srl b
call c, BoostStat
-rept 2
inc hl
-endr
+ inc hl
; Check every other badge.
srl b
dec c
@@ -7334,9 +7318,8 @@ _BattleRandom:: ; 3edd8
; a * 5 + 1
ld c, a
-rept 2
add a
-endr
+ add a
add c
inc a
@@ -7377,7 +7360,7 @@ FinishBattleAnim: ; 3ee27
push bc
push de
push hl
- ld b, SCGB_01
+ ld b, SCGB_BATTLE_COLORS
call GetSGBLayout
call SetPalettes
call DelayFrame
@@ -7423,6 +7406,7 @@ GiveExperiencePoints: ; 3ee3b
and a
pop bc
jp z, .skip_stats
+
ld hl, MON_STAT_EXP + 1
add hl, bc
ld d, h
@@ -7472,9 +7456,8 @@ GiveExperiencePoints: ; 3ee3b
ld [de], a
.skip
-rept 2
inc de
-endr
+ inc de
dec c
jr nz, .loop1
xor a
@@ -7534,7 +7517,7 @@ endr
push bc
call LoadTileMapToTempTileMap
pop bc
- ld hl, MON_EXP + 2
+ ld hl, MON_STAT_EXP - 1
add hl, bc
ld d, [hl]
ld a, [hQuotient + 2]
@@ -7549,9 +7532,8 @@ endr
inc [hl]
jr nz, .skip2
ld a, $ff
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
.skip2
@@ -7567,7 +7549,7 @@ endr
ld d, MAX_LEVEL
callab CalcExpAtLevel
pop bc
- ld hl, MON_EXP + 2
+ ld hl, MON_STAT_EXP - 1
add hl, bc
push bc
ld a, [hQuotient]
@@ -7582,7 +7564,7 @@ endr
sbc c
ld a, [hl]
sbc b
- jr c, .max_exp
+ jr c, .not_max_exp
ld a, b
ld [hli], a
ld a, c
@@ -7590,7 +7572,7 @@ endr
ld a, d
ld [hld], a
-.max_exp
+.not_max_exp
xor a ; PARTYMON
ld [MonType], a
predef CopyPkmnToTempMon
@@ -7604,7 +7586,7 @@ endr
cp d
jp z, .skip_stats
; <NICKNAME> grew to level ##!
- ld [wc719], a
+ ld [wTempLevel], a
ld a, [CurPartyLevel]
push af
ld a, d
@@ -7626,10 +7608,10 @@ endr
add hl, bc
ld d, h
ld e, l
- ld hl, MON_EXP + 2
+ ld hl, MON_STAT_EXP - 1
add hl, bc
push bc
- ld b, $1
+ ld b, TRUE
predef CalcPkmnStats
pop bc
pop de
@@ -7712,7 +7694,7 @@ endr
ld c, $9
call TextBox
hlcoord 11, 1
- ld bc, $0004
+ ld bc, 4
predef PrintTempMonStats
ld c, $1e
call DelayFrames
@@ -7725,7 +7707,7 @@ endr
ld a, [CurPartyLevel]
push af
ld c, a
- ld a, [wc719]
+ ld a, [wTempLevel]
ld b, a
.level_loop
@@ -7767,35 +7749,37 @@ endr
; 3f0d4
Function3f0d4: ; 3f0d4
+; count number of battle participants
ld a, [wBattleParticipantsNotFainted]
ld b, a
- ld c, $6
- ld d, $0
-.asm_3f0dc
+ ld c, PARTY_LENGTH
+ ld d, 0
+.loop
xor a
srl b
adc d
ld d, a
dec c
- jr nz, .asm_3f0dc
- cp $2
+ jr nz, .loop
+ cp 2
ret c
+
ld [wd265], a
ld hl, EnemyMonBaseStats
- ld c, $7
-.asm_3f0ef
+ ld c, EnemyMonEnd - EnemyMonBaseStats
+.loop2
xor a
ld [hDividend + 0], a
ld a, [hl]
ld [hDividend + 1], a
ld a, [wd265]
ld [hDivisor], a
- ld b, $2
+ ld b, 2
call Divide
ld a, [hQuotient + 2]
ld [hli], a
dec c
- jr nz, .asm_3f0ef
+ jr nz, .loop2
ret
; 3f106
@@ -7884,9 +7868,8 @@ Function3f136: ; 3f136
inc [hl]
jr nz, .asm_3f186
ld a, $ff
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
.asm_3f186
@@ -7941,12 +7924,12 @@ endr
call PrintPlayerHUD
ld hl, BattleMonNick
ld de, StringBuffer1
- ld bc, $000b
+ ld bc, PKMN_NAME_LENGTH
call CopyBytes
call Function3dfe
ld de, SFX_HIT_END_OF_EXP_BAR
call PlaySFX
- callba Function8e79d
+ callba AnimateEndOfExpBar
call WaitSFX
ld hl, BattleText_StringBuffer1GrewToLevel
call StdBattleTextBox
@@ -8120,8 +8103,6 @@ JumpText_GoForItPkmn: ; 3f2df
JumpText_YourFoesWeakGetmPkmn: ; 3f2e6
text_jump Text_YourFoesWeakGetmPkmn
start_asm
-; 3f2eb
-
Function_TextJump_BattleMonNick01: ; 3f2eb
ld hl, TextJump_BattleMonNick01
ret
@@ -8132,18 +8113,13 @@ TextJump_BattleMonNick01: ; 3f2ef
db "@"
; 3f2f4
-
-BattleMonNickComma_TextBox: ; 3f2f4
- ld hl, TextJump_BattleMonNickComma
+WithdrawPkmnText: ; 3f2f4
+ ld hl, .WithdrawPkmnText
jp BattleTextBox
-; 3f2fa
-TextJump_BattleMonNickComma: ; 3f2fa
+.WithdrawPkmnText
text_jump Text_BattleMonNickComma
start_asm
-; 3f2ff
-
-WithdrawPkmnText: ; 3f2ff
; Print text to withdraw Pkmn
; depending on HP the message is different
push de
@@ -8401,7 +8377,7 @@ GetMonBackpic: ; 3f43d
ld hl, BattleAnimCmd_RaiseSub
jr nz, GetBackpic_DoAnim ; substitute
-Function3f447: ; 3f447
+DropPlayerSub: ; 3f447
ld a, [wPlayerMinimized]
and a
ld hl, BattleAnimCmd_MinimizeOpp
@@ -8437,7 +8413,7 @@ GetMonFrontpic: ; 3f47c
ld hl, BattleAnimCmd_RaiseSub
jr nz, GetFrontpic_DoAnim
-Function3f486: ; 3f486
+DropEnemySub: ; 3f486
ld a, [wEnemyMinimized]
and a
ld hl, BattleAnimCmd_MinimizeOpp
@@ -8481,7 +8457,7 @@ StartBattle: ; 3f4c1
ld a, [TimeOfDayPal]
push af
call BattleIntro
- call SendOutFirstMons
+ call DoBattle
call ExitBattle
pop af
ld [TimeOfDayPal], a
@@ -8490,9 +8466,9 @@ StartBattle: ; 3f4c1
; 3f4d9
-_SendOutFirstMons: ; 3f4d9
+_DoBattle: ; 3f4d9
; unreferenced
- call SendOutFirstMons
+ call DoBattle
ret
; 3f4dd
@@ -8512,7 +8488,7 @@ BattleIntro: ; 3f4dd
callba ClearBattleRAM
call InitEnemy
call BackUpVBGMap2
- ld b, SCGB_00
+ ld b, SCGB_BATTLE_GRAYSCALE
call GetSGBLayout
ld hl, rLCDC
res 6, [hl]
@@ -8531,7 +8507,7 @@ BattleIntro: ; 3f4dd
call ClearBox
call ClearSprites
ld a, [wBattleMode]
- cp $1
+ cp WILD_BATTLE
call z, UpdateEnemyHUD
ld a, $1
ld [hBGMapMode], a
@@ -8560,9 +8536,9 @@ InitEnemy: ; 3f55e
BackUpVBGMap2: ; 3f568
ld a, [rSVBK]
push af
- ld a, $6 ; BANK(w6_d000)
+ ld a, $6 ; BANK(wDecompressScratch)
ld [rSVBK], a
- ld hl, w6_d000
+ ld hl, wDecompressScratch
ld bc, $40 tiles ; VBGMap3 - VBGMap2
ld a, $2
call ByteFill
@@ -8570,7 +8546,7 @@ BackUpVBGMap2: ; 3f568
push af
ld a, $1
ld [rVBK], a
- ld de, w6_d000
+ ld de, wDecompressScratch
hlbgcoord 0, 0 ; VBGMap2
lb bc, BANK(BackUpVBGMap2), $40
call Request2bpp
@@ -8586,7 +8562,7 @@ InitEnemyTrainer: ; 3f594
callba MobileFn_10606a
xor a
ld [TempEnemyMonSpecies], a
- callab Function3957b
+ callab GetTrainerAttributes
callab ReadTrainerParty
ld a, [TrainerClass]
@@ -8637,16 +8613,16 @@ InitEnemyTrainer: ; 3f594
; 3f607
InitEnemyWildmon: ; 3f607
- ld a, $1
+ ld a, WILD_BATTLE
ld [wBattleMode], a
callba MobileFn_10605d
call LoadEnemyMon
ld hl, EnemyMonMoves
- ld de, wc735
+ ld de, wWildMonMoves
ld bc, NUM_MOVES
call CopyBytes
ld hl, EnemyMonPP
- ld de, wc739
+ ld de, wWildMonPP
ld bc, NUM_MOVES
call CopyBytes
ld hl, EnemyMonDVs
@@ -8654,11 +8630,11 @@ InitEnemyWildmon: ; 3f607
ld a, [CurPartySpecies]
cp UNOWN
jr nz, .skip_unown
- ld a, [wdef4]
+ ld a, [wFirstUnownSeen]
and a
jr nz, .skip_unown
ld a, [UnownLetter]
- ld [wdef4], a
+ ld [wFirstUnownSeen], a
.skip_unown
ld de, VTiles2
predef FrontpicPredef
@@ -8725,19 +8701,19 @@ Function3f662: ; 3f662
ExitBattle: ; 3f69e
- call Function3f6a5
+ call .HandleEndOfBattle
call CleanUpBattleRAM
ret
; 3f6a5
-Function3f6a5: ; 3f6a5
+.HandleEndOfBattle: ; 3f6a5
ld a, [wLinkMode]
and a
jr z, .not_linked
call ShowLinkBattleParticipantsAfterEnd
ld c, 150
call DelayFrames
- call Function3f77c
+ call DetermineMobileBattleResult
ret
.not_linked
@@ -8746,14 +8722,14 @@ Function3f6a5: ; 3f6a5
ret nz
call CheckPayDay
xor a
- ld [wd1e9], a
+ ld [wForceEvolution], a
predef EvolveAfterBattle
- callba Function2ed44
+ callba GivePokerusAndConvertBerries
ret
; 3f6d0
CleanUpBattleRAM: ; 3f6d0
- call Function3f998
+ call BattleEnd_HandleRoamMons
xor a
ld [Danger], a
ld [wBattleMode], a
@@ -8764,7 +8740,7 @@ CleanUpBattleRAM: ; 3f6d0
ld [wFailedToFlee], a
ld [wNumFleeAttempts], a
ld [wForcedSwitch], a
- ld [wd0d8], a
+ ld [wPartyMenuCursor], a
ld [wKeyItemsPocketCursor], a
ld [wItemsPocketCursor], a
ld [wd0d2], a
@@ -8803,16 +8779,15 @@ CheckPayDay: ; 3f71d
rl [hl]
jr nc, .okay
ld a, $ff
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
.okay
ld hl, wPayDayMoney + 2
ld de, Money + 2
call AddBattleMoneyToAccount
- ld hl, BattleText_PlayerPickuedUpPayDayMoney
+ ld hl, BattleText_PlayerPickedUpPayDayMoney
call StdBattleTextBox
ld a, [InBattleTowerBattle]
bit 0, a
@@ -8835,7 +8810,7 @@ ShowLinkBattleParticipantsAfterEnd: ; 3f759
ret
; 3f77c
-Function3f77c: ; 3f77c
+DetermineMobileBattleResult: ; 3f77c
callba CheckMobileBattleError
jp c, .Mobile_InvalidBattle
call IsMobileBattle2
@@ -8937,7 +8912,7 @@ DisplayLinkRecord: ; 3f836
xor a
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
- call Function3200
+ call WaitBGMap2
ld b, SCGB_08
call GetSGBLayout
call SetPalettes
@@ -9083,19 +9058,19 @@ Function3f85f: ; 3f85f
; 3f998
-Function3f998: ; 3f998
+BattleEnd_HandleRoamMons: ; 3f998
ld a, [BattleType]
cp BATTLETYPE_ROAMING
- jr nz, .asm_3f9c4
+ jr nz, .not_roaming
ld a, [wBattleResult]
and $f
- jr z, .asm_3f9af
+ jr z, .caught_or_defeated_roam_mon
call GetRoamMonHP
ld a, [EnemyMonHP + 1]
ld [hl], a
- jr .asm_3f9ca
+ jr .update_roam_mons
-.asm_3f9af
+.caught_or_defeated_roam_mon
call GetRoamMonHP
ld [hl], $0
call GetRoamMonMapGroup
@@ -9106,12 +9081,12 @@ Function3f998: ; 3f998
ld [hl], $0
ret
-.asm_3f9c4
+.not_roaming
call BattleRandom
and $f
ret nz
-.asm_3f9ca
+.update_roam_mons
callab UpdateRoamMons
ret
; 3f9d1
@@ -9205,13 +9180,11 @@ Function3fa42: ; 3fa42
ld d, 5
.loop
push hl
-rept 2
inc hl
-endr
+ inc hl
ld a, [hl]
-rept 2
dec hl
-endr
+ dec hl
and a
jr z, .copy
push de
@@ -9311,18 +9284,16 @@ Function3fac8: ; 3fac8
ld c, $1
.loop2
ld a, b
-rept 2
add b
-endr
+ add b
ld e, a
ld d, $0
ld hl, wd002
add hl, de
push hl
ld a, c
-rept 2
add c
-endr
+ add c
ld e, a
ld d, $0
ld hl, wd002
@@ -9427,7 +9398,7 @@ InitBattleDisplay: ; 3fb6c
call WaitBGMap
xor a
ld [hBGMapMode], a
- callba SlideBattlePics
+ callba BattleIntroSlidingPics
ld a, $1
ld [hBGMapMode], a
ld a, $31
@@ -9440,7 +9411,7 @@ InitBattleDisplay: ; 3fb6c
ld [rWY], a
call WaitBGMap
call HideSprites
- ld b, SCGB_01
+ ld b, SCGB_BATTLE_COLORS
call GetSGBLayout
call SetPalettes
ld a, $90
@@ -9456,12 +9427,12 @@ InitBattleDisplay: ; 3fb6c
ld a, $6
ld [rSVBK], a
- ld hl, w6_d000
- ld bc, w6_d400 - w6_d000
+ ld hl, wDecompressScratch
+ ld bc, wBackupAttrMap - wDecompressScratch
ld a, " "
call ByteFill
- ld de, w6_d000
+ ld de, wDecompressScratch
hlbgcoord 0, 0
lb bc, BANK(.BlankBGMap), $40
call Request2bpp
@@ -9479,7 +9450,7 @@ InitBattleDisplay: ; 3fb6c
GetTrainerBackpic: ; 3fbff
-; Load the player character's backpic (6x6) into VRAM starting from $9310.
+; Load the player character's backpic (6x6) into VRAM starting from VTiles2 tile $31.
; Special exception for Dude.
ld b, BANK(DudeBackpic)
@@ -9594,11 +9565,11 @@ BattleStartMessage: ; 3fc8b
jr nc, .not_shiny
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld a, 1
ld [hBattleTurn], a
ld a, 1
- ld [wKickCounter], a
+ ld [wBattleAnimParam], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
@@ -9613,7 +9584,7 @@ BattleStartMessage: ; 3fc8b
ld d, $0
ld e, ANIM_MON_NORMAL
predef AnimateFrontpic
- jr .skip_cry
+ jr .skip_cry ; cry is played during the animation
.cry_no_anim
ld a, $0f
@@ -9626,7 +9597,7 @@ BattleStartMessage: ; 3fc8b
cp BATTLETYPE_FISH
jr nz, .NotFishing
- callba MobileFn_106086
+ callba MobileFn_106086 ; update fishing records?
ld hl, HookedPokemonAttackedText
jr .PlaceBattleStartText
@@ -9642,7 +9613,7 @@ BattleStartMessage: ; 3fc8b
.PlaceBattleStartText
push hl
- callba Function2c000
+ callba BattleStart_TrainerHuds
pop hl
call StdBattleTextBox
diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm
index 506dc9746..0425cda5d 100644
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -1,11 +1,12 @@
DoPlayerTurn: ; 34000
call SetPlayerTurn
- ld a, [wd0ec]
+ ld a, [wPlayerAction]
and a
ret nz
jr DoTurn
+
; 3400a
@@ -50,9 +51,8 @@ DoMove: ; 3402c
ld c, a
ld b, 0
ld hl, MoveEffectsPointers
-rept 2
add hl, bc
-endr
+ add hl, bc
ld a, BANK(MoveEffectsPointers)
call GetFarHalfword
@@ -101,9 +101,8 @@ endr
ld c, a
ld b, 0
ld hl, BattleCommandPointers
-rept 2
add hl, bc
-endr
+ add hl, bc
pop bc
ld a, BANK(BattleCommandPointers)
@@ -115,6 +114,7 @@ endr
.DoMoveEffectCommand
jp [hl]
+
; 34084
@@ -172,7 +172,7 @@ CheckPlayerTurn:
jr z, .woke_up
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_SLP
call FarPlayBattleAnimation
jr .fast_asleep
@@ -276,7 +276,7 @@ CheckPlayerTurn:
ld hl, IsConfusedText
call StdBattleTextBox
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_CONFUSED
call FarPlayBattleAnimation
@@ -305,7 +305,7 @@ CheckPlayerTurn:
ld hl, InLoveWithText
call StdBattleTextBox
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_IN_LOVE
call FarPlayBattleAnimation
@@ -352,6 +352,7 @@ CheckPlayerTurn:
call StdBattleTextBox
call CantMove
jp EndTurn
+
; 341f0
@@ -380,6 +381,7 @@ CantMove: ; 341f0
res SUBSTATUS_UNDERGROUND, [hl]
res SUBSTATUS_FLYING, [hl]
jp AppearUserRaiseSub
+
; 34216
@@ -388,6 +390,7 @@ OpponentCantMove: ; 34216
call BattleCommand_SwitchTurn
call CantMove
jp BattleCommand_SwitchTurn
+
; 3421f
@@ -420,7 +423,7 @@ CheckEnemyTurn: ; 3421f
ld hl, FastAsleepText
call StdBattleTextBox
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_SLP
call FarPlayBattleAnimation
jr .fast_asleep
@@ -521,7 +524,7 @@ CheckEnemyTurn: ; 3421f
call StdBattleTextBox
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_CONFUSED
call FarPlayBattleAnimation
@@ -542,7 +545,7 @@ CheckEnemyTurn: ; 3421f
call BattleCommand_DamageCalc
call BattleCommand_LowerSub
xor a
- ld [wcfca], a
+ ld [wNumHits], a
; Flicker the monster pic unless flying or underground.
ld de, ANIM_HIT_CONFUSION
@@ -567,7 +570,7 @@ CheckEnemyTurn: ; 3421f
ld hl, InLoveWithText
call StdBattleTextBox
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld de, ANIM_IN_LOVE
call FarPlayBattleAnimation
@@ -623,6 +626,7 @@ EndTurn: ; 34385
ld a, $1
ld [wTurnEnded], a
jp ResetDamage
+
; 3438d
@@ -640,6 +644,7 @@ MoveDisabled: ; 3438d
ld hl, DisabledMoveText
jp StdBattleTextBox
+
; 343a5
@@ -656,7 +661,7 @@ HitConfusion: ; 343a5
call BattleCommand_LowerSub
xor a
- ld [wcfca], a
+ ld [wNumHits], a
; Flicker the monster pic unless flying or underground.
ld de, ANIM_HIT_CONFUSION
@@ -672,6 +677,7 @@ HitConfusion: ; 343a5
ld c, $1
call PlayerHurtItself
jp BattleCommand_RaiseSub
+
; 343db
@@ -821,7 +827,7 @@ BattleCommand_CheckObedience: ; 343db
ld hl, WontObeyText
call StdBattleTextBox
call HitConfusion
- jp .asm_3450c
+ jp .EndDisobedience
.Nap
@@ -857,7 +863,7 @@ BattleCommand_CheckObedience: ; 343db
.Print
call StdBattleTextBox
- jp .asm_3450c
+ jp .EndDisobedience
.UseInstead
@@ -912,7 +918,7 @@ BattleCommand_CheckObedience: ; 343db
ld a, 1
ld [AlreadyDisobeyed], a
- ld a, [wcfa3]
+ ld a, [w2DMenuNumRows]
ld b, a
; Save the move we originally picked for afterward.
@@ -962,7 +968,7 @@ BattleCommand_CheckObedience: ; 343db
ld [CurMoveNum], a
-.asm_3450c
+.EndDisobedience
xor a
ld [LastPlayerMove], a
ld [LastEnemyCounterMove], a
@@ -974,6 +980,7 @@ BattleCommand_CheckObedience: ; 343db
ld [PlayerEncoreCount], a
jp EndMoveEffect
+
; 3451f
@@ -1003,6 +1010,7 @@ IgnoreSleepOnly: ; 3451f
scf
ret
+
; 34541
@@ -1010,6 +1018,7 @@ BattleCommand_UsedMoveText: ; 34541
; usedmovetext
callba DisplayUsedMoveText
ret
+
; 34548
@@ -1023,6 +1032,7 @@ CheckUserIsCharging: ; 34548
.end
and a
ret
+
; 34555
@@ -1064,9 +1074,8 @@ BattleCommand_DoTurn: ; 34555
jp nz, EndMoveEffect
; SubStatus5
-rept 2
inc de
-endr
+ inc de
ld a, [de]
bit SUBSTATUS_TRANSFORMED, a
@@ -1151,6 +1160,7 @@ endr
call StdBattleTextBox
ld b, 1
ret
+
; 34602
.continuousmoves ; 34602
@@ -1194,6 +1204,7 @@ CheckMimicUsed: ; 3460b
.mimic
and a
ret
+
; 34631
@@ -1262,9 +1273,8 @@ BattleCommand_Critical: ; 34631
jr nc, .ScopeLens
; +2 critical level
-rept 2
inc c
-endr
+ inc c
.ScopeLens
push bc
@@ -1324,6 +1334,7 @@ BattleCommand_TripleKick: ; 346b2
ld [hld], a
ld [hl], a
ret
+
; 346cd
@@ -1333,6 +1344,7 @@ BattleCommand_KickCounter: ; 346cd
ld hl, wKickCounter
inc [hl]
ret
+
; 346d2
@@ -1506,9 +1518,8 @@ BattleCommand_Stab: ; 346d2
pop hl
.SkipType
-rept 2
inc hl
-endr
+ inc hl
jr .TypesLoop
.end
@@ -1520,6 +1531,7 @@ endr
or b
ld [TypeModifier], a
ret
+
; 347c8
@@ -1558,6 +1570,7 @@ CheckTypeMatchup: ; 347d3
bit SUBSTATUS_IDENTIFIED, a
jr nz, .End
jr .TypesLoop
+
.Next
cp d
jr nz, .Nope
@@ -1567,11 +1580,13 @@ CheckTypeMatchup: ; 347d3
cp c
jr z, .Yup
jr .Nope2
+
.Nope
inc hl
.Nope2
inc hl
jr .TypesLoop
+
.Yup
xor a
ld [hDividend + 0], a
@@ -1597,6 +1612,7 @@ CheckTypeMatchup: ; 347d3
pop de
pop hl
ret
+
; 34833
@@ -1618,6 +1634,7 @@ BattleCommand_ResetTypeMatchup: ; 34833
.reset
ld [wTypeMatchup], a
ret
+
; 3484e
INCLUDE "battle/ai/switch.asm"
@@ -1679,6 +1696,7 @@ BattleCommand_DamageVariation: ; 34cfd
ld a, [hQuotient + 2]
ld [hl], a
ret
+
; 34d32
@@ -1729,16 +1747,16 @@ BattleCommand_CheckHit: ; 34d32
cp HELD_BRIGHTPOWDER
ld a, c ; % miss
pop bc
- jr nz, .asm_34d81
+ jr nz, .skip_brightpowder
ld c, a
ld a, b
sub c
ld b, a
- jr nc, .asm_34d81
+ jr nc, .skip_brightpowder
ld b, 0
-.asm_34d81
+.skip_brightpowder
ld a, b
cp $ff
jr z, .Hit
@@ -1834,7 +1852,7 @@ BattleCommand_CheckHit: ; 34d32
.DrainSub
; Return z if using an HP drain move on a substitute.
call CheckSubstituteOpp
- jr z, .asm_34e00
+ jr z, .not_draining_sub
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
@@ -1844,7 +1862,7 @@ BattleCommand_CheckHit: ; 34d32
cp EFFECT_DREAM_EATER
ret z
-.asm_34e00
+.not_draining_sub
ld a, 1
and a
ret
@@ -1916,7 +1934,7 @@ BattleCommand_CheckHit: ; 34d32
ld a, [EnemyEvaLevel]
ld c, a
- jr z, .asm_34e60
+ jr z, .got_acc_eva
ld hl, wEnemyMoveStruct + MOVE_ACC
ld a, [EnemyAccLevel]
@@ -1924,17 +1942,17 @@ BattleCommand_CheckHit: ; 34d32
ld a, [PlayerEvaLevel]
ld c, a
-.asm_34e60
+.got_acc_eva
cp b
- jr c, .asm_34e6b
+ jr c, .eva_less_than_acc
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVar
bit SUBSTATUS_IDENTIFIED, a
ret nz
-.asm_34e6b
- ld a, $e
+.eva_less_than_acc
+ ld a, 14
sub c
ld c, a
xor a
@@ -1943,9 +1961,9 @@ BattleCommand_CheckHit: ; 34d32
ld a, [hl]
ld [hMultiplicand + 2], a
push hl
- ld d, $2
+ ld d, 2
-.asm_34e7a
+.accuracy_loop
push bc
ld hl, .AccProb
dec b
@@ -1959,29 +1977,29 @@ BattleCommand_CheckHit: ; 34d32
call Multiply
ld a, [hl]
ld [hDivisor], a
- ld b, $4
+ ld b, 4
call Divide
ld a, [hQuotient + 2]
ld b, a
ld a, [hQuotient + 1]
or b
- jr nz, .asm_34ea2
+ jr nz, .min_accuracy
ld [hQuotient + 1], a
ld a, $1
ld [hQuotient + 2], a
-.asm_34ea2
+.min_accuracy
ld b, c
dec d
- jr nz, .asm_34e7a
+ jr nz, .accuracy_loop
ld a, [hQuotient + 1]
and a
ld a, [hQuotient + 2]
- jr z, .asm_34eaf
+ jr z, .finish_accuracy
ld a, $ff
-.asm_34eaf
+.finish_accuracy
pop hl
ld [hl], a
ret
@@ -2016,9 +2034,9 @@ BattleCommand_EffectChance: ; 34ecc
ld hl, wPlayerMoveStruct + MOVE_CHANCE
ld a, [hBattleTurn]
and a
- jr z, .asm_34ee1
+ jr z, .got_move_chance
ld hl, wEnemyMoveStruct + MOVE_CHANCE
-.asm_34ee1
+.got_move_chance
call BattleRandom
cp [hl]
@@ -2030,6 +2048,7 @@ BattleCommand_EffectChance: ; 34ecc
ld [EffectFailed], a
and a
ret
+
; 34eee
@@ -2071,7 +2090,7 @@ BattleCommand_LowerSub: ; 34eee
jr c, .mimic_anims
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
inc a
ld [wKickCounter], a
@@ -2100,6 +2119,7 @@ BattleCommand_LowerSub: ; 34eee
ld a, 0
ld [wc73e], a
ret
+
; 34f57
@@ -2108,6 +2128,7 @@ BattleCommand_HitTarget: ; 34f57
call BattleCommand_LowerSub
call BattleCommand_HitTargetNoSub
jp BattleCommand_RaiseSub
+
; 34f60
@@ -2125,7 +2146,7 @@ BattleCommand_HitTargetNoSub: ; 34f60
ld a, BATTLEANIM_PLAYER_DAMAGE
.got_rollout_count
- ld [wcfca], a
+ ld [wNumHits], a
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_MULTI_HIT
@@ -2159,6 +2180,7 @@ BattleCommand_HitTargetNoSub: ; 34f60
.fly_dig
; clear sprite
jp AppearUserLowerSub
+
.multihit
.conversion
.doublehit
@@ -2177,8 +2199,9 @@ BattleCommand_HitTargetNoSub: ; 34f60
pop af
jp z, PlayFXAnimID
xor a
- ld [wcfca], a
+ ld [wNumHits], a
jp PlayFXAnimID
+
; 34fd1
@@ -2189,6 +2212,7 @@ BattleCommand_StatUpAnim: ; 34fd1
xor a
jr BattleCommand_StatUpDownAnim
+
; 34fdb
@@ -2208,7 +2232,7 @@ BattleCommand_StatDownAnim: ; 34fdb
BattleCommand_StatUpDownAnim: ; 34feb
- ld [wcfca], a
+ ld [wNumHits], a
xor a
ld [wKickCounter], a
ld a, BATTLE_VARS_MOVE_ANIM
@@ -2216,6 +2240,7 @@ BattleCommand_StatUpDownAnim: ; 34feb
ld e, a
ld d, 0
jp PlayFXAnimID
+
; 34ffd
@@ -2226,6 +2251,7 @@ BattleCommand_SwitchTurn: ; 34ffd
xor 1
ld [hBattleTurn], a
ret
+
; 35004
@@ -2241,12 +2267,13 @@ BattleCommand_RaiseSub: ; 35004
jp c, BattleCommand_RaiseSubNoAnim
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
ld a, $2
ld [wKickCounter], a
ld a, SUBSTITUTE
jp LoadAnim
+
; 35023
@@ -2291,6 +2318,7 @@ BattleCommand_FailureText: ; 35023
res SUBSTATUS_FLYING, [hl]
call AppearUserRaiseSub
jp EndMoveEffect
+
; 3505e
@@ -2382,6 +2410,7 @@ BattleCommand_CheckFaint: ; 3505e
inc de
ld [de], a
ret
+
; 350e4
@@ -2452,6 +2481,7 @@ FailText_CheckOpponentProtect: ; 35157
ld l, e
.not_protected
jp StdBattleTextBox
+
; 35165
@@ -2464,6 +2494,7 @@ BattleCommanda5: ; 35165
and $7f
jp z, PrintDoesntAffect
jp PrintButItFailed
+
; 35175
@@ -2512,6 +2543,7 @@ BattleCommand_StartLoop: ; 35197
xor a
ld [hl], a
ret
+
; 351a5
@@ -2539,6 +2571,7 @@ BattleCommand_SuperEffectiveText: ; 351ad
ld hl, NotVeryEffectiveText
.print
jp StdBattleTextBox
+
; 351c0
@@ -2550,10 +2583,10 @@ BattleCommand_CheckDestinyBond: ; 351c0
ld hl, EnemyMonHP
ld a, [hBattleTurn]
and a
- jr z, .asm_351cb
+ jr z, .got_hp
ld hl, BattleMonHP
-.asm_351cb
+.got_hp
ld a, [hli]
or [hl]
ret nz
@@ -2561,7 +2594,7 @@ BattleCommand_CheckDestinyBond: ; 351c0
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVar
bit SUBSTATUS_DESTINY_BOND, a
- jr z, .asm_35231
+ jr z, .no_dbond
ld hl, TookDownWithItText
call StdBattleTextBox
@@ -2571,13 +2604,13 @@ BattleCommand_CheckDestinyBond: ; 351c0
ld hl, EnemyMonMaxHP + 1
bccoord 2, 2 ; hp bar
ld a, 0
- jr nz, .asm_351f2
+ jr nz, .got_max_hp
ld hl, BattleMonMaxHP + 1
bccoord 10, 9 ; hp bar
ld a, 1
-.asm_351f2
- ld [wd10a], a
+.got_max_hp
+ ld [wWhichHPBar], a
ld a, [hld]
ld [Buffer1], a
ld a, [hld]
@@ -2599,7 +2632,7 @@ BattleCommand_CheckDestinyBond: ; 351c0
call BattleCommand_SwitchTurn
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
inc a
ld [wKickCounter], a
@@ -2607,27 +2640,28 @@ BattleCommand_CheckDestinyBond: ; 351c0
call LoadAnim
call BattleCommand_SwitchTurn
- jr .asm_3524d ; 3522f $1c
+ jr .finish
-.asm_35231
+.no_dbond
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_MULTI_HIT
- jr z, .asm_3524a
+ jr z, .multiple_hit_raise_sub
cp EFFECT_DOUBLE_HIT
- jr z, .asm_3524a
+ jr z, .multiple_hit_raise_sub
cp EFFECT_TWINEEDLE
- jr z, .asm_3524a
+ jr z, .multiple_hit_raise_sub
cp EFFECT_TRIPLE_KICK
- jr z, .asm_3524a
+ jr z, .multiple_hit_raise_sub
cp EFFECT_BEAT_UP
- jr nz, .asm_3524d
+ jr nz, .finish
-.asm_3524a
+.multiple_hit_raise_sub
call BattleCommand_RaiseSub
-.asm_3524d
+.finish
jp EndMoveEffect
+
; 35250
@@ -2635,6 +2669,7 @@ BattleCommand_BuildOpponentRage: ; 35250
; buildopponentrage
jp .start
+
.start
ld a, [AttackMissed]
and a
@@ -2660,6 +2695,7 @@ BattleCommand_BuildOpponentRage: ; 35250
ld hl, RageBuildingText
call StdBattleTextBox
jp BattleCommand_SwitchTurn
+
; 3527b
@@ -2675,21 +2711,22 @@ BattleCommand_RageDamage: ; 3527b
ld a, [hBattleTurn]
and a
ld a, [wPlayerRageCounter]
- jr z, .asm_35290
+ jr z, .rage_loop
ld a, [wEnemyRageCounter]
-.asm_35290
+.rage_loop
and a
- jr z, .asm_3529a
+ jr z, .done
dec a
add hl, bc
- jr nc, .asm_35290
+ jr nc, .rage_loop
ld hl, -1
-.asm_3529a
+.done
ld a, h
ld [CurDamage], a
ld a, l
ld [CurDamage + 1], a
ret
+
; 352a3
@@ -2699,11 +2736,11 @@ EndMoveEffect: ; 352a3
ld a, [BattleScriptBufferLoc + 1]
ld h, a
ld a, $ff
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
ret
+
; 352b1
@@ -2736,12 +2773,13 @@ DittoMetalPowder: ; 352b1
srl b
ld a, b
and a
- jr nz, .asm_352d8
+ jr nz, .done
inc b
-.asm_352d8
+.done
scf
rr c
ret
+
; 352dc
@@ -2837,6 +2875,7 @@ PlayerAttackDamage: ; 352e2
ld a, 1
and a
ret
+
; 3534d
@@ -2882,6 +2921,7 @@ TruncateHL_BC: ; 3534d
.done
ld b, l
ret
+
; 35378
@@ -2936,6 +2976,7 @@ GetDamageStats: ; 3537e
pop bc
pop hl
ret
+
; 353b5
@@ -2953,6 +2994,7 @@ ThickClubBoost: ; 353b5
pop de
pop bc
ret
+
; 353c3
@@ -2970,6 +3012,7 @@ LightBallBoost: ; 353c3
pop de
pop bc
ret
+
; 353d1
@@ -3012,6 +3055,7 @@ SpeciesItemBoost: ; 353d1
sla l
rl h
ret
+
; 353f6
@@ -3092,6 +3136,7 @@ EnemyAttackDamage: ; 353f6
ld a, 1
and a
ret
+
; 35461
@@ -3275,12 +3320,14 @@ BattleCommand_BeatUp: ; 35461
ld a, [wEnemyMoveStruct + MOVE_POWER]
ld d, a
ret
+
; 355b0
.beatup_fail: ; 355b0
ld b, buildopponentrage_command
jp SkipToBattleCommand
+
; 355b5
@@ -3290,6 +3337,7 @@ BattleCommanda8: ; 355b5
ret nz
jp PrintButItFailed
+
; 355bd
@@ -3300,10 +3348,10 @@ GetBeatupMonLocation: ; 355bd
ld a, [hBattleTurn]
and a
ld hl, PartyMon1Species
- jr z, .asm_355cc
+ jr z, .got_species
ld hl, OTPartyMon1Species
-.asm_355cc
+.got_species
ld a, [wd002]
add hl, bc
call GetPartyLocation
@@ -3318,6 +3366,7 @@ BattleCommand_ClearMissDamage: ; 355d5
ret z
jp ResetDamage
+
; 355dd
@@ -3356,6 +3405,7 @@ endr
pop af
ld e, a
ret
+
; 35612
@@ -3401,9 +3451,8 @@ BattleCommand_DamageCalc: ; 35612
xor a
ld hl, hDividend
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
; Level * 2
@@ -3424,9 +3473,8 @@ endr
pop bc
; + 2
-rept 2
inc [hl]
-endr
+ inc [hl]
; * bp
inc hl
@@ -3592,6 +3640,7 @@ endr
ld [hProduct + 3], a
ret
+
; 35703
@@ -3659,18 +3708,18 @@ BattleCommand_ConstantDamage: ; 35726
.psywave_loop
call BattleRandom
and a
- jr z, .psywave_loop ; 35761 $fa
+ jr z, .psywave_loop
cp b
- jr nc, .psywave_loop ; 35764 $f7
+ jr nc, .psywave_loop
ld b, a
ld a, $0
- jr .got_power ; 35769 $21
+ jr .got_power
.super_fang
ld hl, EnemyMonHP
ld a, [hBattleTurn]
and a
- jr z, .got_hp ; 35771 $3
+ jr z, .got_hp
ld hl, BattleMonHP
.got_hp
ld a, [hli]
@@ -3682,12 +3731,12 @@ BattleCommand_ConstantDamage: ; 35726
ld a, b
pop bc
and a
- jr nz, .got_power ; 35781 $9
+ jr nz, .got_power
or b
ld a, $0
- jr nz, .got_power ; 35786 $4
+ jr nz, .got_power
ld b, $1
- jr .got_power ; 3578a $0
+ jr .got_power
.got_power
ld hl, CurDamage
@@ -3699,7 +3748,7 @@ BattleCommand_ConstantDamage: ; 35726
ld hl, BattleMonHP
ld a, [hBattleTurn]
and a
- jr z, .reversal_got_hp ; 35798 $3
+ jr z, .reversal_got_hp
ld hl, EnemyMonHP
.reversal_got_hp
xor a
@@ -3844,6 +3893,7 @@ BattleCommand_Counter: ; 35813
xor a
ld [AttackMissed], a
ret
+
; 35864
@@ -3870,12 +3920,12 @@ BattleCommand_Encore: ; 35864
jp z, .failed
ld b, a
-.asm_3588e
+.got_move
ld a, [hli]
cp b
- jr nz, .asm_3588e
+ jr nz, .got_move
- ld bc, $0005
+ ld bc, BattleMonPP - BattleMonMoves - 1
add hl, bc
ld a, [hl]
and $3f
@@ -3895,33 +3945,32 @@ rept 3
endr
ld [de], a
call CheckOpponentWentFirst
- jr nz, .asm_3591a
+ jr nz, .finish_move
ld a, [hBattleTurn]
and a
- jr z, .asm_358ef
+ jr z, .force_last_enemy_move
push hl
ld a, [LastPlayerMove]
ld b, a
ld c, 0
ld hl, BattleMonMoves
-.asm_358cc
+.find_player_move
ld a, [hli]
cp b
- jr z, .asm_358dd
+ jr z, .got_player_move
inc c
ld a, c
cp NUM_MOVES
- jr c, .asm_358cc
+ jr c, .find_player_move
pop hl
res SUBSTATUS_ENCORED, [hl]
xor a
ld [de], a
jr .failed
-.asm_358dd
+.got_player_move
pop hl
-
ld a, c
ld [CurMoveNum], a
ld a, b
@@ -3929,30 +3978,30 @@ endr
dec a
ld de, wPlayerMoveStruct
call GetMoveData
- jr .asm_3591a
+ jr .finish_move
-.asm_358ef
+.force_last_enemy_move
push hl
ld a, [LastEnemyMove]
ld b, a
ld c, 0
ld hl, EnemyMonMoves
-.asm_358f9
+.find_enemy_move
ld a, [hli]
cp b
- jr z, .asm_3590a
+ jr z, .got_enemy_move
inc c
ld a, c
cp NUM_MOVES
- jr c, .asm_358f9
+ jr c, .find_enemy_move
pop hl
res SUBSTATUS_ENCORED, [hl]
xor a
ld [de], a
jr .failed
-.asm_3590a
- pop hl
+.got_enemy_move
+ pop hl
ld a, c
ld [CurEnemyMoveNum], a
ld a, b
@@ -3961,13 +4010,14 @@ endr
ld de, wEnemyMoveStruct
call GetMoveData
-.asm_3591a
+.finish_move
call AnimateCurrentMove
ld hl, GotAnEncoreText
jp StdBattleTextBox
.failed
jp PrintDidntAffect2
+
; 35926
@@ -3976,15 +4026,15 @@ BattleCommand_PainSplit: ; 35926
ld a, [AttackMissed]
and a
- jp nz, PainSplit_PrintButItFailed
+ jp nz, .ButItFailed
call CheckSubstituteOpp
- jp nz, PainSplit_PrintButItFailed
+ jp nz, .ButItFailed
call AnimateCurrentMove
ld hl, BattleMonMaxHP + 1
ld de, EnemyMonMaxHP + 1
call .PlayerShareHP
ld a, $1
- ld [wd10a], a
+ ld [wWhichHPBar], a
hlcoord 10, 9
predef AnimateHPBar
ld hl, EnemyMonHP
@@ -3998,7 +4048,7 @@ BattleCommand_PainSplit: ; 35926
ld [Buffer1], a
call .EnemyShareHP
xor a
- ld [wd10a], a
+ ld [wWhichHPBar], a
call ResetDamage
hlcoord 2, 2
predef AnimateHPBar
@@ -4017,9 +4067,8 @@ BattleCommand_PainSplit: ; 35926
ld [Buffer3], a
ld a, [hl]
ld [Buffer4], a
-rept 2
dec de
-endr
+ dec de
ld a, [de]
dec de
add b
@@ -4062,10 +4111,12 @@ endr
ld [hli], a
ld [Buffer6], a
ret
+
; 359cd
-PainSplit_PrintButItFailed: ; 359cd
+.ButItFailed
jp PrintDidntAffect2
+
; 359d0
@@ -4080,6 +4131,7 @@ BattleCommand_Snore: ; 359d0
ld [AttackMissed], a
call FailSnore
jp EndMoveEffect
+
; 359e6
@@ -4088,17 +4140,17 @@ BattleCommand_Conversion2: ; 359e6
ld a, [AttackMissed]
and a
- jr nz, .asm_35a50
+ jr nz, .failed
ld hl, BattleMonType1
ld a, [hBattleTurn]
and a
- jr z, .asm_359f7
+ jr z, .got_type
ld hl, EnemyMonType1
-.asm_359f7
+.got_type
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
and a
- jr z, .asm_35a50
+ jr z, .failed
push hl
dec a
ld hl, Moves + MOVE_TYPE
@@ -4106,20 +4158,20 @@ BattleCommand_Conversion2: ; 359e6
ld d, a
pop hl
cp CURSE_T
- jr z, .asm_35a50
+ jr z, .failed
call AnimateCurrentMove
call BattleCommand_SwitchTurn
-.asm_35a13
+.loop
call BattleRandom
and $1f
cp UNUSED_TYPES
- jr c, .asm_35a24
+ jr c, .okay
cp UNUSED_TYPES_END
- jr c, .asm_35a13
+ jr c, .loop
cp TYPES_END
- jr nc, .asm_35a13
-.asm_35a24
+ jr nc, .loop
+.okay
ld [hli], a
ld [hld], a
push hl
@@ -4136,7 +4188,7 @@ BattleCommand_Conversion2: ; 359e6
pop hl
ld a, [wTypeMatchup]
cp 10
- jr nc, .asm_35a13
+ jr nc, .loop
call BattleCommand_SwitchTurn
ld a, [hl]
@@ -4145,8 +4197,9 @@ BattleCommand_Conversion2: ; 359e6
ld hl, TransformedTypeText
jp StdBattleTextBox
-.asm_35a50
+.failed
jp FailConversion2
+
; 35a53
@@ -4171,6 +4224,7 @@ BattleCommand_LockOn: ; 35a53
.fail
call AnimateFailedMove
jp PrintDidntAffect
+
; 35a74
@@ -4291,6 +4345,7 @@ BattleCommand_Sketch: ; 35a74
.fail
call AnimateFailedMove
jp PrintDidntAffect
+
; 35b16
@@ -4319,6 +4374,7 @@ BattleCommand_DefrostOpponent: ; 35b16
pop hl
ld [hl], a
ret
+
; 35b33
@@ -4334,11 +4390,11 @@ BattleCommand_SleepTalk: ; 35b33
ld hl, BattleMonMoves + 1
ld a, [DisabledMove]
ld d, a
- jr z, .asm_35b4f
+ jr z, .got_moves
ld hl, EnemyMonMoves + 1
ld a, [EnemyDisabledMove]
ld d, a
-.asm_35b4f
+.got_moves
ld a, BATTLE_VARS_STATUS
call GetBattleVar
and SLP
@@ -4346,10 +4402,10 @@ BattleCommand_SleepTalk: ; 35b33
ld a, [hl]
and a
jr z, .fail
- call .asm_35ba9
+ call .safely_check_has_usable_move
jr c, .fail
dec hl
-.asm_35b62
+.sample_move
push hl
call BattleRandom
and 3 ; TODO factor in NUM_MOVES
@@ -4359,17 +4415,17 @@ BattleCommand_SleepTalk: ; 35b33
ld a, [hl]
pop hl
and a
- jr z, .asm_35b62
+ jr z, .sample_move
ld e, a
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
cp e
- jr z, .asm_35b62
+ jr z, .sample_move
ld a, e
cp d
- jr z, .asm_35b62
- call .asm_35bdf
- jr z, .asm_35b62
+ jr z, .sample_move
+ call .check_two_turn_move
+ jr z, .sample_move
ld a, BATTLE_VARS_MOVE
call GetBattleVarAddr
ld a, e
@@ -4390,57 +4446,57 @@ BattleCommand_SleepTalk: ; 35b33
call AnimateFailedMove
jp TryPrintButItFailed
-.asm_35ba9
+.safely_check_has_usable_move
push hl
push de
push bc
- call .asm_35bb3
+ call .check_has_usable_move
pop bc
pop de
pop hl
ret
-.asm_35bb3
+.check_has_usable_move
ld a, [hBattleTurn]
and a
ld a, [DisabledMove]
- jr z, .asm_35bbe
+ jr z, .got_move_2
ld a, [EnemyDisabledMove]
-.asm_35bbe
+.got_move_2
ld b, a
ld a, BATTLE_VARS_MOVE
call GetBattleVar
ld c, a
dec hl
ld d, NUM_MOVES
-.asm_35bc8
+.loop2
ld a, [hl]
and a
- jr z, .asm_35bdb
+ jr z, .carry
cp c
- jr z, .asm_35bd7
+ jr z, .nope
cp b
- jr z, .asm_35bd7
+ jr z, .nope
- call .asm_35bdf
- jr nz, .asm_35bdd
+ call .check_two_turn_move
+ jr nz, .no_carry
-.asm_35bd7
+.nope
inc hl
dec d
- jr nz, .asm_35bc8
+ jr nz, .loop2
-.asm_35bdb
+.carry
scf
ret
-.asm_35bdd
+.no_carry
and a
ret
-.asm_35bdf
+.check_two_turn_move
push hl
push de
push bc
@@ -4465,6 +4521,7 @@ BattleCommand_SleepTalk: ; 35b33
ret z
cp EFFECT_BIDE
ret
+
; 35bff
@@ -4477,6 +4534,7 @@ BattleCommand_DestinyBond: ; 35bff
call AnimateCurrentMove
ld hl, DestinyBondEffectText
jp StdBattleTextBox
+
; 35c0f
@@ -4485,27 +4543,27 @@ BattleCommand_Spite: ; 35c0f
ld a, [AttackMissed]
and a
- jp nz, .asm_35c91
+ jp nz, .failed
ld bc, PARTYMON_STRUCT_LENGTH ; ????
ld hl, EnemyMonMoves
ld a, [hBattleTurn]
and a
- jr z, .asm_35c24
+ jr z, .got_moves
ld hl, BattleMonMoves
-.asm_35c24
+.got_moves
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
and a
- jr z, .asm_35c91
+ jr z, .failed
cp STRUGGLE
- jr z, .asm_35c91
+ jr z, .failed
ld b, a
ld c, -1
-.asm_35c33
+.loop
inc c
ld a, [hli]
cp b
- jr nz, .asm_35c33
+ jr nz, .loop
ld [wTypeMatchup], a
dec hl
ld b, 0
@@ -4515,21 +4573,20 @@ BattleCommand_Spite: ; 35c0f
pop bc
ld a, [hl]
and $3f
- jr z, .asm_35c91
+ jr z, .failed
push bc
call GetMoveName
call BattleRandom
and 3
-rept 2
inc a
-endr
+ inc a
ld b, a
ld a, [hl]
and $3f
cp b
- jr nc, .asm_35c5b
+ jr nc, .deplete_pp
ld b, a
-.asm_35c5b
+.deplete_pp
ld a, [hl]
sub b
ld [hl], a
@@ -4544,18 +4601,18 @@ endr
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVar
bit SUBSTATUS_TRANSFORMED, a
- jr nz, .asm_35c82
+ jr nz, .transformed
ld a, [hBattleTurn]
and a
- jr nz, .asm_35c81
+ jr nz, .not_wildmon
ld a, [wBattleMode]
dec a
- jr nz, .asm_35c81
- ld hl, wc739
+ jr nz, .not_wildmon
+ ld hl, wWildMonPP
add hl, bc
-.asm_35c81
+.not_wildmon
ld [hl], e
-.asm_35c82
+.transformed
push de
call AnimateCurrentMove
pop de
@@ -4563,8 +4620,10 @@ endr
ld [wTypeMatchup], a
ld hl, SpiteEffectText
jp StdBattleTextBox
-.asm_35c91
+
+.failed
jp PrintDidntAffect2
+
; 35c94
@@ -4574,17 +4633,17 @@ BattleCommand_FalseSwipe: ; 35c94
ld hl, EnemyMonHP
ld a, [hBattleTurn]
and a
- jr z, .asm_35c9f
+ jr z, .got_hp
ld hl, BattleMonHP
-.asm_35c9f
+.got_hp
ld de, CurDamage
- ld c, $2
+ ld c, 2
push hl
push de
call StringCmp
pop de
pop hl
- jr c, .asm_35cc7
+ jr c, .done
ld a, [hli]
ld [de], a
inc de
@@ -4592,23 +4651,25 @@ BattleCommand_FalseSwipe: ; 35c94
dec a
ld [de], a
inc a
- jr nz, .asm_35cba
+ jr nz, .okay
dec de
ld a, [de]
dec a
ld [de], a
-.asm_35cba
+.okay
ld a, [CriticalHit]
cp $2
- jr nz, .asm_35cc5
+ jr nz, .carry
xor a
ld [CriticalHit], a
-.asm_35cc5
+.carry
scf
ret
-.asm_35cc7
+
+.done
and a
ret
+
; 35cc9
@@ -4621,9 +4682,9 @@ BattleCommand_HealBell: ; 35cc9
ld de, PartyMon1Status
ld a, [hBattleTurn]
and a
- jr z, .asm_35cdb
+ jr z, .got_status
ld de, OTPartyMon1Status
-.asm_35cdb
+.got_status
ld a, BATTLE_VARS_STATUS
call GetBattleVarAddr
xor a
@@ -4631,12 +4692,12 @@ BattleCommand_HealBell: ; 35cc9
ld h, d
ld l, e
ld bc, PARTYMON_STRUCT_LENGTH
- ld d, PartyEnd - PartySpecies
-.asm_35ce9
+ ld d, PARTY_LENGTH
+.loop
ld [hl], a
add hl, bc
dec d
- jr nz, .asm_35ce9
+ jr nz, .loop
call AnimateCurrentMove
ld hl, BellChimedText
@@ -4646,6 +4707,7 @@ BattleCommand_HealBell: ; 35cc9
and a
jp z, CalcPlayerStats
jp CalcEnemyStats
+
; 35d00
@@ -4672,6 +4734,7 @@ PlayFXAnimID: ; 35d08
callab PlayBattleAnim
ret
+
; 35d1c
@@ -4729,10 +4792,11 @@ EnemyHurtItself: ; 35d1c
ld [Buffer5], a
hlcoord 2, 2
xor a
- ld [wd10a], a
+ ld [wWhichHPBar], a
predef AnimateHPBar
.did_no_damage
jp RefreshBattleHuds
+
; 35d7e
@@ -4788,10 +4852,11 @@ PlayerHurtItself: ; 35d7e
ld [Buffer1], a
hlcoord 10, 9
ld a, $1
- ld [wd10a], a
+ ld [wWhichHPBar], a
predef AnimateHPBar
.did_no_damage
jp RefreshBattleHuds
+
; 35de0
@@ -4852,6 +4917,7 @@ SelfInflictDamageToSubstitute: ; 35de0
call RefreshBattleHuds
.done
jp ResetDamage
+
; 35e40
@@ -4871,6 +4937,7 @@ UpdateMoveData: ; 35e40
call GetMoveData
call GetMoveName
jp CopyName1
+
; 35e5c
@@ -4944,6 +5011,7 @@ BattleCommand_SleepTarget: ; 35e5c
call AnimateFailedMove
pop hl
jp StdBattleTextBox
+
; 35ece
@@ -4974,6 +5042,7 @@ BattleCommand_SleepTarget: ; 35e5c
.dont_fail
xor a
ret
+
; 35eee
@@ -5011,6 +5080,7 @@ BattleCommand_PoisonTarget: ; 35eee
callba UseHeldStatusHealingItem
ret
+
; 35f2c
@@ -5101,6 +5171,7 @@ BattleCommand_Poison: ; 35f2c
call AnimateFailedMove
pop hl
jp StdBattleTextBox
+
; 35fc0
@@ -5108,6 +5179,7 @@ BattleCommand_Poison: ; 35f2c
call AnimateCurrentMove
call PoisonOpponent
jp RefreshBattleHuds
+
; 35fc9
@@ -5124,6 +5196,7 @@ BattleCommand_Poison: ; 35f2c
call GetBattleVar
cp EFFECT_TOXIC
ret
+
; 35fe1
@@ -5141,6 +5214,7 @@ CheckIfTargetIsPoisonType: ; 35fe1
ld a, [de]
cp POISON
ret
+
; 35ff5
@@ -5149,6 +5223,7 @@ PoisonOpponent: ; 35ff5
call GetBattleVarAddr
set PSN, [hl]
jp UpdateOpponentInParty
+
; 35fff
@@ -5157,6 +5232,7 @@ BattleCommand_DrainTarget: ; 35fff
call SapHealth
ld hl, SuckedHealthText
jp StdBattleTextBox
+
; 36008
@@ -5165,6 +5241,7 @@ BattleCommand_EatDream: ; 36008
call SapHealth
ld hl, DreamEatenText
jp StdBattleTextBox
+
; 36011
@@ -5178,7 +5255,7 @@ SapHealth: ; 36011
rr a
ld [hDividend + 1], a
or b
- jr nz, .ok1 ; 0x36020 $4
+ jr nz, .ok1
ld a, $1
ld [hDividend + 1], a
.ok1
@@ -5186,7 +5263,7 @@ SapHealth: ; 36011
ld de, BattleMonMaxHP
ld a, [hBattleTurn]
and a
- jr z, .battlemonhp ; 0x3602f $6
+ jr z, .battlemonhp
ld hl, EnemyMonHP
ld de, EnemyMonMaxHP
.battlemonhp
@@ -5213,7 +5290,7 @@ SapHealth: ; 36011
adc b
ld [hli], a
ld [Buffer6], a
- jr c, .okay2 ; 0x36056 $c
+ jr c, .okay2
ld a, [hld]
ld b, a
ld a, [de]
@@ -5224,7 +5301,7 @@ SapHealth: ; 36011
ld a, [de]
inc de
sbc b
- jr nc, .okay3 ; 0x36062 $c
+ jr nc, .okay3
.okay2
ld a, [de]
ld [hld], a
@@ -5239,14 +5316,15 @@ SapHealth: ; 36011
and a
hlcoord 10, 9
ld a, $1
- jr z, .hp_bar ; 0x36078 $4
+ jr z, .hp_bar
hlcoord 2, 2
xor a
.hp_bar
- ld [wd10a], a
+ ld [wWhichHPBar], a
predef AnimateHPBar
call RefreshBattleHuds
jp UpdateBattleMonInParty
+
; 3608c
@@ -5254,7 +5332,7 @@ BattleCommand_BurnTarget: ; 3608c
; burntarget
xor a
- ld [wcfca], a
+ ld [wNumHits], a
call CheckSubstituteOpp
ret nz
ld a, BATTLE_VARS_STATUS_OPP
@@ -5290,6 +5368,7 @@ BattleCommand_BurnTarget: ; 3608c
callba UseHeldStatusHealingItem
ret
+
; 360dd
@@ -5317,6 +5396,7 @@ Defrost: ; 360dd
ld hl, DefrostedOpponentText
jp StdBattleTextBox
+
; 36102
@@ -5324,7 +5404,7 @@ BattleCommand_FreezeTarget: ; 36102
; freezetarget
xor a
- ld [wcfca], a
+ ld [wNumHits], a
call CheckSubstituteOpp
ret nz
ld a, BATTLE_VARS_STATUS_OPP
@@ -5372,6 +5452,7 @@ BattleCommand_FreezeTarget: ; 36102
.finish
ld [hl], $1
ret
+
; 36165
@@ -5379,7 +5460,7 @@ BattleCommand_ParalyzeTarget: ; 36165
; paralyzetarget
xor a
- ld [wcfca], a
+ ld [wNumHits], a
call CheckSubstituteOpp
ret nz
ld a, BATTLE_VARS_STATUS_OPP
@@ -5410,6 +5491,7 @@ BattleCommand_ParalyzeTarget: ; 36165
call PrintParalyze
ld hl, UseHeldStatusHealingItem
jp CallBattleCore
+
; 361ac
@@ -5417,58 +5499,72 @@ BattleCommand_AttackUp: ; 361ac
; attackup
ld b, ATTACK
jr BattleCommand_StatUp
+
BattleCommand_DefenseUp: ; 361b0
; defenseup
ld b, DEFENSE
jr BattleCommand_StatUp
+
BattleCommand_SpeedUp: ; 361b4
; speedup
ld b, SPEED
jr BattleCommand_StatUp
+
BattleCommand_SpecialAttackUp: ; 361b8
; specialattackup
ld b, SP_ATTACK
jr BattleCommand_StatUp
+
BattleCommand_SpecialDefenseUp: ; 361bc
; specialdefenseup
ld b, SP_DEFENSE
jr BattleCommand_StatUp
+
BattleCommand_AccuracyUp: ; 361c0
; accuracyup
ld b, ACCURACY
jr BattleCommand_StatUp
+
BattleCommand_EvasionUp: ; 361c4
; evasionup
ld b, EVASION
jr BattleCommand_StatUp
+
BattleCommand_AttackUp2: ; 361c8
; attackup2
ld b, $10 | ATTACK
jr BattleCommand_StatUp
+
BattleCommand_DefenseUp2: ; 361cc
; defenseup2
ld b, $10 | DEFENSE
jr BattleCommand_StatUp
+
BattleCommand_SpeedUp2: ; 361d0
; speedup2
ld b, $10 | SPEED
jr BattleCommand_StatUp
+
BattleCommand_SpecialAttackUp2: ; 361d4
; specialattackup2
ld b, $10 | SP_ATTACK
jr BattleCommand_StatUp
+
BattleCommand_SpecialDefenseUp2: ; 361d8
; specialdefenseup2
ld b, $10 | SP_DEFENSE
jr BattleCommand_StatUp
+
BattleCommand_AccuracyUp2: ; 361dc
; accuracyup2
ld b, $10 | ACCURACY
jr BattleCommand_StatUp
+
BattleCommand_EvasionUp2: ; 361e0
; evasionup2
ld b, $10 | EVASION
jr BattleCommand_StatUp
+
BattleCommand_StatUp: ; 361e4
; statup
call CheckIfStatCanBeRaised
@@ -5476,6 +5572,7 @@ BattleCommand_StatUp: ; 361e4
and a
ret nz
jp StatUpAnimation
+
; 361ef
@@ -5485,7 +5582,7 @@ CheckIfStatCanBeRaised: ; 361ef
ld hl, PlayerStatLevels
ld a, [hBattleTurn]
and a
- jr z, .got_stat_levels ; 0x361f9 $3
+ jr z, .got_stat_levels
ld hl, EnemyStatLevels
.got_stat_levels
ld a, [AttackMissed]
@@ -5506,23 +5603,23 @@ CheckIfStatCanBeRaised: ; 361ef
jp c, .cant_raise_stat
ld a, [LoweredStat]
and $f0
- jr z, .got_num_stages ; 0x36222 $7
+ jr z, .got_num_stages
inc b
ld a, $d
cp b
- jr nc, .got_num_stages ; 0x36228 $1
+ jr nc, .got_num_stages
ld b, a
.got_num_stages
ld [hl], b
push hl
ld a, c
cp $5
- jr nc, .done_calcing_stats ; 0x36230 $36
+ jr nc, .done_calcing_stats
ld hl, BattleMonStats + 1
ld de, PlayerStats
ld a, [hBattleTurn]
and a
- jr z, .got_stats_pointer ; 0x3623b $6
+ jr z, .got_stats_pointer
ld hl, EnemyMonStats + 1
ld de, EnemyStats
.got_stats_pointer
@@ -5533,22 +5630,23 @@ CheckIfStatCanBeRaised: ; 361ef
ld a, c
add e
ld e, a
- jr nc, .no_carry ; 0x3624c $1
+ jr nc, .no_carry
inc d
.no_carry
pop bc
ld a, [hld]
sub 999 % $100
- jr nz, .not_already_max ; 0x36253 $6
+ jr nz, .not_already_max
ld a, [hl]
sbc 999 / $100
jp z, .stats_already_max
.not_already_max
ld a, [hBattleTurn]
and a
- jr z, .calc_player_stats ; 0x3625e $5
+ jr z, .calc_player_stats
call CalcEnemyStats
- jr .done_calcing_stats ; 0x36263 $3
+ jr .done_calcing_stats
+
.calc_player_stats
call CalcPlayerStats
.done_calcing_stats
@@ -5556,6 +5654,7 @@ CheckIfStatCanBeRaised: ; 361ef
xor a
ld [FailedMessage], a
ret
+
; 3626e
@@ -5572,6 +5671,7 @@ CheckIfStatCanBeRaised: ; 361ef
ld a, $1
ld [AttackMissed], a
ret
+
; 3627b
@@ -5579,17 +5679,18 @@ CheckIfStatCanBeRaised: ; 361ef
ld a, $1
ld [FailedMessage], a
ret
+
; 36281
StatUpAnimation: ; 36281
ld bc, wPlayerMinimized
- ld hl, Function3f447
+ ld hl, DropPlayerSub
ld a, [hBattleTurn]
and a
- jr z, .do_player ; 0x3628a $6
+ jr z, .do_player
ld bc, wEnemyMinimized
- ld hl, Function3f486
+ ld hl, DropEnemySub
.do_player
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -5606,6 +5707,7 @@ StatUpAnimation: ; 36281
call CallBattleCore
call WaitBGMap
jp BattleCommand_MoveDelay
+
; 362ad
@@ -5613,54 +5715,67 @@ BattleCommand_AttackDown: ; 362ad
; attackdown
ld a, ATTACK
jr BattleCommand_StatDown
+
BattleCommand_DefenseDown: ; 362b1
; defensedown
ld a, DEFENSE
jr BattleCommand_StatDown
+
BattleCommand_SpeedDown: ; 362b5
; speeddown
ld a, SPEED
jr BattleCommand_StatDown
+
BattleCommand_SpecialAttackDown: ; 362b9
; specialattackdown
ld a, SP_ATTACK
jr BattleCommand_StatDown
+
BattleCommand_SpecialDefenseDown: ; 362bd
; specialdefensedown
ld a, SP_DEFENSE
jr BattleCommand_StatDown
+
BattleCommand_AccuracyDown: ; 362c1
; accuracydown
ld a, ACCURACY
jr BattleCommand_StatDown
+
BattleCommand_EvasionDown: ; 362c5
; evasiondown
ld a, EVASION
jr BattleCommand_StatDown
+
BattleCommand_AttackDown2: ; 362c9
; attackdown2
ld a, $10 | ATTACK
jr BattleCommand_StatDown
+
BattleCommand_DefenseDown2: ; 362cd
; defensedown2
ld a, $10 | DEFENSE
jr BattleCommand_StatDown
+
BattleCommand_SpeedDown2: ; 362d1
; speeddown2
ld a, $10 | SPEED
jr BattleCommand_StatDown
+
BattleCommand_SpecialAttackDown2: ; 362d5
; specialattackdown2
ld a, $10 | SP_ATTACK
jr BattleCommand_StatDown
+
BattleCommand_SpecialDefenseDown2: ; 362d9
; specialdefensedown2
ld a, $10 | SP_DEFENSE
jr BattleCommand_StatDown
+
BattleCommand_AccuracyDown2: ; 362dd
; accuracydown2
ld a, $10 | ACCURACY
jr BattleCommand_StatDown
+
BattleCommand_EvasionDown2: ; 362e1
; evasiondown2
ld a, $10 | EVASION
@@ -5787,6 +5902,7 @@ BattleCommand_StatDown: ; 362e3
ld a, 1
ld [AttackMissed], a
ret
+
; 36391
@@ -5814,6 +5930,7 @@ CheckMist: ; 36391
call GetBattleVar
bit SUBSTATUS_MIST, a
ret
+
; 363b8
@@ -5832,7 +5949,6 @@ BattleCommand_StatUpMessage: ; 363b8
.stat
text_jump UnknownText_0x1c0cc6
start_asm
-
ld hl, .up
ld a, [LoweredStat]
and $f0
@@ -5866,7 +5982,6 @@ BattleCommand_StatDownMessage: ; 363e9
.stat
text_jump UnknownText_0x1c0ceb
start_asm
-
ld hl, .fell
ld a, [LoweredStat]
and $f0
@@ -5926,6 +6041,7 @@ TryLowerStat: ; 3641a
ld a, 1
and a
ret
+
; 3644c
@@ -5946,6 +6062,7 @@ BattleCommand_StatUpFailText: ; 3644c
call GetStatName
ld hl, WontRiseAnymoreText
jp StdBattleTextBox
+
; 3646a
@@ -5969,6 +6086,7 @@ BattleCommand_StatDownFailText: ; 3646a
call GetStatName
ld hl, WontDropAnymoreText
jp StdBattleTextBox
+
; 3648f
@@ -5983,6 +6101,7 @@ GetStatName: ; 3648f
cp c
jr z, .CheckName
jr .GetName
+
.Copy
ld de, StringBuffer2
ld bc, StringBuffer3 - StringBuffer2
@@ -6051,6 +6170,7 @@ ResetMiss: ; 3652d
xor a
ld [AttackMissed], a
ret
+
; 36532
@@ -6124,6 +6244,7 @@ LowerStat: ; 36532
ld a, 2
ld [FailedMessage], a
ret
+
; 3658f
@@ -6143,6 +6264,7 @@ BattleCommand_TriStatusChance: ; 3658f
ld hl, .ptrs
rst JumpTable
ret
+
.ptrs
dw BattleCommand_ParalyzeTarget ; paralyze
dw BattleCommand_FreezeTarget ; freeze
@@ -6156,6 +6278,7 @@ BattleCommand_Curl: ; 365a7
call GetBattleVarAddr
set SUBSTATUS_CURLED, [hl]
ret
+
; 365af
@@ -6163,27 +6286,29 @@ BattleCommand_RaiseSubNoAnim: ; 365af
ld hl, GetMonBackpic
ld a, [hBattleTurn]
and a
- jr z, .PlayerTurn ; 365b5 $3
+ jr z, .PlayerTurn
ld hl, GetMonFrontpic
.PlayerTurn
xor a
ld [hBGMapMode], a
call CallBattleCore
jp WaitBGMap
+
; 365c3
BattleCommand_LowerSubNoAnim: ; 365c3
- ld hl, Function3f447
+ ld hl, DropPlayerSub
ld a, [hBattleTurn]
and a
- jr z, .PlayerTurn ; 365c9 $3
- ld hl, Function3f486
+ jr z, .PlayerTurn
+ ld hl, DropEnemySub
.PlayerTurn
xor a
ld [hBGMapMode], a
call CallBattleCore
jp WaitBGMap
+
; 365d7
@@ -6207,6 +6332,7 @@ CalcPlayerStats: ; 365d7
call CallBattleCore
jp BattleCommand_SwitchTurn
+
; 365fd
@@ -6227,6 +6353,7 @@ CalcEnemyStats: ; 365fd
call CallBattleCore
jp BattleCommand_SwitchTurn
+
; 3661d
@@ -6241,9 +6368,8 @@ CalcStats: ; 3661d
dec c
ld b, 0
ld hl, StatLevelMultipliers
-rept 2
add hl, bc
-endr
+ add hl, bc
xor a
ld [hMultiplicand + 0], a
@@ -6299,6 +6425,7 @@ endr
jr nz, .loop
ret
+
; 36671
@@ -6372,6 +6499,7 @@ BattleCommand_StoreEnergy: ; 36671
ld hl, StoringEnergyText
call StdBattleTextBox
jp EndMoveEffect
+
; 366e5
@@ -6382,10 +6510,10 @@ BattleCommand_UnleashEnergy: ; 366e5
ld bc, PlayerRolloutCount
ld a, [hBattleTurn]
and a
- jr z, .asm_366f6
+ jr z, .got_damage
ld de, EnemyDamageTaken
ld bc, EnemyRolloutCount
-.asm_366f6
+.got_damage
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
set SUBSTATUS_BIDE, [hl]
@@ -6397,14 +6525,14 @@ BattleCommand_UnleashEnergy: ; 366e5
ld [wEnemyMoveStruct + MOVE_EFFECT], a
call BattleRandom
and 1
-rept 2
inc a
-endr
+ inc a
ld [bc], a
ld a, 1
ld [wKickCounter], a
call AnimateCurrentMove
jp EndMoveEffect
+
; 3671a
@@ -6414,7 +6542,7 @@ BattleCommand_CheckRampage: ; 3671a
ld de, PlayerRolloutCount
ld a, [hBattleTurn]
and a
- jr z, .player ; 36720 $3
+ jr z, .player
ld de, EnemyRolloutCount
.player
ld a, BATTLE_VARS_SUBSTATUS3
@@ -6424,7 +6552,7 @@ BattleCommand_CheckRampage: ; 3671a
ld a, [de]
dec a
ld [de], a
- jr nz, .continue_rampage ; 36730 $1a
+ jr nz, .continue_rampage
res SUBSTATUS_RAMPAGE, [hl]
call BattleCommand_SwitchTurn
@@ -6432,19 +6560,19 @@ BattleCommand_CheckRampage: ; 3671a
push af
call BattleCommand_SwitchTurn
pop af
- jr nz, .continue_rampage ; 3673f $b
+ jr nz, .continue_rampage
set SUBSTATUS_CONFUSED, [hl]
call BattleRandom
and %00000001
-rept 2
inc a
-endr
+ inc a
inc de ; ConfuseCount
ld [de], a
.continue_rampage
ld b, rampage_command
jp SkipToBattleCommand
+
; 36751
@@ -6474,6 +6602,7 @@ BattleCommand_Rampage: ; 36751
ld a, 1
ld [wc73e], a
ret
+
; 36778
@@ -6515,12 +6644,12 @@ BattleCommand_Teleport: ; 36778
.loop_player
call BattleRandom
cp c
- jr nc, .loop_player ; 367b0 $fa
+ jr nc, .loop_player
; If that number is greater than 4 times your level, run away.
srl b
srl b
cp b
- jr nc, .run_away ; 367b7 $26
+ jr nc, .run_away
.failed
call AnimateFailedMove
@@ -6534,22 +6663,22 @@ BattleCommand_Teleport: ; 36778
ld b, a
ld a, [CurPartyLevel]
cp b
- jr nc, .run_away ; 367cd $10
+ jr nc, .run_away
add b
ld c, a
inc c
.loop_enemy
call BattleRandom
cp c
- jr nc, .loop_enemy ; 367d6 $fa
+ jr nc, .loop_enemy
srl b
srl b
cp b
- jr nc, .run_away ; 367dd $0
+ jr nc, .run_away
.run_away
call UpdateBattleMonInParty
xor a
- ld [wcfca], a
+ ld [wNumHits], a
inc a
ld [wForcedSwitch], a
ld [wKickCounter], a
@@ -6562,6 +6691,7 @@ BattleCommand_Teleport: ; 36778
ld hl, FledFromBattleText
jp StdBattleTextBox
+
; 36804
@@ -6571,6 +6701,7 @@ SetBattleDraw: ; 36804
or $2
ld [wBattleResult], a
ret
+
; 3680f
@@ -6591,33 +6722,33 @@ BattleCommand_ForceSwitch: ; 3680f
jp nz, .force_player_switch
ld a, [AttackMissed]
and a
- jr nz, .missed ; 36830 $20
+ jr nz, .missed
ld a, [wBattleMode]
dec a
- jr nz, .trainer ; 36836 $31
+ jr nz, .trainer
ld a, [CurPartyLevel]
ld b, a
ld a, [BattleMonLevel]
cp b
- jr nc, .wild_force_flee ; 36840 $13
+ jr nc, .wild_force_flee
add b
ld c, a
inc c
.random_loop_wild
call BattleRandom
cp c
- jr nc, .random_loop_wild ; 36849 $fa
+ jr nc, .random_loop_wild
srl b
srl b
cp b
- jr nc, .wild_force_flee ; 36850 $3
+ jr nc, .wild_force_flee
.missed
jp .fail
.wild_force_flee
call UpdateBattleMonInParty
xor a
- ld [wcfca], a
+ ld [wNumHits], a
inc a
ld [wForcedSwitch], a
call SetBattleDraw
@@ -6626,10 +6757,10 @@ BattleCommand_ForceSwitch: ; 3680f
.trainer
call FindAliveEnemyMons
- jr c, .switch_fail ; 3686c $5c
+ jr c, .switch_fail
ld a, [wEnemyGoesFirst]
and a
- jr z, .switch_fail ; 36872 $56
+ jr z, .switch_fail
call UpdateEnemyMonInParty
ld a, $1
ld [wKickCounter], a
@@ -6650,9 +6781,9 @@ BattleCommand_ForceSwitch: ; 3680f
call BattleRandom
and $7
cp b
- jr nc, .random_loop_trainer ; 368a0 $f8
+ jr nc, .random_loop_trainer
cp c
- jr z, .random_loop_trainer ; 368a3 $f5
+ jr z, .random_loop_trainer
push af
push bc
ld hl, OTPartyMon1HP
@@ -6661,7 +6792,7 @@ BattleCommand_ForceSwitch: ; 3680f
or [hl]
pop bc
pop de
- jr z, .random_loop_trainer ; 368b1 $e7
+ jr z, .random_loop_trainer
ld a, d
inc a
ld [wEnemySwitchMonIndex], a
@@ -6710,7 +6841,7 @@ BattleCommand_ForceSwitch: ; 3680f
.wild_succeed_playeristarget
call UpdateBattleMonInParty
xor a
- ld [wcfca], a
+ ld [wNumHits], a
inc a
ld [wForcedSwitch], a
call SetBattleDraw
@@ -6792,6 +6923,7 @@ BattleCommand_ForceSwitch: ; 3680f
ld hl, BlownAwayText
.do_text
jp StdBattleTextBox
+
; 36994
@@ -6823,6 +6955,7 @@ CheckPlayerHasMonToSwitchTo: ; 36994
.not_fainted
and a
ret
+
; 369b6
@@ -6835,87 +6968,91 @@ BattleCommand_EndLoop: ; 369b6
ld bc, PlayerDamageTaken
ld a, [hBattleTurn]
and a
- jr z, .asm_369c7
+ jr z, .got_addrs
ld de, EnemyRolloutCount
ld bc, EnemyDamageTaken
-.asm_369c7
+.got_addrs
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
bit SUBSTATUS_IN_LOOP, [hl]
- jp nz, .asm_36a43
+ jp nz, .in_loop
set SUBSTATUS_IN_LOOP, [hl]
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVarAddr
ld a, [hl]
cp EFFECT_TWINEEDLE
- jr z, .asm_36a3f
+ jr z, .twineedle
cp EFFECT_DOUBLE_HIT
- ld a, $1
- jr z, .asm_36a3a
+ ld a, 1
+ jr z, .double_hit
ld a, [hl]
cp EFFECT_BEAT_UP
- jr z, .asm_369fb
+ jr z, .beat_up
cp EFFECT_TRIPLE_KICK
- jr nz, .asm_36a2b
-.asm_369ec
+ jr nz, .not_triple_kick
+.reject_triple_kick_sample
call BattleRandom
and $3
- jr z, .asm_369ec
+ jr z, .reject_triple_kick_sample
dec a
- jr nz, .asm_36a3a
- ld a, $1
+ jr nz, .double_hit
+ ld a, 1
ld [bc], a
- jr .asm_36a48
-.asm_369fb
+ jr .done_loop
+
+.beat_up
ld a, [hBattleTurn]
and a
- jr nz, .asm_36a0b
+ jr nz, .check_ot_beat_up
ld a, [PartyCount]
- cp $1
- jp z, .asm_36a1e
+ cp 1
+ jp z, .only_one_beatup
dec a
- jr .asm_36a3a
-.asm_36a0b
+ jr .double_hit
+
+.check_ot_beat_up
ld a, [wBattleMode]
- cp $1
- jp z, .asm_36a1e
+ cp WILD_BATTLE
+ jp z, .only_one_beatup
ld a, [OTPartyCount]
- cp $1
- jp z, .asm_36a1e
+ cp 1
+ jp z, .only_one_beatup
dec a
- jr .asm_36a3a
+ jr .double_hit
-.asm_36a1e
+.only_one_beatup
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
res SUBSTATUS_IN_LOOP, [hl]
call BattleCommanda8
jp EndMoveEffect
-.asm_36a2b
+
+.not_triple_kick
call BattleRandom
and $3
- cp $2
- jr c, .asm_36a39
+ cp 2
+ jr c, .got_number_hits
call BattleRandom
and $3
-.asm_36a39
+.got_number_hits
inc a
-.asm_36a3a
+.double_hit
ld [de], a
inc a
ld [bc], a
- jr .asm_36a6b
-.asm_36a3f
- ld a, $1
- jr .asm_36a3a
+ jr .loop_back_to_critical
+
+.twineedle
+ ld a, 1
+ jr .double_hit
-.asm_36a43
+.in_loop
ld a, [de]
dec a
ld [de], a
- jr nz, .asm_36a6b
-.asm_36a48
+ jr nz, .loop_back_to_critical
+.done_loop
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
res SUBSTATUS_IN_LOOP, [hl]
@@ -6923,17 +7060,17 @@ BattleCommand_EndLoop: ; 369b6
ld hl, PlayerHitTimesText
ld a, [hBattleTurn]
and a
- jr z, .asm_36a5a
+ jr z, .got_hit_n_times_text
ld hl, EnemyHitTimesText
-.asm_36a5a
+.got_hit_n_times_text
push bc
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_BEAT_UP
- jr z, .asm_36a67
+ jr z, .beat_up_2
call StdBattleTextBox
-.asm_36a67
+.beat_up_2
pop bc
xor a
@@ -6941,21 +7078,22 @@ BattleCommand_EndLoop: ; 369b6
ret
; Loop back to the command before 'critical'.
-.asm_36a6b
+.loop_back_to_critical
ld a, [BattleScriptBufferLoc + 1]
ld h, a
ld a, [BattleScriptBufferLoc]
ld l, a
-.asm_36a73
+.not_critical
ld a, [hld]
- cp $5 ; critical
- jr nz, .asm_36a73
+ cp critical_command
+ jr nz, .not_critical
inc hl
ld a, h
ld [BattleScriptBufferLoc + 1], a
ld a, l
ld [BattleScriptBufferLoc], a
ret
+
; 36a82
@@ -6979,6 +7117,7 @@ BattleCommand_FakeOut: ; 36a82
ld a, 1
ld [AttackMissed], a
ret
+
; 36aa0
@@ -7007,6 +7146,7 @@ FlinchTarget: ; 36ab5
call GetBattleVarAddr
set SUBSTATUS_FLINCHED, [hl]
jp EndRechargeOpp
+
; 36abf
@@ -7020,6 +7160,7 @@ CheckOpponentWentFirst: ; 36abf
xor b ; 1 if opponent went first
pop bc
ret
+
; 36ac9
@@ -7050,6 +7191,7 @@ BattleCommand_KingsRock: ; 36ac9
call GetBattleVarAddr
set SUBSTATUS_FLINCHED, [hl]
ret
+
; 36af3
@@ -7059,29 +7201,29 @@ BattleCommand_OHKO: ; 36af3
call ResetDamage
ld a, [TypeModifier]
and $7f
- jr z, .asm_36b2f
+ jr z, .no_effect
ld hl, EnemyMonLevel
ld de, BattleMonLevel
ld bc, wPlayerMoveStruct + MOVE_ACC
ld a, [hBattleTurn]
and a
- jr z, .asm_36b12
+ jr z, .got_move_accuracy
push hl
ld h, d
ld l, e
pop de
ld bc, wEnemyMoveStruct + MOVE_ACC
-.asm_36b12
+.got_move_accuracy
ld a, [de]
sub [hl]
- jr c, .asm_36b2f
+ jr c, .no_effect
add a
ld e, a
ld a, [bc]
add e
- jr nc, .asm_36b1e
+ jr nc, .finish_ohko
ld a, $ff
-.asm_36b1e
+.finish_ohko
ld [bc], a
call BattleCommand_CheckHit
ld hl, CurDamage
@@ -7091,12 +7233,14 @@ BattleCommand_OHKO: ; 36af3
ld a, $2
ld [CriticalHit], a
ret
-.asm_36b2f
+
+.no_effect
ld a, $ff
ld [CriticalHit], a
ld a, $1
ld [AttackMissed], a
ret
+
; 36b3a
@@ -7112,6 +7256,7 @@ BattleCommand_CheckCharge: ; 36b3a
res SUBSTATUS_FLYING, [hl]
ld b, charge_command
jp SkipToBattleCommand
+
; 36b4d
@@ -7141,7 +7286,7 @@ BattleCommand_Charge: ; 36b4d
call BattleCommand_LowerSub
xor a
- ld [wcfca], a
+ ld [wNumHits], a
inc a
ld [wKickCounter], a
call LoadMoveAnim
@@ -7153,6 +7298,7 @@ BattleCommand_Charge: ; 36b4d
jr z, .flying
call BattleCommand_RaiseSub
jr .not_flying
+
.flying
call DisappearUser
.not_flying
@@ -7197,7 +7343,6 @@ BattleCommand_Charge: ; 36b4d
.UsedText
text_jump UnknownText_0x1c0d0e ; "[USER]"
start_asm
-
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
cp RAZOR_WIND
@@ -7261,6 +7406,7 @@ BattleCommand_Charge: ; 36b4d
BattleCommand3c: ; 36c2c
; unused
ret
+
; 36c2d
@@ -7274,11 +7420,11 @@ BattleCommand_TrapTarget: ; 36c2d
ld de, wEnemyTrappingMove
ld a, [hBattleTurn]
and a
- jr z, .asm_36c43
+ jr z, .got_trap
ld hl, wPlayerWrapCount
ld de, wPlayerTrappingMove
-.asm_36c43
+.got_trap
ld a, [hl]
and a
ret nz
@@ -7298,16 +7444,15 @@ endr
ld b, a
ld hl, .Traps
-.asm_36c61
+.find_trap_text
ld a, [hli]
cp b
- jr z, .asm_36c69
-rept 2
+ jr z, .found_trap_text
inc hl
-endr
- jr .asm_36c61
+ inc hl
+ jr .find_trap_text
-.asm_36c69
+.found_trap_text
ld a, [hli]
ld h, [hl]
ld l, a
@@ -7328,14 +7473,16 @@ BattleCommand_Mist: ; 36c7e
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
bit SUBSTATUS_MIST, [hl]
- jr nz, .asm_36c92
+ jr nz, .already_mist
set SUBSTATUS_MIST, [hl]
call AnimateCurrentMove
ld hl, MistText
jp StdBattleTextBox
-.asm_36c92
+
+.already_mist
call AnimateFailedMove
jp PrintButItFailed
+
; 36c98
@@ -7345,14 +7492,16 @@ BattleCommand_FocusEnergy: ; 36c98
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
bit SUBSTATUS_FOCUS_ENERGY, [hl]
- jr nz, .asm_36cac
+ jr nz, .already_pumped
set SUBSTATUS_FOCUS_ENERGY, [hl]
call AnimateCurrentMove
ld hl, GettingPumpedText
jp StdBattleTextBox
-.asm_36cac
+
+.already_pumped
call AnimateFailedMove
jp PrintButItFailed
+
; 36cb2
@@ -7362,12 +7511,13 @@ BattleCommand_Recoil: ; 36cb2
ld hl, BattleMonMaxHP
ld a, [hBattleTurn]
and a
- jr z, .asm_36cbd
+ jr z, .got_hp
ld hl, EnemyMonMaxHP
-.asm_36cbd
+.got_hp
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
ld d, a
+; get 1/4 damage or 1 HP, whichever is higher
ld a, [CurDamage]
ld b, a
ld a, [CurDamage + 1]
@@ -7378,16 +7528,15 @@ BattleCommand_Recoil: ; 36cb2
rr c
ld a, b
or c
- jr nz, .asm_36cd8
+ jr nz, .min_damage
inc c
-.asm_36cd8
+.min_damage
ld a, [hli]
ld [Buffer2], a
ld a, [hl]
ld [Buffer1], a
-rept 2
dec hl
-endr
+ dec hl
ld a, [hl]
ld [Buffer3], a
sub c
@@ -7398,27 +7547,28 @@ endr
sbc b
ld [hl], a
ld [Buffer6], a
- jr nc, .asm_36cfe
+ jr nc, .dont_ko
xor a
ld [hli], a
ld [hl], a
ld hl, Buffer5
ld [hli], a
ld [hl], a
-.asm_36cfe
+.dont_ko
hlcoord 10, 9
ld a, [hBattleTurn]
and a
- ld a, $1
- jr z, .asm_36d0c
+ ld a, 1
+ jr z, .animate_hp_bar
hlcoord 2, 2
xor a
-.asm_36d0c
- ld [wd10a], a
+.animate_hp_bar
+ ld [wWhichHPBar], a
predef AnimateHPBar
call RefreshBattleHuds
ld hl, RecoilText
jp StdBattleTextBox
+
; 36d1d
@@ -7440,7 +7590,7 @@ BattleCommand_ConfuseTarget: ; 36d1d
call GetBattleVarAddr
bit SUBSTATUS_CONFUSED, [hl]
ret nz
- jr Function36d70
+ jr BattleCommand_FinishConfusingTarget
BattleCommand_Confuse: ; 36d3b
@@ -7449,7 +7599,7 @@ BattleCommand_Confuse: ; 36d3b
call GetOpponentItem
ld a, b
cp HELD_PREVENT_CONFUSE
- jr nz, .asm_36d53
+ jr nz, .no_item_protection
ld a, [hl]
ld [wNamedObjectIndexBuffer], a
call GetItemName
@@ -7457,53 +7607,47 @@ BattleCommand_Confuse: ; 36d3b
ld hl, ProtectedByText
jp StdBattleTextBox
-.asm_36d53
+.no_item_protection
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVarAddr
bit SUBSTATUS_CONFUSED, [hl]
- jr z, .asm_36d65
+ jr z, .not_already_confused
call AnimateFailedMove
ld hl, AlreadyConfusedText
jp StdBattleTextBox
-.asm_36d65
+.not_already_confused
call CheckSubstituteOpp
- jr nz, Function36db6
+ jr nz, BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit
ld a, [AttackMissed]
and a
- jr nz, Function36db6
-
- ; fallthrough
-; 36d70
-
-
-Function36d70: ; 36d70
+ jr nz, BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit
+BattleCommand_FinishConfusingTarget: ; 36d70
ld bc, EnemyConfuseCount
ld a, [hBattleTurn]
and a
- jr z, .asm_36d7b
+ jr z, .got_confuse_count
ld bc, PlayerConfuseCount
-.asm_36d7b
+.got_confuse_count
set SUBSTATUS_CONFUSED, [hl]
call BattleRandom
and 3
-rept 2
inc a
-endr
+ inc a
ld [bc], a
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_CONFUSE_HIT
- jr z, .asm_36d99
+ jr z, .got_effect
cp EFFECT_SNORE
- jr z, .asm_36d99
+ jr z, .got_effect
cp EFFECT_SWAGGER
- jr z, .asm_36d99
+ jr z, .got_effect
call AnimateCurrentMove
-.asm_36d99
+.got_effect
ld de, ANIM_CONFUSED
call PlayOpponentBattleAnim
@@ -7513,15 +7657,16 @@ endr
call GetOpponentItem
ld a, b
cp HELD_HEAL_STATUS
- jr z, .asm_36db0
+ jr z, .heal_confusion
cp HELD_HEAL_CONFUSION
ret nz
-.asm_36db0
- ld hl, HandleStatusHealingItem
+.heal_confusion
+ ld hl, UseConfusionHealingItem
jp CallBattleCore
+
; 36db6
-Function36db6: ; 36db6
+BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit: ; 36db6
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_CONFUSE_HIT
@@ -7531,6 +7676,7 @@ Function36db6: ; 36db6
cp EFFECT_SWAGGER
ret z
jp PrintDidntAffect2
+
; 36dc7
@@ -7540,14 +7686,14 @@ BattleCommand_Paralyze: ; 36dc7
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVar
bit PAR, a
- jr nz, .asm_36e49
+ jr nz, .paralyzed
ld a, [TypeModifier]
and $7f
- jr z, .asm_36e55
+ jr z, .didnt_affect
call GetOpponentItem
ld a, b
cp HELD_PREVENT_PARALYZE
- jr nz, .asm_36def
+ jr nz, .no_item_protection
ld a, [hl]
ld [wNamedObjectIndexBuffer], a
call GetItemName
@@ -7555,37 +7701,37 @@ BattleCommand_Paralyze: ; 36dc7
ld hl, ProtectedByText
jp StdBattleTextBox
-.asm_36def
+.no_item_protection
ld a, [hBattleTurn]
and a
- jr z, .asm_36e0e
+ jr z, .dont_sample_failure
ld a, [wLinkMode]
and a
- jr nz, .asm_36e0e
+ jr nz, .dont_sample_failure
ld a, [InBattleTowerBattle]
and a
- jr nz, .asm_36e0e
+ jr nz, .dont_sample_failure
ld a, [PlayerSubStatus5]
bit SUBSTATUS_LOCK_ON, a
- jr nz, .asm_36e0e
+ jr nz, .dont_sample_failure
call BattleRandom
- cp $40
- jr c, .asm_36e52
+ cp 1 + 25 percent
+ jr c, .failed
-.asm_36e0e
+.dont_sample_failure
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
and a
- jr nz, .asm_36e52
+ jr nz, .failed
ld a, [AttackMissed]
and a
- jr nz, .asm_36e52
+ jr nz, .failed
call CheckSubstituteOpp
- jr nz, .asm_36e52
+ jr nz, .failed
ld c, 30
call DelayFrames
call AnimateCurrentMove
@@ -7601,15 +7747,19 @@ BattleCommand_Paralyze: ; 36dc7
call PrintParalyze
ld hl, UseHeldStatusHealingItem
jp CallBattleCore
-.asm_36e49
+
+.paralyzed
call AnimateFailedMove
ld hl, AlreadyParalyzedText
jp StdBattleTextBox
-.asm_36e52
+
+.failed
jp PrintDidntAffect2
-.asm_36e55
+
+.didnt_affect
call AnimateFailedMove
jp PrintDoesntAffect
+
; 36e5b
@@ -7647,6 +7797,7 @@ CheckMoveTypeMatchesTarget: ; 36e5b
and a
pop hl
ret
+
; 36e7c
@@ -7674,9 +7825,8 @@ BattleCommand_Substitute: ; 36e7c
rr b
srl a
rr b
-rept 2
dec hl
-endr
+ dec hl
ld a, b
ld [de], a
ld a, [hld]
@@ -7713,7 +7863,7 @@ endr
jr c, .mobile
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
ld [wKickCounter], a
ld a, SUBSTITUTE
@@ -7739,6 +7889,7 @@ endr
ld hl, TooWeakSubText
.jp_stdbattletextbox
jp StdBattleTextBox
+
; 36f0b
BattleCommand_RechargeNextTurn: ; 36f0b
@@ -7747,6 +7898,7 @@ BattleCommand_RechargeNextTurn: ; 36f0b
call GetBattleVarAddr
set SUBSTATUS_RECHARGE, [hl]
ret
+
; 36f13
@@ -7757,6 +7909,7 @@ EndRechargeOpp: ; 36f13
res SUBSTATUS_RECHARGE, [hl]
pop hl
ret
+
; 36f1d
@@ -7766,6 +7919,7 @@ BattleCommand_Rage: ; 36f1d
call GetBattleVarAddr
set SUBSTATUS_RAGE, [hl]
ret
+
; 36f25
@@ -7776,6 +7930,7 @@ BattleCommand_DoubleFlyingDamage: ; 36f25
bit SUBSTATUS_FLYING, a
ret z
jr DoubleDamage
+
; 36f2f
@@ -7802,6 +7957,7 @@ DoubleDamage: ; 36f37
ld [hl], a
.quit
ret
+
; 36f46
@@ -7855,6 +8011,7 @@ BattleCommand_Mimic: ; 36f46
.fail
jp FailMimic
+
; 36f9d
@@ -7898,6 +8055,7 @@ BattleCommand_LeechSeed: ; 36f9d
call AnimateFailedMove
ld hl, EvadedText
jp StdBattleTextBox
+
; 36fe1
@@ -7905,6 +8063,7 @@ BattleCommand_Splash: ; 36fe1
call AnimateCurrentMove
callba MobileFn_1060e5
jp PrintNothingHappened
+
; 36fed
@@ -7913,51 +8072,51 @@ BattleCommand_Disable: ; 36fed
ld a, [AttackMissed]
and a
- jr nz, .asm_37059
+ jr nz, .failed
ld de, EnemyDisableCount
ld hl, EnemyMonMoves
ld a, [hBattleTurn]
and a
- jr z, .asm_37004
+ jr z, .got_moves
ld de, PlayerDisableCount
ld hl, BattleMonMoves
-.asm_37004
+.got_moves
ld a, [de]
and a
- jr nz, .asm_37059
+ jr nz, .failed
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
and a
- jr z, .asm_37059
+ jr z, .failed
cp STRUGGLE
- jr z, .asm_37059
+ jr z, .failed
ld b, a
ld c, $ff
-.asm_37017
+.loop
inc c
ld a, [hli]
cp b
- jr nz, .asm_37017
+ jr nz, .loop
ld a, [hBattleTurn]
and a
ld hl, EnemyMonPP
- jr z, .asm_37027
+ jr z, .got_pp
ld hl, BattleMonPP
-.asm_37027
+.got_pp
ld b, 0
add hl, bc
ld a, [hl]
and a
- jr z, .asm_37059
-.asm_3702e
+ jr z, .failed
+.loop2
call BattleRandom
and 7
- jr z, .asm_3702e
+ jr z, .loop2
inc a
inc c
swap c
@@ -7967,9 +8126,9 @@ BattleCommand_Disable: ; 36fed
ld hl, DisabledMove
ld a, [hBattleTurn]
and a
- jr nz, .asm_37047
+ jr nz, .got_disabled_move_pointer
inc hl
-.asm_37047
+.got_disabled_move_pointer
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
ld [hl], a
@@ -7977,8 +8136,10 @@ BattleCommand_Disable: ; 36fed
call GetMoveName
ld hl, WasDisabledText
jp StdBattleTextBox
-.asm_37059
+
+.failed
jp FailDisable
+
; 3705c
@@ -8008,6 +8169,7 @@ BattleCommand_PayDay: ; 3705c
.done
ld hl, CoinsScatteredText
jp StdBattleTextBox
+
; 3707f
@@ -8018,21 +8180,21 @@ BattleCommand_Conversion: ; 3707f
ld de, BattleMonType1
ld a, [hBattleTurn]
and a
- jr z, .asm_37090
+ jr z, .got_moves
ld hl, EnemyMonMoves
ld de, EnemyMonType1
-.asm_37090
+.got_moves
push de
ld c, 0
ld de, StringBuffer1
-.asm_37096
+.loop
push hl
ld b, 0
add hl, bc
ld a, [hl]
pop hl
and a
- jr z, .asm_370b2
+ jr z, .okay
push hl
push bc
dec a
@@ -8045,8 +8207,8 @@ BattleCommand_Conversion: ; 3707f
inc c
ld a, c
cp NUM_MOVES
- jr c, .asm_37096
-.asm_370b2
+ jr c, .loop
+.okay
ld a, $ff
ld [de], a
inc de
@@ -8055,28 +8217,30 @@ BattleCommand_Conversion: ; 3707f
ld [de], a
pop de
ld hl, StringBuffer1
-.asm_370bd
+.loop2
ld a, [hl]
- cp $ff
- jr z, .asm_370d3
+ cp -1
+ jr z, .fail
cp CURSE_T
- jr z, .asm_370d0
+ jr z, .next
ld a, [de]
cp [hl]
- jr z, .asm_370d0
+ jr z, .next
inc de
ld a, [de]
dec de
cp [hl]
- jr nz, .asm_370d9_a
-.asm_370d0
+ jr nz, .done
+.next
inc hl
- jr .asm_370bd
-.asm_370d3
+ jr .loop2
+
+.fail
call AnimateFailedMove
jp PrintButItFailed
-.asm_370d9_a
-.asm_370d9_b
+
+.done
+.loop3
call BattleRandom
and 3 ; TODO factor in NUM_MOVES
ld c, a
@@ -8084,18 +8248,18 @@ BattleCommand_Conversion: ; 3707f
ld hl, StringBuffer1
add hl, bc
ld a, [hl]
- cp $ff
- jr z, .asm_370d9_b
+ cp -1
+ jr z, .loop3
cp CURSE_T
- jr z, .asm_370d9_b
+ jr z, .loop3
ld a, [de]
cp [hl]
- jr z, .asm_370d9_b
+ jr z, .loop3
inc de
ld a, [de]
dec de
cp [hl]
- jr z, .asm_370d9_b
+ jr z, .loop3
ld a, [hl]
ld [de], a
inc de
@@ -8105,6 +8269,7 @@ BattleCommand_Conversion: ; 3707f
call AnimateCurrentMove
ld hl, TransformedTypeText
jp StdBattleTextBox
+
; 3710e
@@ -8140,6 +8305,7 @@ BattleCommand_ResetStats: ; 3710e
dec b
jr nz, .next
ret
+
; 3713e
@@ -8150,10 +8316,10 @@ BattleCommand_Heal: ; 3713e
ld hl, BattleMonMaxHP
ld a, [hBattleTurn]
and a
- jr z, .asm_3714f
+ jr z, .got_hp
ld de, EnemyMonHP
ld hl, EnemyMonMaxHP
-.asm_3714f
+.got_hp
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
ld b, a
@@ -8165,10 +8331,11 @@ BattleCommand_Heal: ; 3713e
pop bc
pop de
pop hl
- jp z, .asm_371c4
+ jp z, .hp_full
ld a, b
cp REST
- jr nz, .asm_37199
+ jr nz, .not_rest
+
push hl
push de
push af
@@ -8182,30 +8349,33 @@ BattleCommand_Heal: ; 3713e
and a
ld [hl], REST_TURNS + 1
ld hl, WentToSleepText
- jr z, .asm_37186
+ jr z, .no_status_to_heal
ld hl, RestedText
-.asm_37186
+.no_status_to_heal
call StdBattleTextBox
ld a, [hBattleTurn]
and a
- jr nz, .asm_37193
+ jr nz, .calc_enemy_stats
call CalcPlayerStats
- jr .asm_37196
-.asm_37193
+ jr .got_stats
+
+.calc_enemy_stats
call CalcEnemyStats
-.asm_37196
+.got_stats
pop af
pop de
pop hl
-.asm_37199
- jr z, .asm_371a3
+
+.not_rest
+ jr z, .restore_full_hp
ld hl, GetHalfMaxHP
call CallBattleCore
- jr .asm_371a9
-.asm_371a3
+ jr .finish
+
+.restore_full_hp
ld hl, GetMaxHP
call CallBattleCore
-.asm_371a9
+.finish
call AnimateCurrentMove
call BattleCommand_SwitchTurn
ld hl, RestoreHP
@@ -8216,10 +8386,11 @@ BattleCommand_Heal: ; 3713e
ld hl, RegainedHealthText
jp StdBattleTextBox
-.asm_371c4
+.hp_full
call AnimateFailedMove
ld hl, HPIsFullText
jp StdBattleTextBox
+
; 371cd
@@ -8230,11 +8401,11 @@ BattleCommand_Transform: ; 371cd
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
bit SUBSTATUS_TRANSFORMED, [hl]
- jp nz, Function372d2
+ jp nz, BattleEffect_ButItFailed
call CheckHiddenOpponent
- jp nz, Function372d2
+ jp nz, BattleEffect_ButItFailed
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
ld a, $1
ld [wKickCounter], a
@@ -8266,9 +8437,8 @@ BattleCommand_Transform: ; 371cd
ld a, [hli]
ld [de], a
inc hl
-rept 2
inc de
-endr
+ inc de
ld bc, NUM_MOVES
call CopyBytes
ld a, [hBattleTurn]
@@ -8347,12 +8517,13 @@ endr
jr nz, .mimic_anims
call LoadMoveAnim
jr .after_anim
+
.mimic_anims
call BattleCommand_MoveDelay
call BattleCommand_RaiseSubNoAnim
.after_anim
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
ld a, $2
ld [wKickCounter], a
@@ -8361,6 +8532,7 @@ endr
call nz, LoadAnim
ld hl, TransformedText
jp StdBattleTextBox
+
; 372c6
@@ -8378,12 +8550,14 @@ BattleSideCopy: ; 372c6
pop de
.copy
jp CopyBytes
+
; 372d2
-Function372d2: ; 372d2
+BattleEffect_ButItFailed: ; 372d2
call AnimateFailedMove
jp PrintButItFailed
+
; 372d8
@@ -8398,6 +8572,7 @@ ClearLastMove: ; 372d8
xor a
ld [hl], a
ret
+
; 372e7
@@ -8416,6 +8591,7 @@ ResetActorDisable: ; 372e7
ld [PlayerDisableCount], a
ld [DisabledMove], a
ret
+
; 372fc
@@ -8426,11 +8602,11 @@ BattleCommand_Screen: ; 372fc
ld bc, PlayerLightScreenCount
ld a, [hBattleTurn]
and a
- jr z, .asm_3730d
+ jr z, .got_screens_pointer
ld hl, EnemyScreens
ld bc, EnemyLightScreenCount
-.asm_3730d
+.got_screens_pointer
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_LIGHT_SCREEN
@@ -8442,7 +8618,7 @@ BattleCommand_Screen: ; 372fc
ld a, 5
ld [bc], a
ld hl, LightScreenEffectText
- jr .asm_37331
+ jr .good
.Reflect
bit SCREENS_REFLECT, [hl]
@@ -8456,13 +8632,14 @@ BattleCommand_Screen: ; 372fc
ld [bc], a
ld hl, ReflectEffectText
-.asm_37331
+.good
call AnimateCurrentMove
jp StdBattleTextBox
.failed
call AnimateFailedMove
jp PrintButItFailed
+
; 3733d
@@ -8470,6 +8647,7 @@ PrintDoesntAffect: ; 3733d
; 'it doesn't affect'
ld hl, DoesntAffectText
jp StdBattleTextBox
+
; 37343
@@ -8477,6 +8655,7 @@ PrintNothingHappened: ; 37343
; 'but nothing happened!'
ld hl, NothingHappenedText
jp StdBattleTextBox
+
; 37349
@@ -8493,6 +8672,7 @@ PrintButItFailed: ; 3734e
; 'but it failed!'
ld hl, ButItFailedText
jp StdBattleTextBox
+
; 37354
@@ -8510,6 +8690,7 @@ FailMimic: ; 37357
ld hl, ButItFailedText ; 'but it failed!'
ld de, ItFailedText ; 'it failed!'
jp FailText_CheckOpponentProtect
+
; 37360
@@ -8517,6 +8698,7 @@ PrintDidntAffect: ; 37360
; 'it didn't affect'
ld hl, DidntAffect1Text
jp StdBattleTextBox
+
; 37366
@@ -8525,6 +8707,7 @@ PrintDidntAffect2: ; 37366
ld hl, DidntAffect1Text ; 'it didn't affect'
ld de, DidntAffect2Text ; 'it didn't affect'
jp FailText_CheckOpponentProtect
+
; 37372
@@ -8532,6 +8715,7 @@ PrintParalyze: ; 37372
; 'paralyzed! maybe it can't attack!'
ld hl, ParalyzedText
jp StdBattleTextBox
+
; 37378
@@ -8540,13 +8724,14 @@ CheckSubstituteOpp: ; 37378
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
ret
+
; 37380
BattleCommand_SelfDestruct: ; 37380
callba MobileFn_10610d
ld a, BATTLEANIM_PLAYER_DAMAGE
- ld [wcfca], a
+ ld [wNumHits], a
ld c, 3
call DelayFrames
ld a, BATTLE_VARS_STATUS
@@ -8572,6 +8757,7 @@ BattleCommand_SelfDestruct: ; 37380
callba DrawEnemyHUD
call WaitBGMap
jp RefreshBattleHuds
+
; 373c9
@@ -8603,6 +8789,7 @@ CheckUserMove: ; 37462
ld a, 1
and a
ret
+
; 3747b
@@ -8619,6 +8806,7 @@ ResetTurn: ; 3747b
ld [AlreadyDisobeyed], a
call DoMove
jp EndMoveEffect
+
; 37492
@@ -8650,6 +8838,7 @@ BattleCommand_ArenaTrap: ; 37517
.failed
call AnimateFailedMove
jp PrintButItFailed
+
; 37536
@@ -8686,6 +8875,7 @@ BattleCommand_Defrost: ; 37563
call RefreshBattleHuds
ld hl, WasDefrostedText
jp StdBattleTextBox
+
; 37588
@@ -8709,6 +8899,7 @@ INCLUDE "battle/effects/rollout.asm"
BattleCommand5d: ; 37791
; unused
ret
+
; 37792
@@ -8751,6 +8942,7 @@ BattleCommand_FuryCutter: ; 37792
ld [hli], a
ld [hl], a
ret
+
; 377be
@@ -8770,6 +8962,7 @@ ResetFuryCutterCount: ; 377be
pop hl
ret
+
; 377ce
@@ -8800,6 +8993,7 @@ BattleCommand_HappinessPower: ; 3784b
ld d, a
pop bc
ret
+
; 37874
@@ -8812,9 +9006,9 @@ BattleCommand_FrustrationPower: ; 3790e
ld hl, BattleMonHappiness
ld a, [hBattleTurn]
and a
- jr z, .asm_3791a ; 37915 $3
+ jr z, .got_happiness
ld hl, EnemyMonHappiness
-.asm_3791a
+.got_happiness
ld a, $ff
sub [hl]
ld [hMultiplicand + 2], a
@@ -8832,6 +9026,7 @@ BattleCommand_FrustrationPower: ; 3790e
ld d, a
pop bc
ret
+
; 37939
@@ -8854,9 +9049,11 @@ BattleCommand_Safeguard: ; 37939
call AnimateCurrentMove
ld hl, CoveredByVeilText
jp StdBattleTextBox
+
.failed
call AnimateFailedMove
jp PrintButItFailed
+
; 37962
@@ -8872,6 +9069,7 @@ SafeCheckSafeguard: ; 37962
bit SCREENS_SAFEGUARD, [hl]
pop hl
ret
+
; 37972
@@ -8880,7 +9078,7 @@ BattleCommand_CheckSafeguard: ; 37972
ld hl, EnemyScreens
ld a, [hBattleTurn]
and a
- jr z, .got_turn ; 37978 $3
+ jr z, .got_turn
ld hl, PlayerScreens
.got_turn
bit SCREENS_SAFEGUARD, [hl]
@@ -8891,6 +9089,7 @@ BattleCommand_CheckSafeguard: ; 37972
ld hl, SafeguardProtectText
call StdBattleTextBox
jp EndMoveEffect
+
; 37991
@@ -8905,10 +9104,10 @@ BattleCommand_GetMagnitude: ; 37991
ld a, [hli]
cp b
jr nc, .ok
-rept 2
inc hl
-endr
+ inc hl
jr .loop
+
.ok
ld d, [hl]
push de
@@ -8954,19 +9153,19 @@ BattleCommand_BatonPass: ; 379c9
; Transition into switchmon menu
call LoadStandardMenuDataHeader
- callba Function3d2f7
+ callba SetUpBattlePartyMenu_NoLoop
callba ForcePickSwitchMonInBattle
; Return to battle scene
call ClearPalettes
callba _LoadBattleFontsHPBar
- call WriteBackup
+ call CloseWindow
call ClearSprites
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
- ld b, SCGB_01
+ ld b, SCGB_BATTLE_COLORS
call GetSGBLayout
call SetPalettes
call BatonPass_LinkPlayerSwitch
@@ -9016,6 +9215,7 @@ BattleCommand_BatonPass: ; 379c9
call CallBattleCore
jr ResetBatonPassStatus
+
; 37a67
@@ -9025,16 +9225,17 @@ BatonPass_LinkPlayerSwitch: ; 37a67
ret z
ld a, 1
- ld [wd0ec], a
+ ld [wPlayerAction], a
call LoadStandardMenuDataHeader
ld hl, LinkBattleSendReceiveAction
call CallBattleCore
- call WriteBackup
+ call CloseWindow
xor a
- ld [wd0ec], a
+ ld [wPlayerAction], a
ret
+
; 37a82
@@ -9061,13 +9262,15 @@ BatonPass_LinkEnemySwitch: ; 37a82
add BATTLEACTION_SWITCH1
ld [wBattleAction], a
.switch
- jp WriteBackup
+ jp CloseWindow
+
; 37aab
FailedBatonPass: ; 37aab
call AnimateFailedMove
jp PrintButItFailed
+
; 37ab1
@@ -9109,6 +9312,7 @@ ResetBatonPassStatus: ; 37ab1
ld [wPlayerWrapCount], a
ld [wEnemyWrapCount], a
ret
+
; 37ae9
@@ -9119,6 +9323,7 @@ CheckAnyOtherAlivePartyMons: ; 37ae9
ld a, [CurBattleMon]
ld e, a
jr CheckAnyOtherAliveMons
+
; 37af6
@@ -9167,6 +9372,7 @@ CheckAnyOtherAliveMons: ; 37b01
ld a, b
and a
ret
+
; 37b1d
@@ -9194,6 +9400,7 @@ BattleCommand_Pursuit: ; 37b1d
ld [hli], a
ld [hl], a
ret
+
; 37b39
@@ -9203,28 +9410,28 @@ BattleCommand_ClearHazards: ; 37b39
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
bit SUBSTATUS_LEECH_SEED, [hl]
- jr z, .asm_37b4a ; 37b40 $8
+ jr z, .not_leeched
res SUBSTATUS_LEECH_SEED, [hl]
ld hl, ShedLeechSeedText
call StdBattleTextBox
-.asm_37b4a
+.not_leeched
ld hl, PlayerScreens
ld de, wPlayerWrapCount
ld a, [hBattleTurn]
and a
- jr z, .asm_37b5b ; 37b53 $6
+ jr z, .got_screens_wrap
ld hl, EnemyScreens
ld de, wEnemyWrapCount
-.asm_37b5b
+.got_screens_wrap
bit SCREENS_SPIKES, [hl]
- jr z, .asm_37b69 ; 37b5d $a
+ jr z, .no_spikes
res SCREENS_SPIKES, [hl]
ld hl, BlewSpikesText
push de
call StdBattleTextBox
pop de
-.asm_37b69
+.no_spikes
ld a, [de]
and a
@@ -9233,19 +9440,22 @@ BattleCommand_ClearHazards: ; 37b39
ld [de], a
ld hl, ReleasedByText
jp StdBattleTextBox
+
; 37b74
BattleCommand_HealMorn: ; 37b74
; healmorn
ld b, MORN
- jr BattleCommand_HealMorn6c
+ jr BattleCommand_TimeBasedHealContinue
+
; 37b78
BattleCommand_HealDay: ; 37b78
; healday
ld b, DAY
- jr BattleCommand_HealMorn6c
+ jr BattleCommand_TimeBasedHealContinue
+
; 37b7c
BattleCommand_HealNite: ; 37b7c
@@ -9254,7 +9464,7 @@ BattleCommand_HealNite: ; 37b7c
; fallthrough
; 37b7e
-BattleCommand_HealMorn6c: ; 37b7e
+BattleCommand_TimeBasedHealContinue: ; 37b7e
; Time- and weather-sensitive heal.
ld hl, BattleMonMaxHP
@@ -9284,7 +9494,7 @@ BattleCommand_HealMorn6c: ; 37b7e
ld a, [TimeOfDay]
cp b
jr z, .Weather
- dec c
+ dec c ; double
.Weather
ld a, [Weather]
@@ -9296,16 +9506,14 @@ BattleCommand_HealMorn6c: ; 37b7e
inc c
cp WEATHER_SUN
jr z, .Heal
-rept 2
dec c
-endr
+ dec c
.Heal
ld b, 0
ld hl, .Multipliers
-rept 2
add hl, bc
-endr
+ add hl, bc
ld a, [hli]
ld h, [hl]
@@ -9348,6 +9556,7 @@ BattleCommand_HiddenPower: ; 37be8
ret nz
callba HiddenPowerDamage
ret
+
; 37bf4
@@ -9360,6 +9569,7 @@ BattleCommand_StartRain: ; 37bf4
call AnimateCurrentMove
ld hl, DownpourText
jp StdBattleTextBox
+
; 37c07
@@ -9372,6 +9582,7 @@ BattleCommand_StartSun: ; 37c07
call AnimateCurrentMove
ld hl, SunGotBrightText
jp StdBattleTextBox
+
; 37c1a
@@ -9409,6 +9620,7 @@ BattleCommand_BellyDrum: ; 37c1a
.failed
call AnimateFailedMove
jp PrintButItFailed
+
; 37c55
@@ -9419,7 +9631,7 @@ BattleCommand_PsychUp: ; 37c55
ld de, PlayerStatLevels
ld a, [hBattleTurn]
and a
- jr z, .pointers_correct ; 37c5e $4
+ jr z, .pointers_correct
; It's the enemy's turn, so swap the pointers.
push hl
ld h, d
@@ -9433,9 +9645,9 @@ BattleCommand_PsychUp: ; 37c55
.loop
ld a, [hli]
cp BASE_STAT_LEVEL
- jr nz, .break ; 37c6a $a
+ jr nz, .break
dec b
- jr nz, .loop ; 37c6d $f8
+ jr nz, .loop
pop hl
call AnimateFailedMove
jp PrintButItFailed
@@ -9448,12 +9660,12 @@ BattleCommand_PsychUp: ; 37c55
ld [de], a
inc de
dec b
- jr nz, .loop2 ; 37c7d $fa
+ jr nz, .loop2
ld a, [hBattleTurn]
and a
- jr nz, .calc_enemy_stats ; 37c82 $5
+ jr nz, .calc_enemy_stats
call CalcPlayerStats
- jr .merge ; 37c87 $3
+ jr .merge
.calc_enemy_stats
call CalcEnemyStats
@@ -9461,6 +9673,7 @@ BattleCommand_PsychUp: ; 37c55
call AnimateCurrentMove
ld hl, CopiedStatsText
jp StdBattleTextBox
+
; 37c95
@@ -9523,6 +9736,7 @@ BattleCommand_MirrorCoat: ; 37c95
xor a
ld [AttackMissed], a
ret
+
; 37ce6
@@ -9547,6 +9761,7 @@ BattleCommand_DoubleMinimizeDamage: ; 37ce6
ld [hli], a
ld [hl], a
ret
+
; 37d02
@@ -9557,6 +9772,7 @@ BattleCommand_SkipSunCharge: ; 37d02
ret nz
ld b, charge_command
jp SkipToBattleCommand
+
; 37d0d
@@ -9564,12 +9780,12 @@ BattleCommand_CheckFutureSight: ; 37d0d
; checkfuturesight
ld hl, wPlayerFutureSightCount
- ld de, wc727
+ ld de, wPlayerFutureSightDamage
ld a, [hBattleTurn]
and a
jr z, .ok
ld hl, wEnemyFutureSightCount
- ld de, wc729
+ ld de, wEnemyFutureSightDamage
.ok
ld a, [hl]
@@ -9586,13 +9802,14 @@ BattleCommand_CheckFutureSight: ; 37d0d
ld [CurDamage + 1], a
ld b, futuresight_command
jp SkipToBattleCommand
+
; 37d34
BattleCommand_FutureSight: ; 37d34
; futuresight
call CheckUserIsCharging
- jr nz, .asm_37d4b ; 37d37 $12
+ jr nz, .AlreadyChargingFutureSight
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
ld b, a
@@ -9602,29 +9819,29 @@ BattleCommand_FutureSight: ; 37d34
ld a, BATTLE_VARS_LAST_MOVE
call GetBattleVarAddr
ld [hl], b
-.asm_37d4b
+.AlreadyChargingFutureSight
ld hl, wPlayerFutureSightCount
ld a, [hBattleTurn]
and a
- jr z, .asm_37d56 ; 37d51 $3
+ jr z, .GotFutureSightCount
ld hl, wEnemyFutureSightCount
-.asm_37d56
+.GotFutureSightCount
ld a, [hl]
and a
- jr nz, .asm_37d87 ; 37d58 $2d
- ld a, $4
+ jr nz, .failed
+ ld a, 4
ld [hl], a
call BattleCommand_LowerSub
call BattleCommand_MoveDelay
ld hl, ForesawAttackText
call StdBattleTextBox
call BattleCommand_RaiseSub
- ld de, wc727
+ ld de, wPlayerFutureSightDamage
ld a, [hBattleTurn]
and a
- jr z, .asm_37d77 ; 37d72 $3
- ld de, wc729
-.asm_37d77
+ jr z, .StoreDamage
+ ld de, wEnemyFutureSightDamage
+.StoreDamage
ld hl, CurDamage
ld a, [hl]
ld [de], a
@@ -9635,12 +9852,14 @@ BattleCommand_FutureSight: ; 37d34
ld [de], a
ld [hl], 0
jp EndMoveEffect
-.asm_37d87
+
+.failed
pop bc
call ResetDamage
call AnimateFailedMove
call PrintButItFailed
jp EndMoveEffect
+
; 37d94
@@ -9657,9 +9876,11 @@ BattleCommand_ThunderAccuracy: ; 37d94
ret nz
ld [hl], 50 percent + 1
ret
+
.rain
ld [hl], 100 percent
ret
+
; 37daa
@@ -9668,6 +9889,7 @@ CheckHiddenOpponent: ; 37daa
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
ret
+
; 37db2
@@ -9681,6 +9903,7 @@ GetUserItem: ; 37db2
.go
ld b, [hl]
jp GetItemHeldEffect
+
; 37dc1
@@ -9694,6 +9917,7 @@ GetOpponentItem: ; 37dc1
.go
ld b, [hl]
jp GetItemHeldEffect
+
; 37dd0
@@ -9716,6 +9940,7 @@ GetItemHeldEffect: ; 37dd0
ld c, h
pop hl
ret
+
; 37de9
@@ -9734,6 +9959,7 @@ AnimateCurrentMoveEitherSide: ; 37de9
pop de
pop hl
ret
+
; 37e01
@@ -9752,6 +9978,7 @@ AnimateCurrentMove: ; 37e01
pop de
pop hl
ret
+
; 37e19
@@ -9773,15 +10000,16 @@ PlayDamageAnim: ; 37e19
ld a, BATTLEANIM_PLAYER_DAMAGE
.player
- ld [wcfca], a
+ ld [wNumHits], a
jp PlayUserBattleAnim
+
; 37e36
LoadMoveAnim: ; 37e36
xor a
- ld [wcfca], a
+ ld [wNumHits], a
ld [FXAnimIDHi], a
ld a, BATTLE_VARS_MOVE_ANIM
@@ -9810,6 +10038,7 @@ PlayUserBattleAnim: ; 37e47
pop de
pop hl
ret
+
; 37e54
@@ -9819,7 +10048,7 @@ PlayOpponentBattleAnim: ; 37e54
ld a, d
ld [FXAnimIDHi], a
xor a
- ld [wcfca], a
+ ld [wNumHits], a
push hl
push de
@@ -9833,6 +10062,7 @@ PlayOpponentBattleAnim: ; 37e54
pop de
pop hl
ret
+
; 37e73
@@ -9840,6 +10070,7 @@ CallBattleCore: ; 37e73
ld a, BANK(BattleCore)
rst FarCall
ret
+
; 37e77
@@ -9847,6 +10078,7 @@ AnimateFailedMove: ; 37e77
call BattleCommand_LowerSub
call BattleCommand_MoveDelay
jp BattleCommand_RaiseSub
+
; 37e80
@@ -9855,6 +10087,7 @@ BattleCommand_MoveDelay: ; 37e80
; Wait 40 frames.
ld c, 40
jp DelayFrames
+
; 37e85
@@ -9864,6 +10097,7 @@ BattleCommand_ClearText: ; 37e85
; Used in multi-hit moves.
ld hl, .text
jp BattleTextBox
+
.text
db "@"
; 37e8c
@@ -9885,6 +10119,7 @@ SkipToBattleCommand: ; 37e8c
ld a, l
ld [BattleScriptBufferLoc], a
ret
+
; 37ea1
@@ -9896,6 +10131,7 @@ GetMoveAttr: ; 37ea1
call GetMoveByte
pop bc
ret
+
; 37ead
@@ -9906,30 +10142,35 @@ GetMoveData: ; 37ead
call AddNTimes
ld a, Bank(Moves)
jp FarCopyBytes
+
; 37ebb
GetMoveByte: ; 37ebb
ld a, BANK(Moves)
jp GetFarByte
+
; 37ec0
DisappearUser: ; 37ec0
callba _DisappearUser
ret
+
; 37ec7
AppearUserLowerSub: ; 37ec7
callba _AppearUserLowerSub
ret
+
; 37ece
AppearUserRaiseSub: ; 37ece
callba _AppearUserRaiseSub
ret
+
; 37ed5
@@ -9943,4 +10184,5 @@ _CheckBattleScene: ; 37ed5
pop de
pop hl
ret
+
; 37ee2
diff --git a/battle/menu.asm b/battle/menu.asm
new file mode 100755
index 000000000..3efcc0079
--- /dev/null
+++ b/battle/menu.asm
@@ -0,0 +1,118 @@
+LoadBattleMenu: ; 24ef2
+ ld hl, BattleMenuDataHeader
+ call LoadMenuDataHeader
+ ld a, [wd0d2]
+ ld [wMenuCursorBuffer], a
+ call InterpretBattleMenu
+ ld a, [wMenuCursorBuffer]
+ ld [wd0d2], a
+ call ExitMenu
+ ret
+; 24f0b
+
+SafariBattleMenu: ; 24f0b
+; untranslated
+ ld hl, MenuDataHeader_0x24f4e
+ call LoadMenuDataHeader
+ jr Function24f19
+; 24f13
+
+ContestBattleMenu: ; 24f13
+ ld hl, MenuDataHeader_0x24f89
+ call LoadMenuDataHeader
+; 24f19
+
+Function24f19: ; 24f19
+ ld a, [wd0d2]
+ ld [wMenuCursorBuffer], a
+ call _2DMenu
+ ld a, [wMenuCursorBuffer]
+ ld [wd0d2], a
+ call ExitMenu
+ ret
+; 24f2c
+
+BattleMenuDataHeader: ; 24f2c
+ db $40 ; flags
+ db 12, 08 ; start coords
+ db 17, 19 ; end coords
+ dw MenuData_0x24f34
+ db 1 ; default option
+; 24f34
+
+MenuData_0x24f34: ; 0x24f34
+ db $81 ; flags
+ dn 2, 2 ; rows, columns
+ db 6 ; spacing
+ dba Strings24f3d
+ dbw BANK(MenuData_0x24f34), 0
+; 0x24f3d
+
+Strings24f3d: ; 0x24f3d
+ db "FIGHT@"
+ db "<PKMN>@"
+ db "PACK@"
+ db "RUN@"
+; 24f4e
+
+MenuDataHeader_0x24f4e: ; 24f4e
+ db $40 ; flags
+ db 12, 00 ; start coords
+ db 17, 19 ; end coords
+ dw MenuData_0x24f56
+ db 1 ; default option
+; 24f56
+
+MenuData_0x24f56: ; 24f56
+ db $81 ; flags
+ dn 2, 2 ; rows, columns
+ db 11 ; spacing
+ dba Strings24f5f
+ dba Function24f7c
+; 24f5f
+
+Strings24f5f: ; 24f5f
+ db "サファりボール× @" ; "SAFARI BALL× @"
+ db "エサをなげる@" ; "THROW BAIT"
+ db "いしをなげる@" ; "THROW ROCK"
+ db "にげる@" ; "RUN"
+; 24f7c
+
+Function24f7c: ; 24f7c
+ hlcoord 17, 13
+ ld de, wSafariBallsRemaining
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+; 24f89
+
+MenuDataHeader_0x24f89: ; 24f89
+ db $40 ; flags
+ db 12, 02 ; start coords
+ db 17, 19 ; end coords
+ dw MenuData_0x24f91
+ db 1 ; default option
+; 24f91
+
+MenuData_0x24f91: ; 24f91
+ db $81 ; flags
+ dn 2, 2 ; rows, columns
+ db 12 ; spacing
+ dba Strings24f9a
+ dba Function24fb2
+; 24f9a
+
+Strings24f9a: ; 24f9a
+ db "FIGHT@"
+ db "<PKMN>", "@"
+ db "PARKBALL× @"
+ db "RUN@"
+; 24fb2
+
+Function24fb2: ; 24fb2
+ hlcoord 13, 16
+ ld de, wParkBallsRemaining
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+; 24fbf
diff --git a/battle/objects/data.asm b/battle/objects/data.asm
new file mode 100755
index 000000000..7ae0dc371
--- /dev/null
+++ b/battle/objects/data.asm
@@ -0,0 +1,573 @@
+BattleAnimObjects: ; ccb56
+battleanimobj: MACRO
+
+; ??, ??, frameset, function, ??, tile offset
+ db \1, \2, \3, \4, \5, \6
+endm
+
+
+; ANIM_OBJ_00
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_01
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_02
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_03
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_04
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_05
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_06
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_07
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, $02, $01
+
+; ANIM_OBJ_08
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_09
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_0A
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, $02, $01
+
+; ANIM_OBJ_0B
+ battleanimobj $01, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, $04, $03
+
+; ANIM_OBJ_0C
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, $04, $03
+
+; ANIM_OBJ_0D
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, $04, $03
+
+; ANIM_OBJ_0E
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, $04, $03
+
+; ANIM_OBJ_0F
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, $04, $03
+
+; ANIM_OBJ_BURNED
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, $04, $03
+
+; ANIM_OBJ_11
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, $06, $0a
+
+; ANIM_OBJ_12
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, $06, $0a
+
+; ANIM_OBJ_13
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, $06, $0a
+
+; ANIM_OBJ_14
+ battleanimobj $21, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_0B, $05, $06
+
+; ANIM_OBJ_POKE_BALL
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, $04, $0b
+
+; ANIM_OBJ_16
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, $04, $0b
+
+; ANIM_OBJ_17
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, $04, $08
+
+; ANIM_OBJ_18
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, $04, $08
+
+; ANIM_OBJ_19
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, $02, $0c
+
+; ANIM_OBJ_1A
+ battleanimobj $01, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, $02, $0c
+
+; ANIM_OBJ_1B
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, $02, $07
+
+; ANIM_OBJ_1C
+ battleanimobj $01, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, $02, $07
+
+; ANIM_OBJ_1D
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, $07, $09
+
+; ANIM_OBJ_1E
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, $07, $09
+
+; ANIM_OBJ_1F
+ battleanimobj $01, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, $07, $09
+
+; ANIM_OBJ_20
+ battleanimobj $01, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, $06, $21
+
+; ANIM_OBJ_21
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, $06, $0d
+
+; ANIM_OBJ_22
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, $06, $0d
+
+; ANIM_OBJ_23
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, $02, $0e
+
+; ANIM_OBJ_24
+ battleanimobj $61, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, $06, $04
+
+; ANIM_OBJ_25
+ battleanimobj $01, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, $06, $04
+
+; ANIM_OBJ_26
+ battleanimobj $01, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, $05, $0f
+
+; ANIM_OBJ_27
+ battleanimobj $61, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, $03, $10
+
+; ANIM_OBJ_28
+ battleanimobj $61, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, $03, $10
+
+; ANIM_OBJ_29
+ battleanimobj $01, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, $06, $0a
+
+; ANIM_OBJ_FROZEN
+ battleanimobj $01, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, $06, $0a
+
+; ANIM_OBJ_2B
+ battleanimobj $01, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, $07, $11
+
+; ANIM_OBJ_2C
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, $03, $0d
+
+; ANIM_OBJ_2D
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_2E
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_2F
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_30
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, $03, $05
+
+; ANIM_OBJ_31
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_32
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, $02, $08
+
+; ANIM_OBJ_33
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_34
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, $02, $08
+
+; ANIM_OBJ_35
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, $02, $02
+
+; ANIM_OBJ_36
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, $02, $02
+
+; ANIM_OBJ_37
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_38
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_39
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_3A
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_3B
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_3C
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, $05, $12
+
+; ANIM_OBJ_3D
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, $05, $12
+
+; ANIM_OBJ_GUST
+ battleanimobj $21, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, $02, $13
+
+; ANIM_OBJ_3F
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, $02, $14
+
+; ANIM_OBJ_40
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, $02, $14
+
+; ANIM_OBJ_41
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, $02, $14
+
+; ANIM_OBJ_42
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, $02, $14
+
+; ANIM_OBJ_43
+ battleanimobj $21, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, $02, $14
+
+; ANIM_OBJ_44
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, $03, $11
+
+; ANIM_OBJ_45
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, $05, $12
+
+; ANIM_OBJ_46
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, $02, $15
+
+; ANIM_OBJ_47
+ battleanimobj $01, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, $03, $11
+
+; ANIM_OBJ_48
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, $05, $16
+
+; ANIM_OBJ_49
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, $05, $16
+
+; ANIM_OBJ_4A
+ battleanimobj $21, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_20, $05, $06
+
+; ANIM_OBJ_4B
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, $02, $0e
+
+; ANIM_OBJ_4C
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, $02, $17
+
+; ANIM_OBJ_4D
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, $03, $11
+
+; ANIM_OBJ_4E
+ battleanimobj $61, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, $03, $10
+
+; ANIM_OBJ_4F
+ battleanimobj $61, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, $03, $10
+
+; ANIM_OBJ_50
+ battleanimobj $21, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, $03, $18
+
+; ANIM_OBJ_51
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, $02, $18
+
+; ANIM_OBJ_CHICK
+ battleanimobj $21, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, $03, $19
+
+; ANIM_OBJ_53
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, $02, $19
+
+; ANIM_OBJ_54
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, $02, $19
+
+; ANIM_OBJ_SKULL
+ battleanimobj $01, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, $02, $0c
+
+; ANIM_OBJ_56
+ battleanimobj $21, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, $07, $1a
+
+; ANIM_OBJ_57
+ battleanimobj $21, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, $07, $1a
+
+; ANIM_OBJ_58
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, $02, $1a
+
+; ANIM_OBJ_PARALYZED
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, $03, $19
+
+; ANIM_OBJ_5A
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, $02, $1b
+
+; ANIM_OBJ_5B
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_29, $02, $1c
+
+; ANIM_OBJ_5C
+ battleanimobj $21, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_29, $02, $1c
+
+; ANIM_OBJ_5D
+ battleanimobj $21, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_29, $02, $1c
+
+; ANIM_OBJ_5E
+ battleanimobj $21, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_2A, $02, $1c
+
+; ANIM_OBJ_5F
+ battleanimobj $61, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_2B, $02, $1d
+
+; ANIM_OBJ_60
+ battleanimobj $61, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, $02, $1d
+
+; ANIM_OBJ_61
+ battleanimobj $01, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, $04, $1e
+
+; ANIM_OBJ_62
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, $02, $15
+
+; ANIM_OBJ_63
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, $07, $19
+
+; ANIM_OBJ_64
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, $02, $14
+
+; ANIM_OBJ_65
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, $02, $11
+
+; ANIM_OBJ_66
+ battleanimobj $01, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_2A, $04, $23
+
+; ANIM_OBJ_67
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, $02, $1f
+
+; ANIM_OBJ_68
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, $02, $1f
+
+; ANIM_OBJ_69
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, $02, $1f
+
+; ANIM_OBJ_6A
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, $03, $23
+
+; ANIM_OBJ_6B
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, $02, $1f
+
+; ANIM_OBJ_6C
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11
+
+; ANIM_OBJ_6D
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11
+
+; ANIM_OBJ_6E
+ battleanimobj $21, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, $02, $20
+
+; ANIM_OBJ_6F
+ battleanimobj $21, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, $02, $04
+
+; ANIM_OBJ_70
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, $02, $18
+
+; ANIM_OBJ_71
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, $06, $0d
+
+; ANIM_OBJ_72
+ battleanimobj $01, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, $03, $12
+
+; ANIM_OBJ_73
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, $02, $08
+
+; ANIM_OBJ_74
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, $02, $1c
+
+; ANIM_OBJ_75
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, $02, $15
+
+; ANIM_OBJ_76
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, $02, $14
+
+; ANIM_OBJ_77
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, $02, $11
+
+; ANIM_OBJ_78
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, $02, $22
+
+; ANIM_OBJ_79
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, $02, $22
+
+; ANIM_OBJ_7A
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, $02, $1f
+
+; ANIM_OBJ_7B
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, $03, $11
+
+; ANIM_OBJ_7C
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_7D
+ battleanimobj $a1, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, $06, $13
+
+; ANIM_OBJ_HEART
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, $04, $23
+
+; ANIM_OBJ_7F
+ battleanimobj $01, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, $04, $03
+
+; ANIM_OBJ_80
+ battleanimobj $01, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, $04, $03
+
+; ANIM_OBJ_81
+ battleanimobj $21, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_29, $02, $1f
+
+; ANIM_OBJ_82
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, $02, $1f
+
+; ANIM_OBJ_83
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, $02, $1f
+
+; ANIM_OBJ_84
+ battleanimobj $21, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, $03, $1f
+
+; ANIM_OBJ_85
+ battleanimobj $01, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, $02, $0e
+
+; ANIM_OBJ_86
+ battleanimobj $21, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, $04, $1f
+
+; ANIM_OBJ_87
+ battleanimobj $21, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, $02, $1f
+
+; ANIM_OBJ_88
+ battleanimobj $21, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, $02, $1f
+
+; ANIM_OBJ_89
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, $02, $1f
+
+; ANIM_OBJ_8A
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, $03, $23
+
+; ANIM_OBJ_8B
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, $02, $19
+
+; ANIM_OBJ_8C
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, $02, $15
+
+; ANIM_OBJ_8D
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, $04, $19
+
+; ANIM_OBJ_8E
+ battleanimobj $21, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, $02, $1f
+
+; ANIM_OBJ_8F
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, $02, $0a
+
+; ANIM_OBJ_90
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, $04, $03
+
+; ANIM_OBJ_91
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, $02, $08
+
+; ANIM_OBJ_92
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, $02, $1b
+
+; ANIM_OBJ_93
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, $04, $23
+
+; ANIM_OBJ_94
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, $02, $25
+
+; ANIM_OBJ_95
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, $02, $25
+
+; ANIM_OBJ_96
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, $02, $25
+
+; ANIM_OBJ_97
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, $06, $25
+
+; ANIM_OBJ_98
+ battleanimobj $61, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, $05, $23
+
+; ANIM_OBJ_99
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, $02, $23
+
+; ANIM_OBJ_9A
+ battleanimobj $21, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, $03, $23
+
+; ANIM_OBJ_9B
+ battleanimobj $21, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, $02, $25
+
+; ANIM_OBJ_9C
+ battleanimobj $21, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, $03, $24
+
+; ANIM_OBJ_9D
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, $02, $24
+
+; ANIM_OBJ_9E
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, $03, $24
+
+; ANIM_OBJ_9F
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, $04, $12
+
+; ANIM_OBJ_A0
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_A1
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_A2
+ battleanimobj $21, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, $07, $0f
+
+; ANIM_OBJ_A3
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, $03, $05
+
+; ANIM_OBJ_A4
+ battleanimobj $21, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, $02, $25
+
+; ANIM_OBJ_A5
+ battleanimobj $61, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, $02, $23
+
+; ANIM_OBJ_A6
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, $02, $0e
+
+; ANIM_OBJ_A7
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, $02, $24
+
+; ANIM_OBJ_A8
+ battleanimobj $21, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, $02, $13
+
+; ANIM_OBJ_A9
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, $02, $13
+
+; ANIM_OBJ_AA
+ battleanimobj $01, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_AB
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, $02, $0e
+
+; ANIM_OBJ_AC
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, $06, $17
+
+; ANIM_OBJ_AD
+ battleanimobj $01, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, $02, $01
+
+; ANIM_OBJ_AE
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, $03, $11
+
+; ANIM_OBJ_AF
+ battleanimobj $21, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, $02, $04
+
+; ANIM_OBJ_B0
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, $04, $1c
+
+; ANIM_OBJ_B1
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, $02, $19
+
+; ANIM_OBJ_B2
+ battleanimobj $01, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, $07, $09
+
+; ANIM_OBJ_B3
+ battleanimobj $61, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, $03, $27
+
+; ANIM_OBJ_B4
+ battleanimobj $61, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, $06, $15
+
+; ANIM_OBJ_B5
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, $07, $09
+
+; ANIM_OBJ_FLOWER
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, $04, $1e
+
+; ANIM_OBJ_COTTON
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, $04, $1f
+
+; ANIM_OBJ_PLAYERFEETFOLLOW
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, $00, $28
+
+; ANIM_OBJ_ENEMYFEETFOLLOW
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, $01, $29
+
+; ANIM_OBJ_BA
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, $00, $28
+
+; ANIM_OBJ_BB
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, $01, $29
+
+; ccfbe
diff --git a/battle/objects/engine.asm b/battle/objects/engine.asm
new file mode 100755
index 000000000..eca0af8a1
--- /dev/null
+++ b/battle/objects/engine.asm
@@ -0,0 +1,314 @@
+QueueBattleAnimation: ; cc9a1 (33:49a1)
+ ld hl, ActiveAnimObjects
+ ld e, 10
+.loop
+ ld a, [hl]
+ and a
+ jr z, .done
+ ld bc, BATTLEANIMSTRUCT_LENGTH
+ add hl, bc
+ dec e
+ jr nz, .loop
+ scf
+ ret
+
+.done
+ ld c, l
+ ld b, h
+ ld hl, wNumActiveBattleAnims
+ inc [hl]
+ call InitBattleAnimation
+ ret
+
+DeinitBattleAnimation: ; cc9bd
+ ld hl, BATTLEANIMSTRUCT_INDEX
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; cc9c4
+
+InitBattleAnimation: ; cc9c4 (33:49c4)
+ ld a, [wBattleAnimTemp0]
+ ld e, a
+ ld d, 0
+ ld hl, BattleAnimObjects
+rept 6
+ add hl, de
+endr
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_INDEX
+ add hl, bc
+ ld a, [wNumActiveBattleAnims]
+ ld [hli], a ; Index
+ ld a, [de]
+ inc de
+ ld [hli], a ; 01
+ ld a, [de]
+ inc de
+ ld [hli], a ; 02
+ ld a, [de]
+ inc de
+ ld [hli], a ; Frameset ID
+ ld a, [de]
+ inc de
+ ld [hli], a ; Function
+ ld a, [de]
+ inc de
+ ld [hli], a ; 05
+ ld a, [de]
+ call GetBattleAnimTileOffset
+ ld [hli], a ; Tile ID
+ ld a, [wBattleAnimTemp1]
+ ld [hli], a ; X Coord
+ ld a, [wBattleAnimTemp2]
+ ld [hli], a ; Y Coord
+ xor a
+ ld [hli], a ; X Offset
+ ld [hli], a ; Y Offset
+ ld a, [wBattleAnimTemp3]
+ ld [hli], a ; 0b
+ xor a
+ ld [hli], a ; 0c
+ dec a
+ ld [hli], a ; 0d
+ xor a
+ ld [hli], a ; 0e
+ ld [hli], a ; 0f
+ ld [hl], a ; 10
+ ret
+
+BattleAnimOAMUpdate: ; cca09
+ call InitBattleAnimBuffer
+ call GetBattleAnimFrame
+ cp -3
+ jp z, .done
+ cp -4
+ jp z, .delete
+ push af
+ ld hl, wBattleAnimTempOAMFlags
+ ld a, [wBattleAnimTemp7]
+ xor [hl]
+ and $e0
+ ld [hl], a
+ pop af
+ push bc
+ call GetBattleAnimOAMPointer
+ ld a, [wBattleAnimTempTileID]
+ add [hl]
+ ld [wBattleAnimTempTileID], a
+ inc hl
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wBattleAnimOAMPointerLo]
+ ld e, a
+ ld d, Sprites / $100
+.loop
+ ld a, [wBattleAnimTempYCoord]
+ ld b, a
+ ld a, [wBattleAnimTempYOffset]
+ add b
+ ld b, a
+ push hl
+ ld a, [hl]
+ ld hl, wBattleAnimTempOAMFlags
+ bit 6, [hl]
+ jr z, .no_yflip
+ add $8
+ xor $ff
+ inc a
+
+.no_yflip
+ pop hl
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wBattleAnimTempXCoord]
+ ld b, a
+ ld a, [wBattleAnimTempXOffset]
+ add b
+ ld b, a
+ push hl
+ ld a, [hl]
+ ld hl, wBattleAnimTempOAMFlags
+ bit 5, [hl]
+ jr z, .no_xflip
+ add $8
+ xor $ff
+ inc a
+
+.no_xflip
+ pop hl
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wBattleAnimTempTileID]
+ add $31
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wBattleAnimTempOAMFlags]
+ ld b, a
+ ld a, [hl]
+ xor b
+ and $e0
+ ld b, a
+ ld a, [hl]
+ and $10
+ or b
+ ld b, a
+ ld a, [wBattleAnimTempPalette]
+ and $f
+ or b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, e
+ ld [wBattleAnimOAMPointerLo], a
+ cp $a0
+ jr nc, .exit_set_carry
+ dec c
+ jr nz, .loop
+ pop bc
+ jr .done
+
+.delete
+ call DeinitBattleAnimation
+
+.done
+ and a
+ ret
+
+.exit_set_carry
+ pop bc
+ scf
+ ret
+
+; ccaaa
+
+InitBattleAnimBuffer: ; ccaaa
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ ld a, [hl]
+ and %10000000
+ ld [wBattleAnimTempOAMFlags], a
+ xor a
+ ld [wBattleAnimTemp7], a
+ ld hl, BATTLEANIMSTRUCT_PALETTE
+ add hl, bc
+ ld a, [hl]
+ ld [wBattleAnimTempPalette], a
+ ld hl, BATTLEANIMSTRUCT_02
+ add hl, bc
+ ld a, [hl]
+ ld [wBattleAnimTemp1], a
+ ld hl, BATTLEANIMSTRUCT_TILEID
+ add hl, bc
+ ld a, [hli]
+ ld [wBattleAnimTempTileID], a
+ ld a, [hli]
+ ld [wBattleAnimTempXCoord], a
+ ld a, [hli]
+ ld [wBattleAnimTempYCoord], a
+ ld a, [hli]
+ ld [wBattleAnimTempXOffset], a
+ ld a, [hli]
+ ld [wBattleAnimTempYOffset], a
+ ld a, [hBattleTurn]
+ and a
+ ret z
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ ld a, [hl]
+ ld [wBattleAnimTempOAMFlags], a
+ bit 0, [hl]
+ ret z
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hli]
+ ld d, a
+ ld a, (-10 * 8) + 4
+ sub d
+ ld [wBattleAnimTempXCoord], a
+ ld a, [hli]
+ ld d, a
+ ld a, [wBattleAnimTemp1]
+ cp $ff
+ jr nz, .check_kinesis_softboiled_milkdrink
+ ld a, 5 * 8
+ add d
+ jr .done
+
+.check_kinesis_softboiled_milkdrink
+ sub d
+ push af
+ ld a, [FXAnimIDHi]
+ or a
+ jr nz, .no_sub
+ ld a, [FXAnimIDLo]
+ cp KINESIS
+ jr z, .kinesis
+ cp SOFTBOILED
+ jr z, .softboiled
+ cp MILK_DRINK
+ jr nz, .no_sub
+.kinesis
+.softboiled
+.milk_drink
+ pop af
+ sub 1 * 8
+ jr .done
+
+.no_sub
+ pop af
+.done
+ ld [wBattleAnimTempYCoord], a
+ ld a, [hli]
+ xor $ff
+ inc a
+ ld [wBattleAnimTempXOffset], a
+ ret
+
+; ccb31
+
+GetBattleAnimTileOffset: ; ccb31 (33:4b31)
+ push hl
+ push bc
+ ld hl, wBattleAnimTileDict
+ ld b, a
+ ld c, 10 / 2
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .load
+ inc hl
+ dec c
+ jr nz, .loop
+ xor a
+ jr .done
+
+.load
+ ld a, [hl]
+.done
+ pop bc
+ pop hl
+ ret
+
+_ExecuteBGEffects: ; ccb48
+ callab ExecuteBGEffects
+ ret
+
+; ccb4f
+
+_QueueBGEffect: ; ccb4f (33:4b4f)
+ callab QueueBGEffect
+ ret
+
+; ccb56 (33:4b56)
diff --git a/battle/objects/framesets.asm b/battle/objects/framesets.asm
new file mode 100755
index 000000000..587bb01da
--- /dev/null
+++ b/battle/objects/framesets.asm
@@ -0,0 +1,1270 @@
+BattleAnimFrameData: ; ce85e
+ dw .Frameset_00 ; 00
+ dw .Frameset_01 ; 01
+ dw .Frameset_02 ; 02
+ dw .Frameset_03 ; 03
+ dw .Frameset_04 ; 04
+ dw .Frameset_05 ; 05
+ dw .Frameset_06 ; 06
+ dw .Frameset_07 ; 07
+ dw .Frameset_08 ; 08
+ dw .Frameset_09 ; 09
+ dw .Frameset_0a ; 0a
+ dw .Frameset_0b ; 0b
+ dw .Frameset_0c ; 0c
+ dw .Frameset_0d ; 0d
+ dw .Frameset_0e ; 0e
+ dw .Frameset_0f ; 0f
+ dw .Frameset_10 ; 10
+ dw .Frameset_11 ; 11
+ dw .Frameset_12 ; 12
+ dw .Frameset_13 ; 13
+ dw .Frameset_14 ; 14
+ dw .Frameset_15 ; 15
+ dw .Frameset_16 ; 16
+ dw .Frameset_17 ; 17
+ dw .Frameset_18 ; 18
+ dw .Frameset_19 ; 19
+ dw .Frameset_1a ; 1a
+ dw .Frameset_1b ; 1b
+ dw .Frameset_1c ; 1c
+ dw .Frameset_1d ; 1d
+ dw .Frameset_1e ; 1e
+ dw .Frameset_1f ; 1f
+ dw .Frameset_20 ; 20
+ dw .Frameset_21 ; 21
+ dw .Frameset_22 ; 22
+ dw .Frameset_23 ; 23
+ dw .Frameset_24 ; 24
+ dw .Frameset_25 ; 25
+ dw .Frameset_26 ; 26
+ dw .Frameset_27 ; 27
+ dw .Frameset_28 ; 28
+ dw .Frameset_29 ; 29
+ dw .Frameset_2a ; 2a
+ dw .Frameset_2b ; 2b
+ dw .Frameset_2c ; 2c
+ dw .Frameset_2d ; 2d
+ dw .Frameset_2e ; 2e
+ dw .Frameset_2f ; 2f
+ dw .Frameset_30 ; 30
+ dw .Frameset_31 ; 31
+ dw .Frameset_32 ; 32
+ dw .Frameset_33 ; 33
+ dw .Frameset_34 ; 34
+ dw .Frameset_35 ; 35
+ dw .Frameset_36 ; 36
+ dw .Frameset_37 ; 37
+ dw .Frameset_38 ; 38
+ dw .Frameset_39 ; 39
+ dw .Frameset_3a ; 3a
+ dw .Frameset_3b ; 3b
+ dw .Frameset_3c ; 3c
+ dw .Frameset_3d ; 3d
+ dw .Frameset_3e ; 3e
+ dw .Frameset_3f ; 3f
+ dw .Frameset_40 ; 40
+ dw .Frameset_41 ; 41
+ dw .Frameset_42 ; 42
+ dw .Frameset_43 ; 43
+ dw .Frameset_44 ; 44
+ dw .Frameset_45 ; 45
+ dw .Frameset_46 ; 46
+ dw .Frameset_47 ; 47
+ dw .Frameset_48 ; 48
+ dw .Frameset_49 ; 49
+ dw .Frameset_4a ; 4a
+ dw .Frameset_4b ; 4b
+ dw .Frameset_4c ; 4c
+ dw .Frameset_4d ; 4d
+ dw .Frameset_4e ; 4e
+ dw .Frameset_4f ; 4f
+ dw .Frameset_50 ; 50
+ dw .Frameset_51 ; 51
+ dw .Frameset_52 ; 52
+ dw .Frameset_53 ; 53
+ dw .Frameset_54 ; 54
+ dw .Frameset_55 ; 55
+ dw .Frameset_56 ; 56
+ dw .Frameset_57 ; 57
+ dw .Frameset_58 ; 58
+ dw .Frameset_59 ; 59
+ dw .Frameset_5a ; 5a
+ dw .Frameset_5b ; 5b
+ dw .Frameset_5c ; 5c
+ dw .Frameset_5d ; 5d
+ dw .Frameset_5e ; 5e
+ dw .Frameset_5f ; 5f
+ dw .Frameset_60 ; 60
+ dw .Frameset_61 ; 61
+ dw .Frameset_62 ; 62
+ dw .Frameset_63 ; 63
+ dw .Frameset_64 ; 64
+ dw .Frameset_65 ; 65
+ dw .Frameset_66 ; 66
+ dw .Frameset_67 ; 67
+ dw .Frameset_68 ; 68
+ dw .Frameset_69 ; 69
+ dw .Frameset_6a ; 6a
+ dw .Frameset_6b ; 6b
+ dw .Frameset_6c ; 6c
+ dw .Frameset_6d ; 6d
+ dw .Frameset_6e ; 6e
+ dw .Frameset_6f ; 6f
+ dw .Frameset_70 ; 70
+ dw .Frameset_71 ; 71
+ dw .Frameset_72 ; 72
+ dw .Frameset_73 ; 73
+ dw .Frameset_74 ; 74
+ dw .Frameset_75 ; 75
+ dw .Frameset_76 ; 76
+ dw .Frameset_77 ; 77
+ dw .Frameset_78 ; 78
+ dw .Frameset_79 ; 79
+ dw .Frameset_7a ; 7a
+ dw .Frameset_7b ; 7b
+ dw .Frameset_7c ; 7c
+ dw .Frameset_7d ; 7d
+ dw .Frameset_7e ; 7e
+ dw .Frameset_7f ; 7f
+ dw .Frameset_80 ; 80
+ dw .Frameset_81 ; 81
+ dw .Frameset_82 ; 82
+ dw .Frameset_83 ; 83
+ dw .Frameset_84 ; 84
+ dw .Frameset_85 ; 85
+ dw .Frameset_86 ; 86
+ dw .Frameset_87 ; 87
+ dw .Frameset_88 ; 88
+ dw .Frameset_89 ; 89
+ dw .Frameset_8a ; 8a
+ dw .Frameset_8b ; 8b
+ dw .Frameset_8c ; 8c
+ dw .Frameset_8d ; 8d
+ dw .Frameset_8e ; 8e
+ dw .Frameset_8f ; 8f
+ dw .Frameset_90 ; 90
+ dw .Frameset_91 ; 91
+ dw .Frameset_92 ; 92
+ dw .Frameset_93 ; 93
+ dw .Frameset_94 ; 94
+ dw .Frameset_95 ; 95
+ dw .Frameset_96 ; 96
+ dw .Frameset_97 ; 97
+ dw .Frameset_98 ; 98
+ dw .Frameset_99 ; 99
+ dw .Frameset_9a ; 9a
+ dw .Frameset_9b ; 9b
+ dw .Frameset_9c ; 9c
+ dw .Frameset_9d ; 9d
+ dw .Frameset_9e ; 9e
+ dw .Frameset_9f ; 9f
+ dw .Frameset_a0 ; a0
+ dw .Frameset_a1 ; a1
+ dw .Frameset_a2 ; a2
+ dw .Frameset_a3 ; a3
+ dw .Frameset_a4 ; a4
+ dw .Frameset_a5 ; a5
+ dw .Frameset_a6 ; a6
+ dw .Frameset_a7 ; a7
+ dw .Frameset_a8 ; a8
+ dw .Frameset_a9 ; a9
+ dw .Frameset_aa ; aa
+ dw .Frameset_ab ; ab
+ dw .Frameset_ac ; ac
+ dw .Frameset_ad ; ad
+ dw .Frameset_ae ; ae
+ dw .Frameset_af ; af
+ dw .Frameset_b0 ; b0
+ dw .Frameset_b1 ; b1
+ dw .Frameset_b2 ; b2
+ dw .Frameset_b3 ; b3
+ dw .Frameset_b4 ; b4
+ dw .Frameset_b5 ; b5
+ dw .Frameset_b6 ; b6
+ dw .Frameset_b7 ; b7
+ dw .Frameset_b8 ; b8
+
+ ; OAM index (see battle/objects/oam.asm), flip flags / duration
+.Frameset_00
+ db BATTLEANIMOAMSET_00, $06
+ db -4
+
+.Frameset_01
+ db BATTLEANIMOAMSET_01, $06
+ db -4
+
+.Frameset_02
+ db BATTLEANIMOAMSET_02, $06
+ db -4
+
+.Frameset_03
+ db BATTLEANIMOAMSET_03, $06
+ db -4
+
+.Frameset_04
+ db BATTLEANIMOAMSET_04, $06
+ db -4
+
+.Frameset_05
+ db BATTLEANIMOAMSET_05, $06
+ db -4
+
+.Frameset_06
+ db BATTLEANIMOAMSET_06, $06
+ db -4
+
+.Frameset_07
+ db BATTLEANIMOAMSET_03, $04
+ db BATTLEANIMOAMSET_01, $01
+ db BATTLEANIMOAMSET_03, $04
+ db BATTLEANIMOAMSET_01, $01
+ db BATTLEANIMOAMSET_03, $04
+ db BATTLEANIMOAMSET_01, $01
+ db BATTLEANIMOAMSET_03, $04
+ db BATTLEANIMOAMSET_01, $01
+ db -4
+
+.Frameset_3e
+ db BATTLEANIMOAMSET_4B, $02
+ db BATTLEANIMOAMSET_4C, $02
+ db BATTLEANIMOAMSET_4D, $04
+ db BATTLEANIMOAMSET_4E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $02
+ db -4
+
+.Frameset_3f
+ db BATTLEANIMOAMSET_4B, $42
+ db BATTLEANIMOAMSET_4C, $42
+ db BATTLEANIMOAMSET_4D, $44
+ db BATTLEANIMOAMSET_4E, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $42
+ db -4
+
+.Frameset_40
+ db BATTLEANIMOAMSET_4B, $c2
+ db BATTLEANIMOAMSET_4C, $c2
+ db BATTLEANIMOAMSET_4D, $c4
+ db BATTLEANIMOAMSET_4E, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $c2
+ db -4
+
+.Frameset_41
+ db BATTLEANIMOAMSET_4B, $01
+ db BATTLEANIMOAMSET_4C, $01
+ db BATTLEANIMOAMSET_4D, $01
+ db BATTLEANIMOAMSET_4F, $01
+ db BATTLEANIMOAMSET_50, $01
+ db BATTLEANIMOAMSET_51, $01
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -4
+
+.Frameset_42
+ db BATTLEANIMOAMSET_4B, $41
+ db BATTLEANIMOAMSET_4C, $41
+ db BATTLEANIMOAMSET_4D, $41
+ db BATTLEANIMOAMSET_4F, $41
+ db BATTLEANIMOAMSET_50, $41
+ db BATTLEANIMOAMSET_51, $41
+ db BATTLEANIMOAMSET_52, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $42
+ db -4
+
+.Frameset_08
+ db BATTLEANIMOAMSET_00, $03
+ db BATTLEANIMOAMSET_07, $03
+ db BATTLEANIMOAMSET_08, $03
+ db BATTLEANIMOAMSET_09, $03
+ db -4
+
+.Frameset_09
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $07
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $47
+ db -2
+
+.Frameset_0a
+ db BATTLEANIMOAMSET_0C, $08
+ db -1
+
+.Frameset_0b
+ db BATTLEANIMOAMSET_0D, $08
+ db -1
+
+.Frameset_0c
+ db BATTLEANIMOAMSET_0A, $08
+ db -1
+
+.Frameset_0d
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $07
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $47
+ db BATTLEANIMOAMSET_0A, $07
+ db -1
+
+.Frameset_0e
+ db BATTLEANIMOAMSET_0A, $08
+ db -1
+
+.Frameset_0f
+ db BATTLEANIMOAMSET_0A, $04
+ db BATTLEANIMOAMSET_0E, $04
+ db -2
+
+.Frameset_10
+ db BATTLEANIMOAMSET_0F, $04
+ db BATTLEANIMOAMSET_10, $04
+ db -2
+
+.Frameset_11
+ db BATTLEANIMOAMSET_10, $04
+ db BATTLEANIMOAMSET_0F, $04
+ db BATTLEANIMOAMSET_0E, $04
+ db BATTLEANIMOAMSET_0A, $04
+ db BATTLEANIMOAMSET_0E, $04
+ db BATTLEANIMOAMSET_0A, $04
+ db BATTLEANIMOAMSET_0E, $04
+ db BATTLEANIMOAMSET_0A, $04
+ db -4
+
+.Frameset_12
+ db BATTLEANIMOAMSET_10, $01
+ db BATTLEANIMOAMSET_0F, $01
+ db BATTLEANIMOAMSET_12, $01
+ db BATTLEANIMOAMSET_11, $01
+ db BATTLEANIMOAMSET_12, $01
+ db BATTLEANIMOAMSET_0F, $01
+ db -2
+
+.Frameset_13
+ db BATTLEANIMOAMSET_10, $03
+ db BATTLEANIMOAMSET_0F, $03
+ db BATTLEANIMOAMSET_12, $01
+ db -3, $01
+ db BATTLEANIMOAMSET_12, $01
+ db -3, $01
+ db BATTLEANIMOAMSET_12, $01
+ db -3, $01
+ db BATTLEANIMOAMSET_12, $01
+ db -3, $01
+ db BATTLEANIMOAMSET_12, $03
+ db -4
+
+.Frameset_14
+ db BATTLEANIMOAMSET_13, $14
+ db -4
+
+.Frameset_15
+ db BATTLEANIMOAMSET_10, $01
+ db BATTLEANIMOAMSET_0F, $01
+ db -2
+
+.Frameset_16
+ db BATTLEANIMOAMSET_14, $08
+ db -1
+
+.Frameset_17
+ db BATTLEANIMOAMSET_17, $04
+ db BATTLEANIMOAMSET_16, $08
+ db BATTLEANIMOAMSET_15, $08
+ db BATTLEANIMOAMSET_16, $08
+ db BATTLEANIMOAMSET_17, $04
+ db BATTLEANIMOAMSET_17, $04
+ db BATTLEANIMOAMSET_16, $48
+ db BATTLEANIMOAMSET_15, $48
+ db BATTLEANIMOAMSET_16, $48
+ db BATTLEANIMOAMSET_17, $04
+ db -2
+
+.Frameset_56
+ db BATTLEANIMOAMSET_69, $08
+ db -1
+
+.Frameset_57
+ db BATTLEANIMOAMSET_69, $20
+ db BATTLEANIMOAMSET_6A, $04
+ db BATTLEANIMOAMSET_6B, $04
+ db BATTLEANIMOAMSET_6D, $04
+ db BATTLEANIMOAMSET_6C, $04
+ db -1
+
+.Frameset_58
+ db BATTLEANIMOAMSET_6C, $08
+ db BATTLEANIMOAMSET_6D, $08
+ db -2
+
+.Frameset_18
+ db BATTLEANIMOAMSET_18, $04
+ db BATTLEANIMOAMSET_19, $04
+ db BATTLEANIMOAMSET_1A, $04
+ db -4
+
+.Frameset_19
+ db BATTLEANIMOAMSET_1B, $08
+ db -1
+
+.Frameset_1a
+ db BATTLEANIMOAMSET_0F, $08
+ db -1
+
+.Frameset_1b
+ db BATTLEANIMOAMSET_1C, $08
+ db -1
+
+.Frameset_1c
+ db BATTLEANIMOAMSET_0A, $08
+ db -4
+
+.Frameset_1d
+ db BATTLEANIMOAMSET_1D, $08
+ db -1
+
+.Frameset_1e
+ db BATTLEANIMOAMSET_17, $08
+ db -1
+
+.Frameset_1f
+ db BATTLEANIMOAMSET_0F, $03
+ db BATTLEANIMOAMSET_10, $03
+ db BATTLEANIMOAMSET_1E, $03
+ db -1
+
+.Frameset_20
+ db BATTLEANIMOAMSET_1F, $10
+ db BATTLEANIMOAMSET_20, $03
+ db -4
+
+.Frameset_21
+ db BATTLEANIMOAMSET_20, $08
+ db -1
+
+.Frameset_22
+ db BATTLEANIMOAMSET_20, $08
+ db BATTLEANIMOAMSET_21, $08
+ db BATTLEANIMOAMSET_1B, $08
+ db BATTLEANIMOAMSET_21, $08
+ db -2
+
+.Frameset_23
+ db BATTLEANIMOAMSET_22, $08
+ db -1
+
+.Frameset_24
+ db BATTLEANIMOAMSET_1B, $08
+ db -1
+
+.Frameset_25
+ db BATTLEANIMOAMSET_23, $08
+ db -1
+
+.Frameset_26
+ db BATTLEANIMOAMSET_24, $08
+ db -1
+
+.Frameset_27
+ db BATTLEANIMOAMSET_25, $08
+ db -1
+
+.Frameset_28
+ db BATTLEANIMOAMSET_26, $08
+ db BATTLEANIMOAMSET_27, $08
+ db -1
+
+.Frameset_29
+ db BATTLEANIMOAMSET_28, $08
+ db BATTLEANIMOAMSET_29, $08
+ db -4
+
+.Frameset_2a
+ db BATTLEANIMOAMSET_2A, $01
+ db BATTLEANIMOAMSET_2B, $01
+ db BATTLEANIMOAMSET_2C, $01
+ db BATTLEANIMOAMSET_2D, $01
+ db BATTLEANIMOAMSET_2E, $01
+ db BATTLEANIMOAMSET_2D, $01
+ db BATTLEANIMOAMSET_2C, $01
+ db BATTLEANIMOAMSET_2B, $01
+ db BATTLEANIMOAMSET_2A, $01
+ db -4
+
+.Frameset_2b
+ db BATTLEANIMOAMSET_14, $01
+ db BATTLEANIMOAMSET_15, $01
+ db -2
+
+.Frameset_2c
+ db BATTLEANIMOAMSET_2F, $04
+ db BATTLEANIMOAMSET_30, $28
+ db -4
+
+.Frameset_2d
+ db BATTLEANIMOAMSET_31, $08
+ db -1
+
+.Frameset_2e
+ db BATTLEANIMOAMSET_32, $20
+ db BATTLEANIMOAMSET_33, $20
+ db BATTLEANIMOAMSET_34, $20
+ db BATTLEANIMOAMSET_35, $20 ; fallthrough
+.Frameset_2f
+ db -3, $02
+ db BATTLEANIMOAMSET_35, $04
+ db -3, $02
+ db BATTLEANIMOAMSET_35, $04
+ db -3, $02
+ db BATTLEANIMOAMSET_35, $04
+ db -3, $02
+ db BATTLEANIMOAMSET_35, $04
+ db -4
+
+.Frameset_30
+ db BATTLEANIMOAMSET_14, $04
+ db BATTLEANIMOAMSET_15, $04
+ db -2
+
+.Frameset_31
+ db BATTLEANIMOAMSET_36, $02
+ db BATTLEANIMOAMSET_37, $02
+ db BATTLEANIMOAMSET_38, $02
+ db BATTLEANIMOAMSET_39, $20
+ db -4
+
+.Frameset_32
+ db BATTLEANIMOAMSET_3A, $02
+ db BATTLEANIMOAMSET_3B, $02
+ db BATTLEANIMOAMSET_3C, $02
+ db BATTLEANIMOAMSET_3D, $20
+ db -4
+
+.Frameset_33
+ db BATTLEANIMOAMSET_3A, $42
+ db BATTLEANIMOAMSET_3B, $42
+ db BATTLEANIMOAMSET_3C, $42
+ db BATTLEANIMOAMSET_3D, $60
+ db -4
+
+.Frameset_34
+ db BATTLEANIMOAMSET_3E, $08
+ db BATTLEANIMOAMSET_3F, $08
+ db BATTLEANIMOAMSET_40, $08
+ db -1
+
+.Frameset_35
+ db BATTLEANIMOAMSET_40, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_40, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_41, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_41, $02
+ db -3, $02
+ db -2
+
+.Frameset_36
+ db BATTLEANIMOAMSET_42, $02
+ db BATTLEANIMOAMSET_43, $02
+ db BATTLEANIMOAMSET_44, $02
+ db BATTLEANIMOAMSET_45, $02
+ db -2
+
+.Frameset_37
+ db BATTLEANIMOAMSET_19, $02
+ db -3, $02
+ db -2
+
+.Frameset_38
+ db BATTLEANIMOAMSET_46, $04
+ db BATTLEANIMOAMSET_47, $04
+ db -2
+
+.Frameset_39
+ db BATTLEANIMOAMSET_18, $02
+ db -3, $02
+ db -2
+
+.Frameset_3a
+ db BATTLEANIMOAMSET_48, $08
+ db -1
+
+.Frameset_3b
+ db BATTLEANIMOAMSET_48, $48
+ db -1
+
+.Frameset_3c
+ db BATTLEANIMOAMSET_49, $08
+ db -1
+
+.Frameset_3d
+ db BATTLEANIMOAMSET_4A, $08
+ db -1
+
+.Frameset_43
+ db BATTLEANIMOAMSET_20, $10
+ db BATTLEANIMOAMSET_1F, $10
+ db BATTLEANIMOAMSET_1E, $10
+ db -1
+
+.Frameset_4c
+ db BATTLEANIMOAMSET_20, $08
+ db BATTLEANIMOAMSET_1F, $08
+ db BATTLEANIMOAMSET_1E, $08
+ db -1
+
+.Frameset_44
+ db -3, $14
+ db BATTLEANIMOAMSET_55, $28
+ db BATTLEANIMOAMSET_54, $28
+ db BATTLEANIMOAMSET_53, $14
+ db -3, $04
+ db BATTLEANIMOAMSET_53, $04
+ db -3, $04
+ db BATTLEANIMOAMSET_53, $04
+ db -3, $04
+ db BATTLEANIMOAMSET_53, $04
+ db -4
+
+.Frameset_7e
+ db BATTLEANIMOAMSET_1E, $08
+ db BATTLEANIMOAMSET_1F, $08
+ db BATTLEANIMOAMSET_20, $08
+ db -4
+
+.Frameset_45
+ db -3, $00
+ db BATTLEANIMOAMSET_14, $00
+ db BATTLEANIMOAMSET_15, $00
+ db BATTLEANIMOAMSET_14, $40
+ db -3, $00
+ db BATTLEANIMOAMSET_16, $40
+ db BATTLEANIMOAMSET_15, $00
+ db BATTLEANIMOAMSET_16, $00
+ db -2
+
+.Frameset_46
+ db BATTLEANIMOAMSET_56, $02
+ db BATTLEANIMOAMSET_57, $04
+ db -4
+
+.Frameset_47
+ db BATTLEANIMOAMSET_56, $c2
+ db BATTLEANIMOAMSET_57, $c4
+ db -4
+
+.Frameset_48
+ db BATTLEANIMOAMSET_56, $01
+ db BATTLEANIMOAMSET_57, $01
+ db BATTLEANIMOAMSET_58, $01
+ db BATTLEANIMOAMSET_57, $c1
+ db BATTLEANIMOAMSET_58, $c1
+ db BATTLEANIMOAMSET_57, $02
+ db -4
+
+.Frameset_49
+ db BATTLEANIMOAMSET_56, $c1
+ db BATTLEANIMOAMSET_57, $c1
+ db BATTLEANIMOAMSET_58, $c1
+ db BATTLEANIMOAMSET_57, $01
+ db BATTLEANIMOAMSET_58, $01
+ db BATTLEANIMOAMSET_57, $c2
+ db -4
+
+.Frameset_4a
+ db BATTLEANIMOAMSET_57, $c1
+ db BATTLEANIMOAMSET_58, $c1
+ db BATTLEANIMOAMSET_57, $01
+ db BATTLEANIMOAMSET_58, $01
+ db -2
+
+.Frameset_4b
+ db BATTLEANIMOAMSET_59, $01
+ db BATTLEANIMOAMSET_5A, $01
+ db BATTLEANIMOAMSET_5B, $01
+ db BATTLEANIMOAMSET_5C, $02
+ db -4
+
+.Frameset_4d
+ db BATTLEANIMOAMSET_0A, $0a
+ db BATTLEANIMOAMSET_0B, $43
+ db BATTLEANIMOAMSET_5D, $43
+ db BATTLEANIMOAMSET_0B, $c3
+ db BATTLEANIMOAMSET_0A, $82
+ db BATTLEANIMOAMSET_0B, $81
+ db BATTLEANIMOAMSET_5D, $01
+ db BATTLEANIMOAMSET_0B, $01
+ db -2
+
+.Frameset_4e
+ db BATTLEANIMOAMSET_0A, $03
+ db BATTLEANIMOAMSET_0B, $47
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $07
+ db BATTLEANIMOAMSET_0A, $03
+ db -2
+
+.Frameset_4f
+ db BATTLEANIMOAMSET_5E, $20
+ db BATTLEANIMOAMSET_5E, $20
+ db -4
+
+.Frameset_50
+ db BATTLEANIMOAMSET_5F, $20
+ db BATTLEANIMOAMSET_5F, $20
+ db -4
+
+.Frameset_51
+ db BATTLEANIMOAMSET_60, $08
+ db -1
+
+.Frameset_52
+ db BATTLEANIMOAMSET_61, $01
+ db BATTLEANIMOAMSET_62, $01
+ db BATTLEANIMOAMSET_63, $01
+ db -1
+
+.Frameset_53
+ db BATTLEANIMOAMSET_63, $07
+ db BATTLEANIMOAMSET_64, $07
+ db -2
+
+.Frameset_54
+ db BATTLEANIMOAMSET_65, $01
+ db BATTLEANIMOAMSET_66, $01
+ db BATTLEANIMOAMSET_67, $01
+ db -1
+
+.Frameset_55
+ db BATTLEANIMOAMSET_67, $07
+ db BATTLEANIMOAMSET_68, $07
+ db -2
+
+.Frameset_59
+ db BATTLEANIMOAMSET_6E, $08
+ db -1
+
+.Frameset_5a
+ db BATTLEANIMOAMSET_6F, $08
+ db -1
+
+.Frameset_5b
+ db BATTLEANIMOAMSET_6E, $88
+ db -1
+
+.Frameset_5c
+ db BATTLEANIMOAMSET_18, $04
+ db BATTLEANIMOAMSET_70, $04
+ db BATTLEANIMOAMSET_71, $04
+ db BATTLEANIMOAMSET_72, $04
+ db BATTLEANIMOAMSET_73, $04
+ db -4
+
+.Frameset_5d
+ db BATTLEANIMOAMSET_74, $04
+ db BATTLEANIMOAMSET_75, $04
+ db -2
+
+.Frameset_5e
+ db BATTLEANIMOAMSET_14, $08
+ db -1
+
+.Frameset_7a
+ db BATTLEANIMOAMSET_74, $03
+ db BATTLEANIMOAMSET_14, $03
+ db BATTLEANIMOAMSET_15, $03
+ db BATTLEANIMOAMSET_14, $03
+ db BATTLEANIMOAMSET_15, $03
+ db -4
+
+.Frameset_af
+ db BATTLEANIMOAMSET_14, $00
+ db BATTLEANIMOAMSET_15, $00
+ db BATTLEANIMOAMSET_14, $00
+ db BATTLEANIMOAMSET_15, $00
+ db BATTLEANIMOAMSET_74, $0c
+ db -4
+
+.Frameset_5f
+ db BATTLEANIMOAMSET_76, $08
+ db -1
+
+.Frameset_60
+ db BATTLEANIMOAMSET_77, $01
+ db BATTLEANIMOAMSET_78, $01
+ db BATTLEANIMOAMSET_79, $01
+ db BATTLEANIMOAMSET_7A, $01
+ db BATTLEANIMOAMSET_7B, $01
+ db BATTLEANIMOAMSET_7C, $01
+ db BATTLEANIMOAMSET_7D, $01
+ db BATTLEANIMOAMSET_7C, $c1
+ db BATTLEANIMOAMSET_7B, $c1
+ db BATTLEANIMOAMSET_7A, $c1
+ db BATTLEANIMOAMSET_79, $c1
+ db BATTLEANIMOAMSET_78, $c1
+ db BATTLEANIMOAMSET_77, $c1
+ db -4
+
+.Frameset_61
+ db BATTLEANIMOAMSET_1B, $04
+ db BATTLEANIMOAMSET_7E, $04
+ db -2
+
+.Frameset_62
+ db BATTLEANIMOAMSET_1B, $44
+ db BATTLEANIMOAMSET_7E, $44
+ db -2
+
+.Frameset_63
+ db BATTLEANIMOAMSET_7F, $08
+ db -1
+
+.Frameset_64
+ db BATTLEANIMOAMSET_25, $08
+ db -1
+
+.Frameset_65
+ db BATTLEANIMOAMSET_80, $08
+ db -1
+
+.Frameset_66
+ db BATTLEANIMOAMSET_83, $07
+ db BATTLEANIMOAMSET_82, $07
+ db BATTLEANIMOAMSET_81, $07
+ db BATTLEANIMOAMSET_82, $07
+ db BATTLEANIMOAMSET_83, $07
+ db BATTLEANIMOAMSET_82, $07
+ db BATTLEANIMOAMSET_81, $07
+ db -4
+
+.Frameset_67
+ db BATTLEANIMOAMSET_1B, $10
+ db -4
+
+.Frameset_68
+ db -3, $0f
+ db BATTLEANIMOAMSET_84, $0f
+ db BATTLEANIMOAMSET_85, $0f
+ db BATTLEANIMOAMSET_29, $0f
+ db BATTLEANIMOAMSET_28, $0f
+ db BATTLEANIMOAMSET_86, $20
+ db -4
+
+.Frameset_69
+ db BATTLEANIMOAMSET_1B, $03
+ db BATTLEANIMOAMSET_87, $03
+ db BATTLEANIMOAMSET_88, $03
+ db BATTLEANIMOAMSET_89, $03
+ db -4
+
+.Frameset_6a
+ db BATTLEANIMOAMSET_8A, $02
+ db BATTLEANIMOAMSET_8B, $02
+ db BATTLEANIMOAMSET_8C, $02
+ db BATTLEANIMOAMSET_8D, $02
+ db -4
+
+.Frameset_6b
+ db BATTLEANIMOAMSET_61, $02
+ db BATTLEANIMOAMSET_62, $02
+ db BATTLEANIMOAMSET_63, $02
+ db -1
+
+.Frameset_6c
+ db BATTLEANIMOAMSET_65, $02
+ db BATTLEANIMOAMSET_66, $02
+ db BATTLEANIMOAMSET_67, $02
+ db -1
+
+.Frameset_6d
+ db BATTLEANIMOAMSET_8E, $08
+ db -1
+
+.Frameset_6e
+ db BATTLEANIMOAMSET_8E, $48
+ db -1
+
+.Frameset_6f
+ db BATTLEANIMOAMSET_8F, $10
+ db BATTLEANIMOAMSET_90, $10
+ db -2
+
+.Frameset_70
+ db BATTLEANIMOAMSET_91, $10
+ db BATTLEANIMOAMSET_92, $10
+ db -2
+
+.Frameset_71
+ db BATTLEANIMOAMSET_93, $08
+ db -1
+
+.Frameset_72
+ db BATTLEANIMOAMSET_1E, $08
+ db -1
+
+.Frameset_73
+ db BATTLEANIMOAMSET_1B, $07
+ db BATTLEANIMOAMSET_94, $07
+ db -2
+
+.Frameset_74
+ db BATTLEANIMOAMSET_95, $08
+ db -1
+
+.Frameset_75
+ db BATTLEANIMOAMSET_96, $08
+ db -1
+
+.Frameset_76
+ db BATTLEANIMOAMSET_95, $08
+ db -1
+
+.Frameset_77
+ db BATTLEANIMOAMSET_97, $01
+ db BATTLEANIMOAMSET_97, $41
+ db -2
+
+.Frameset_78
+ db BATTLEANIMOAMSET_98, $08
+ db -1
+
+.Frameset_79
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_9A, $08
+ db -1
+
+.Frameset_7b
+ db BATTLEANIMOAMSET_9B, $08
+ db -1
+
+.Frameset_7c
+ db BATTLEANIMOAMSET_9C, $02
+ db BATTLEANIMOAMSET_9D, $02
+ db BATTLEANIMOAMSET_9E, $08
+ db -3, $02
+ db BATTLEANIMOAMSET_9E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_9E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_9E, $02
+ db -4
+
+.Frameset_7d
+ db BATTLEANIMOAMSET_9F, $08
+ db -1
+
+.Frameset_7f
+ db BATTLEANIMOAMSET_0F, $08
+ db -1
+
+.Frameset_80
+ db BATTLEANIMOAMSET_6B, $18
+ db -4
+
+.Frameset_81
+ db BATTLEANIMOAMSET_A0, $01 ; fallthrough
+.Frameset_82
+ db BATTLEANIMOAMSET_A1, $01 ; fallthrough
+.Frameset_83
+ db BATTLEANIMOAMSET_A2, $01
+ db -4
+
+.Frameset_84
+ db BATTLEANIMOAMSET_A3, $08
+ db -1
+
+.Frameset_85
+ db BATTLEANIMOAMSET_A4, $04
+ db BATTLEANIMOAMSET_A5, $04
+ db BATTLEANIMOAMSET_A6, $04
+ db BATTLEANIMOAMSET_A7, $04
+ db BATTLEANIMOAMSET_A6, $44
+ db BATTLEANIMOAMSET_A5, $44
+ db -2
+
+.Frameset_86
+ db BATTLEANIMOAMSET_A8, $04
+ db BATTLEANIMOAMSET_A9, $04
+ db BATTLEANIMOAMSET_AA, $04
+ db BATTLEANIMOAMSET_AB, $04
+ db BATTLEANIMOAMSET_AA, $44
+ db BATTLEANIMOAMSET_A9, $44
+ db -2
+
+.Frameset_87
+ db BATTLEANIMOAMSET_1B, $08
+ db -1
+
+.Frameset_88
+ db BATTLEANIMOAMSET_AC, $08
+ db -1
+
+.Frameset_89
+ db BATTLEANIMOAMSET_AD, $08
+ db -1
+
+.Frameset_8a
+ db BATTLEANIMOAMSET_AE, $08
+ db -1
+
+.Frameset_8b
+ db BATTLEANIMOAMSET_AF, $08
+ db -1
+
+.Frameset_8c
+ db BATTLEANIMOAMSET_B0, $20
+ db -4
+
+.Frameset_8d
+ db BATTLEANIMOAMSET_B1, $07
+ db BATTLEANIMOAMSET_B1, $47
+ db -2
+
+.Frameset_8e
+ db BATTLEANIMOAMSET_B2, $08
+ db -1
+
+.Frameset_8f
+ db BATTLEANIMOAMSET_B3, $08
+ db -1
+
+.Frameset_90
+ db BATTLEANIMOAMSET_B3, $48
+ db -1
+
+.Frameset_91
+ db BATTLEANIMOAMSET_B3, $88
+ db -1
+
+.Frameset_92
+ db BATTLEANIMOAMSET_B3, $c8
+ db -1
+
+.Frameset_93
+ db BATTLEANIMOAMSET_B5, $08
+ db -1
+
+.Frameset_94
+ db BATTLEANIMOAMSET_B5, $48
+ db -1
+
+.Frameset_95
+ db BATTLEANIMOAMSET_B5, $88
+ db -1
+
+.Frameset_96
+ db BATTLEANIMOAMSET_B5, $c8
+ db -1
+
+.Frameset_97
+ db BATTLEANIMOAMSET_B4, $08
+ db -1
+
+.Frameset_98
+ db BATTLEANIMOAMSET_6B, $08
+ db -1
+
+.Frameset_99
+ db BATTLEANIMOAMSET_B6, $08
+ db -1
+
+.Frameset_9a
+ db BATTLEANIMOAMSET_B7, $20
+ db -1
+
+.Frameset_9b
+ db BATTLEANIMOAMSET_1B, $20
+ db -1
+
+.Frameset_9c
+ db BATTLEANIMOAMSET_B8, $20
+ db -1
+
+.Frameset_9d
+ db BATTLEANIMOAMSET_B8, $60
+ db -1
+
+.Frameset_9e
+ db BATTLEANIMOAMSET_B9, $20
+ db -1
+
+.Frameset_9f
+ db BATTLEANIMOAMSET_BA, $20
+ db -1
+
+.Frameset_a0
+ db BATTLEANIMOAMSET_BB, $60
+ db -1
+
+.Frameset_a1
+ db BATTLEANIMOAMSET_BB, $20
+ db -1
+
+.Frameset_a2
+ db BATTLEANIMOAMSET_BC, $20
+ db -1
+
+.Frameset_a3
+ db BATTLEANIMOAMSET_BD, $0b
+ db BATTLEANIMOAMSET_BE, $0b
+ db BATTLEANIMOAMSET_1B, $0b
+ db -4
+
+.Frameset_a4
+ db BATTLEANIMOAMSET_BF, $04
+ db BATTLEANIMOAMSET_C0, $04
+ db BATTLEANIMOAMSET_C1, $04
+ db -4
+
+.Frameset_a5
+ db BATTLEANIMOAMSET_C2, $20
+ db BATTLEANIMOAMSET_C2, $20
+ db -4
+
+.Frameset_a6
+ db BATTLEANIMOAMSET_4B, $02
+ db BATTLEANIMOAMSET_4C, $02
+ db BATTLEANIMOAMSET_4D, $20
+ db BATTLEANIMOAMSET_4D, $20
+ db BATTLEANIMOAMSET_4D, $20
+ db BATTLEANIMOAMSET_4F, $01
+ db BATTLEANIMOAMSET_50, $01
+ db BATTLEANIMOAMSET_51, $01
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -4
+
+.Frameset_a7
+ db BATTLEANIMOAMSET_4B, $c2
+ db BATTLEANIMOAMSET_4C, $c2
+ db BATTLEANIMOAMSET_4D, $e0
+ db BATTLEANIMOAMSET_4D, $e0
+ db BATTLEANIMOAMSET_4D, $e0
+ db BATTLEANIMOAMSET_4F, $c1
+ db BATTLEANIMOAMSET_50, $c1
+ db BATTLEANIMOAMSET_51, $c1
+ db BATTLEANIMOAMSET_52, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $c2
+ db -4
+
+.Frameset_a8
+ db BATTLEANIMOAMSET_C3, $01
+ db BATTLEANIMOAMSET_C3, $c1
+ db -2
+
+.Frameset_a9
+ db BATTLEANIMOAMSET_C4, $20
+ db -1
+
+.Frameset_aa
+ db BATTLEANIMOAMSET_C5, $04
+ db BATTLEANIMOAMSET_C6, $04
+ db BATTLEANIMOAMSET_C7, $04
+ db -4
+
+.Frameset_ab
+ db BATTLEANIMOAMSET_C8, $01
+ db BATTLEANIMOAMSET_C8, $41
+ db -2
+
+.Frameset_ac
+ db BATTLEANIMOAMSET_C9, $03
+ db BATTLEANIMOAMSET_05, $03
+ db -4
+
+.Frameset_ad
+ db BATTLEANIMOAMSET_CA, $20
+ db BATTLEANIMOAMSET_CB, $03
+ db BATTLEANIMOAMSET_CA, $03
+ db BATTLEANIMOAMSET_CB, $03
+ db -2
+
+.Frameset_ae
+ db BATTLEANIMOAMSET_03, $a0
+ db -1
+
+.Frameset_b0
+ db BATTLEANIMOAMSET_CC, $20
+ db -1
+
+.Frameset_b1
+ db BATTLEANIMOAMSET_7F, $02
+ db BATTLEANIMOAMSET_25, $02
+ db BATTLEANIMOAMSET_80, $02
+ db BATTLEANIMOAMSET_25, $02
+ db -2
+
+.Frameset_b2
+ db BATTLEANIMOAMSET_CD, $04
+ db BATTLEANIMOAMSET_CE, $04
+ db BATTLEANIMOAMSET_CD, $c4
+ db BATTLEANIMOAMSET_CE, $c4
+ db -2
+
+.Frameset_b3
+ db BATTLEANIMOAMSET_CF, $04
+ db BATTLEANIMOAMSET_D0, $04
+ db BATTLEANIMOAMSET_D1, $04
+ db BATTLEANIMOAMSET_D2, $04
+ db -4
+
+.Frameset_b4
+ db BATTLEANIMOAMSET_D3, $20
+ db -1
+
+.Frameset_b5
+ db BATTLEANIMOAMSET_D4, $08
+ db -1
+
+.Frameset_b6
+ db BATTLEANIMOAMSET_D5, $08
+ db -1
+
+.Frameset_b7
+ db BATTLEANIMOAMSET_D6, $08
+ db -1
+
+.Frameset_b8
+ db BATTLEANIMOAMSET_D7, $08
+ db -1
+
+; ceeae
diff --git a/battle/objects/functions.asm b/battle/objects/functions.asm
new file mode 100755
index 000000000..7c1aa3764
--- /dev/null
+++ b/battle/objects/functions.asm
@@ -0,0 +1,4156 @@
+DoBattleAnimFrame: ; ccfbe
+ ld hl, BATTLEANIMSTRUCT_FUNCTION
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; ccfce
+
+.Jumptable
+ dw BattleAnimFunction_00 ; 00
+ dw BattleAnimFunction_01 ; 01
+ dw BattleAnimFunction_02 ; 02
+ dw BattleAnimFunction_03 ; 03
+ dw BattleAnimFunction_04 ; 04
+ dw BattleAnimFunction_05 ; 05
+ dw BattleAnimFunction_06 ; 06
+ dw BattleAnimFunction_07 ; 07
+ dw BattleAnimFunction_08 ; 08
+ dw BattleAnimFunction_09 ; 09
+ dw BattleAnimFunction_0A ; 0a
+ dw BattleAnimFunction_0B ; 0b
+ dw BattleAnimFunction_0C ; 0c
+ dw BattleAnimFunction_0D ; 0d
+ dw BattleAnimFunction_0E ; 0e
+ dw BattleAnimFunction_0F ; 0f
+ dw BattleAnimFunction_10 ; 10
+ dw BattleAnimFunction_11 ; 11
+ dw BattleAnimFunction_12 ; 12
+ dw BattleAnimFunction_13 ; 13
+ dw BattleAnimFunction_14 ; 14
+ dw BattleAnimFunction_15 ; 15
+ dw BattleAnimFunction_16 ; 16
+ dw BattleAnimFunction_17 ; 17
+ dw BattleAnimFunction_18 ; 18
+ dw BattleAnimFunction_19 ; 19
+ dw BattleAnimFunction_1A ; 1a
+ dw BattleAnimFunction_1B ; 1b
+ dw BattleAnimFunction_1C ; 1c
+ dw BattleAnimFunction_1D ; 1d
+ dw BattleAnimFunction_1E ; 1e
+ dw BattleAnimFunction_1F ; 1f
+ dw BattleAnimFunction_20 ; 20
+ dw BattleAnimFunction_21 ; 21
+ dw BattleAnimFunction_22 ; 22
+ dw BattleAnimFunction_23 ; 23
+ dw BattleAnimFunction_24 ; 24
+ dw BattleAnimFunction_25 ; 25
+ dw BattleAnimFunction_26 ; 26
+ dw BattleAnimFunction_27 ; 27
+ dw BattleAnimFunction_28 ; 28
+ dw BattleAnimFunction_29 ; 29
+ dw BattleAnimFunction_2A ; 2a
+ dw BattleAnimFunction_2B ; 2b
+ dw BattleAnimFunction_2C ; 2c
+ dw BattleAnimFunction_2D ; 2d
+ dw BattleAnimFunction_2E ; 2e
+ dw BattleAnimFunction_2F ; 2f
+ dw BattleAnimFunction_30 ; 30
+ dw BattleAnimFunction_31 ; 31
+ dw BattleAnimFunction_32 ; 32
+ dw BattleAnimFunction_33 ; 33
+ dw BattleAnimFunction_34 ; 34
+ dw BattleAnimFunction_35 ; 35
+ dw BattleAnimFunction_36 ; 36
+ dw BattleAnimFunction_37 ; 37
+ dw BattleAnimFunction_38 ; 38
+ dw BattleAnimFunction_39 ; 39
+ dw BattleAnimFunction_3A ; 3a
+ dw BattleAnimFunction_3B ; 3b
+ dw BattleAnimFunction_3C ; 3c
+ dw BattleAnimFunction_3D ; 3d
+ dw BattleAnimFunction_3E ; 3e
+ dw BattleAnimFunction_3F ; 3f
+ dw BattleAnimFunction_40 ; 40
+ dw BattleAnimFunction_41 ; 41
+ dw BattleAnimFunction_42 ; 42
+ dw BattleAnimFunction_43 ; 43
+ dw BattleAnimFunction_44 ; 44
+ dw BattleAnimFunction_45 ; 45
+ dw BattleAnimFunction_46 ; 46
+ dw BattleAnimFunction_47 ; 47
+ dw BattleAnimFunction_48 ; 48
+ dw BattleAnimFunction_49 ; 49
+ dw BattleAnimFunction_4A ; 4a
+ dw BattleAnimFunction_4B ; 4b
+ dw BattleAnimFunction_4C ; 4c
+ dw BattleAnimFunction_4D ; 4d
+ dw BattleAnimFunction_4E ; 4e
+ dw BattleAnimFunction_4F ; 4f
+
+BattleAnimFunction_00: ; cd06e (33:506e)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.one
+ call DeinitBattleAnimation
+.zero
+ ret
+
+BattleAnimFunction_06: ; cd079 (33:5079)
+ call BattleAnimFunction_05
+ ret c
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_05: ; cd081 (33:5081)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ ret nc
+ add $2
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ scf
+ ret
+
+BattleAnimFunction_04: ; cd0a6 (33:50a6)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr c, .asm_cd0b3
+ call DeinitBattleAnimation
+ ret
+
+.asm_cd0b3
+ add $2
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+rept 4
+ inc [hl]
+endr
+ ld d, $10
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ sra a
+ sra a
+ sra a
+ sra a
+ ld [hl], a
+ ret
+
+BattleAnimFunction_03: ; cd0e3 (33:50e3)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 7, [hl]
+ ld a, $0
+ jr z, .asm_cd0f9
+ ld a, $20
+.asm_cd0f9
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_01: ; cd12a (33:512a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.one
+ call DeinitBattleAnimation
+ ret
+
+.zero
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ ret nc
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+BattleAnimFunction_02: ; cd146 (33:5146)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_cd158
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+.asm_cd158
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_12: ; cd15c (33:515c)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six
+ dw .seven
+ dw .eight
+ dw .nine
+ dw .ten
+ dw .eleven
+.zero
+ call GetBallAnimFunction
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.one
+ call BattleAnimFunction_05
+ ret c
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld a, $b
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.three
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $9
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+ inc hl
+ ld [hl], $10
+.four
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld [hl], a
+ and $1f
+ ret nz
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+ ret nz
+ ld a, $c
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.six
+ ld a, $d
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ dec [hl]
+.two
+.five
+.nine
+ ret
+
+.seven
+ call GetBallAnimFunction
+ ld a, $a
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $20
+.eight
+.ten
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld [hl], a
+ and $1f
+ jr z, .eleven
+ and $f
+ ret nz
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.eleven
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_13: ; cd212 (33:5212)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+.zero
+ call GetBallAnimFunction
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.one
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $70
+ jr nc, .next
+ call BattleAnimFunction_05
+ ret
+
+.next
+ call BattleAnim_IncAnonJumptableIndex
+.two
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .done
+ add $4
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ret
+
+.done
+ call DeinitBattleAnimation
+ ret
+
+GetBallAnimFunction: ; cd249 (33:5249)
+ ld hl, .balls
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [CurItem] ; CurItem
+ ld e, a
+ pop af
+ ld [rSVBK], a
+.IsInArray
+ ld a, [hli]
+ cp -1
+ jr z, .load
+ cp e
+ jr z, .load
+ inc hl
+ jr .IsInArray
+
+.load
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_PALETTE
+ add hl, bc
+ ld [hl], a
+ ret
+
+; cd26c (33:526c)
+.balls
+ db MASTER_BALL, 5
+ db ULTRA_BALL, 3
+ db GREAT_BALL, 6
+ db POKE_BALL, 4
+ db HEAVY_BALL, 2
+ db LEVEL_BALL, 7
+ db LURE_BALL, 6
+ db FAST_BALL, 6
+ db FRIEND_BALL, 3
+ db MOON_BALL, 2
+ db LOVE_BALL, 4
+ db -1, 2
+; cd284
+BattleAnimFunction_10: ; cd284 (33:5284)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+.zero
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ swap a
+ and $f
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ ret
+
+.one
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ ret nc
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+.two
+ call DeinitBattleAnimation
+ ret
+
+.three
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $f
+ call ReinitBattleAnimFrameset
+.four
+ ret
+
+BattleAnimFunction_07: ; cd2be (33:52be)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $30
+ inc hl
+ ld [hl], $48
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $20
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ sub [hl]
+ jr z, .done
+ jr c, .done
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ret
+
+.done
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_08: ; cd306 (33:5306)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+.zero
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .next
+ call .SetCoords
+ ret
+
+.next
+ call BattleAnim_IncAnonJumptableIndex
+.one
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+.two
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr nc, .loop_back
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call BattleAnim_Cosine
+ sub $18
+ sra a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+.loop_back
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ jr z, .finish
+ sub $10
+ ld d, a
+ ld a, [hl]
+ and $f
+ or d
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ dec [hl]
+ ret
+
+.finish
+ call BattleAnim_IncAnonJumptableIndex
+.three
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $b0
+ jr c, .retain
+ call DeinitBattleAnimation
+ ret
+
+.retain
+ call .SetCoords
+ ret
+
+.SetCoords
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld e, a
+ srl e
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+.loop
+ dec [hl]
+ dec e
+ jr nz, .loop
+ ret
+
+BattleAnimFunction_09: ; cd3ae (33:53ae)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .done_one
+ dec [hl]
+ ret
+
+.done_one
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ swap a
+ and $f
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+.two
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_0A: ; cd3f2 (33:53f2)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six
+ dw .seven
+ dw .eight
+ dw .nine
+.zero
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ cp $7
+ jr z, .seven
+ ld a, $11
+ call ReinitBattleAnimFrameset
+ ret
+
+.seven
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr nc, .set_up_eight
+ add $2
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+.set_up_eight
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $10
+ call ReinitBattleAnimFrameset
+.eight
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ret
+
+.nine
+ call DeinitBattleAnimation
+ ret
+
+.one
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ dec [hl]
+ ret
+
+.four
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ inc [hl]
+.two
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ dec [hl]
+ ret
+
+.five
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ inc [hl]
+.three
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ inc [hl]
+.six
+ ret
+
+BattleAnimFunction_0B: ; cd478 (33:5478)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six
+ dw .seven
+ dw .eight
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $40
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .sine_cosine
+ call BattleAnim_IncAnonJumptableIndex
+ xor a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ld a, $17
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 6, [hl]
+ ret z
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], $5
+ ret
+
+.sine_cosine
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ call Functioncd557
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ret
+
+.two
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr nz, .sine_cosine_2
+ call DeinitBattleAnimation
+ ret
+
+.sine_cosine_2
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 6, [hl]
+ jr nz, .decrease
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ jr .finish
+
+.decrease
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ dec [hl]
+.finish
+ ld de, $80
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ret
+
+.three
+ ld a, $16
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ res 5, [hl]
+.four
+.five
+.six
+.seven
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.eight
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $c0
+ ret nc
+ ld a, $8
+ call Functionce70a
+ ret
+
+Functioncd557: ; cd557 (33:5557)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ bit 7, a
+ jr nz, .negative
+ cp $20
+ jr nc, .plus_256
+ cp $18
+ jr nc, .plus_384
+ ld de, $200
+ ret
+
+.plus_384
+ ld de, $180
+ ret
+
+.plus_256
+ ld de, $100
+ ret
+
+.negative
+ and $3f
+ cp $20
+ jr nc, .minus_256
+ cp $18
+ jr nc, .minus_384
+ ld de, -$200
+ ret
+
+.minus_384
+ ld de, -$180
+ ret
+
+.minus_256
+ ld de, -$100
+ ret
+
+BattleAnimFunction_4E: ; cd58a (33:558a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.zero
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $40
+ rlca
+ rlca
+ add $19
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld [hl], a
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $40
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .sine_cosine
+ call DeinitBattleAnimation
+ ret
+
+.sine_cosine
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ call Functioncd557
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ret
+
+BattleAnimFunction_0C: ; cd5e9 (33:55e9)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $c
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .next
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+.next
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+ ld a, $22
+ call ReinitBattleAnimFrameset
+.two
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ jr nc, .okay
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ ld de, $60
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+.okay
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ ret c
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ ld e, a
+ ld d, $ff
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], d
+ ret
+
+BattleAnimFunction_0D: ; cd66a (33:566a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $42
+ ld [hFFC6], a
+ ld a, $58
+ ld [hFFC7], a
+ ld a, $5e
+ ld [hFFC8], a
+ ret
+
+.one
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld e, [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp e
+ jr nc, .asm_cd69b
+ call BattleAnim_IncAnonJumptableIndex
+ xor a
+ ld [hFFC7], a
+ ret
+
+.asm_cd69b
+ dec a
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ add [hl]
+ sub $10
+ ret c
+ ld [hFFC7], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ inc a
+ and $7
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ inc [hl]
+.two
+ ret
+
+.three
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $70
+ jr c, asm_cd6da
+ xor a
+ ld [hFFC6], a
+ ld [hFFC7], a
+ ld [hFFC8], a
+.four
+ call DeinitBattleAnimation
+ ret
+
+asm_cd6da: ; cd6da (33:56da)
+ inc a
+ inc a
+ ld [hl], a
+ sub $10
+ ret c
+ ld [hFFC7], a
+ ret
+
+BattleAnimFunction_0E: ; cd6e3 (33:56e3)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd6ea
+ dw Functioncd6f7
+Functioncd6ea: ; cd6ea (33:56ea)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, $24
+ add [hl]
+ call ReinitBattleAnimFrameset
+Functioncd6f7: ; cd6f7 (33:56f7)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $b8
+ jr c, .asm_cd704
+ call DeinitBattleAnimation
+ ret
+
+.asm_cd704
+ ld a, $2
+ call Functionce70a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld d, $8
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_0F: ; cd71a (33:571a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd725
+ dw Functioncd728
+ dw Functioncd763
+ dw Functioncd776
+Functioncd725: ; cd725 (33:5725)
+ call BattleAnim_IncAnonJumptableIndex
+Functioncd728: ; cd728 (33:5728)
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cd747
+ ld a, $2
+ call Functionce70a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld d, $8
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_cd747
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $28
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], $30
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ld [hl], a
+Functioncd763: ; cd763 (33:5763)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $18
+ jr nc, .asm_cd76e
+ inc [hl]
+ ret
+
+.asm_cd76e
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $29
+ call ReinitBattleAnimFrameset
+Functioncd776: ; cd776 (33:5776)
+ ret
+
+BattleAnimFunction_11: ; cd777 (33:5777)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $38
+ jr c, .asm_cd784
+ call DeinitBattleAnimation
+ ret
+
+.asm_cd784
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld l, [hl]
+ ld h, a
+ ld de, $80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ xor $10
+ ld [hl], a
+ ret
+
+BattleAnimFunction_14: ; cd7a4 (33:57a4)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd7ab
+ dw Functioncd7d2
+Functioncd7ab: ; cd7ab (33:57ab)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ sla a
+ sla a
+ sla a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld [hl], $1
+Functioncd7d2: ; cd7d2 (33:57d2)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_cd7de
+ call DeinitBattleAnimation
+ ret
+
+.asm_cd7de
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ xor $1
+ ld [hl], a
+ ret z
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ dec [hl]
+ ret
+
+BattleAnimFunction_15: ; cd80c (33:580c)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd81f
+ dw Functioncd817
+ dw Functioncd81f
+ dw Functioncd820
+Functioncd817: ; cd817 (33:5817)
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $35
+ call ReinitBattleAnimFrameset
+Functioncd81f: ; cd81f (33:581f)
+ ret
+
+Functioncd820: ; cd820 (33:5820)
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_16: ; cd824 (33:5824)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd835
+ dw Functioncd860
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd893
+Functioncd835: ; cd835 (33:5835)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_cd852
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $10
+ jr .asm_cd858
+
+.asm_cd852
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $30
+.asm_cd858
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+Functioncd860: ; cd860 (33:5860)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ bit 7, a
+ jr nz, .asm_cd87e
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc a
+ jr .asm_cd883
+
+.asm_cd87e
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+.asm_cd883
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1f
+ ret nz
+Functioncd88f: ; cd88f (33:588f)
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncd893: ; cd893 (33:5893)
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], $1
+ ret
+
+BattleAnimFunction_17: ; cd89a (33:589a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd8ab
+ dw Functioncd8cc
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f9
+Functioncd8ab: ; cd8ab (33:58ab)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_cd8be
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $10
+ jr .asm_cd8c4
+
+.asm_cd8be
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $30
+.asm_cd8c4
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+Functioncd8cc: ; cd8cc (33:58cc)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ bit 7, a
+ jr nz, .asm_cd8e6
+ ld a, $3d
+ jr .asm_cd8e8
+
+.asm_cd8e6
+ ld a, $3c
+.asm_cd8e8
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $1f
+ ret nz
+Functioncd8f5: ; cd8f5 (33:58f5)
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncd8f9: ; cd8f9 (33:58f9)
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], $1
+ ret
+
+BattleAnimFunction_18: ; cd900 (33:5900)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd907
+ dw Functioncd913
+Functioncd907: ; cd907 (33:5907)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $28
+ inc hl
+ ld [hl], $0
+Functioncd913: ; cd913 (33:5913)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cd950
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], d
+ ret
+
+.asm_cd950
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_19: ; cd954 (33:5954)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd961
+ dw Functioncd96a
+ dw Functioncd96e
+ dw Functioncd96a
+ dw Functioncd97b
+Functioncd961: ; cd961 (33:5961)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld [hl], $0
+Functioncd96a: ; cd96a (33:596a)
+ call Functioncd99a
+ ret
+
+Functioncd96e: ; cd96e (33:596e)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr c, asm_cd988
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncd97b: ; cd97b (33:597b)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $b8
+ jr c, asm_cd988
+ call DeinitBattleAnimation
+ ret
+
+asm_cd988: ; cd988 (33:5988)
+ call Functioncd99a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+Functioncd99a: ; cd99a (33:599a)
+ call Functioncd9f4
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ sub $8
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cd9d7
+ cp $c2
+ jr c, .asm_cd9e2
+.asm_cd9d7
+ dec a
+ ld [hl], a
+ and $7
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ inc [hl]
+ ret
+
+.asm_cd9e2
+ xor a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ret
+
+Functioncd9f4: ; cd9f4 (33:59f4)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Unknown_cda01
+ add hl, de
+ ld d, [hl]
+ ret
+
+; cda01 (33:5a01)
+Unknown_cda01: ; cda01
+ db 8, 6, 5, 4, 5, 6, 8, 12, 16
+; cda0a
+BattleAnimFunction_1C: ; cda0a (33:5a0a)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .asm_cda17
+ call DeinitBattleAnimation
+ ret
+
+.asm_cda17
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld e, a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ sub e
+ ld [hl], a
+ srl e
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+.asm_cda2c
+ inc [hl]
+ dec e
+ jr nz, .asm_cda2c
+ ret
+
+BattleAnimFunction_1F: ; cda31 (33:5a31)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncda4c
+ dw Functioncda3a
+ dw Functioncda4c
+Functioncda3a: ; cda3a (33:5a3a)
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld a, [hl]
+ inc a
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $8
+Functioncda4c: ; cda4c (33:5a4c)
+ ret
+
+BattleAnimFunction_20: ; cda4d (33:5a4d)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncda58
+ dw Functioncda62
+ dw Functioncda7a
+ dw Functioncda8c
+Functioncda58: ; cda58 (33:5a58)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $40
+ ret
+
+Functioncda62: ; cda62 (33:5a62)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_cda6f
+ call Functioncda8d
+ ret
+
+.asm_cda6f
+ ld [hl], $40
+ ld a, $57
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncda7a: ; cda7a (33:5a7a)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cda84
+ dec [hl]
+ ret
+
+.asm_cda84
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $58
+ call ReinitBattleAnimFrameset
+Functioncda8c: ; cda8c (33:5a8c)
+ ret
+
+Functioncda8d: ; cda8d (33:5a8d)
+ dec [hl]
+ ld d, $20
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_02
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld e, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld h, [hl]
+ ld a, h
+ and $f
+ swap a
+ ld l, a
+ ld a, h
+ and $f0
+ swap a
+ ld h, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+BattleAnimFunction_3F: ; cdad6 (33:5ad6)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdadf
+ dw Functioncdae9
+ dw Functioncdaf9
+Functioncdadf: ; cdadf (33:5adf)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $40
+ ret
+
+Functioncdae9: ; cdae9 (33:5ae9)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_cdaf6
+ call Functioncda8d
+ ret
+
+.asm_cdaf6
+ call BattleAnim_IncAnonJumptableIndex
+Functioncdaf9: ; cdaf9 (33:5af9)
+ ret
+
+BattleAnimFunction_1A: ; cdafa (33:5afa)
+ call BattleAnimFunction_03
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ add $f
+ ld [hl], a
+ ret
+
+BattleAnimFunction_1B: ; cdb06 (33:5b06)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdb13
+ dw Functioncdb14
+ dw Functioncdb28
+ dw Functioncdb50
+ dw Functioncdb65
+Functioncdb13: ; cdb13 (33:5b13)
+ ret
+
+Functioncdb14: ; cdb14 (33:5b14)
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cdb24
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], $0
+ ret
+
+.asm_cdb24
+ add $4
+ ld [hl], a
+ ret
+
+Functioncdb28: ; cdb28 (33:5b28)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ ret nc
+ inc [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ set 0, [hl]
+ ld hl, BATTLEANIMSTRUCT_02
+ add hl, bc
+ ld [hl], $90
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], $2
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+Functioncdb50: ; cdb50 (33:5b50)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $2c
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], $80
+Functioncdb65: ; cdb65 (33:5b65)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ ret nc
+ inc [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $8
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_1D: ; cdb80 (33:5b80)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdb9f
+ dw Functioncdbb3
+ dw Functioncdbcf
+ dw Functioncdbeb
+ dw Functioncdc74
+ dw Functioncdc1a
+ dw Functioncdbc1
+ dw Functioncdc1e
+ dw Functioncdc27
+ dw Functioncdc39
+ dw Functioncdc74
+ dw Functioncdc48
+ dw Functioncdc57
+ dw Functioncdc74
+Functioncdb9f: ; cdb9f (33:5b9f)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $28
+ inc hl
+ ld [hl], $10
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functioncdbb3: ; cdbb3 (33:5bb3)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr nc, .asm_cdbbd
+ inc [hl]
+.asm_cdbbd
+ call Functioncdc75
+ ret
+
+Functioncdbc1: ; cdbc1 (33:5bc1)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $4b
+ jr nc, .asm_cdbcb
+ inc [hl]
+.asm_cdbcb
+ call Functioncdc75
+ ret
+
+Functioncdbcf: ; cdbcf (33:5bcf)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr nc, .asm_cdbe6
+ and $f
+ jr nz, asm_cdbfa
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $10
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.asm_cdbe6
+ call BattleAnim_IncAnonJumptableIndex
+ inc [hl]
+ ret
+
+Functioncdbeb: ; cdbeb (33:5beb)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdbf5
+ dec [hl]
+ ret
+
+.asm_cdbf5
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ dec [hl]
+asm_cdbfa: ; cdbfa (33:5bfa)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ret
+
+Functioncdc1a: ; cdc1a (33:5c1a)
+ call DeinitBattleAnimation
+ ret
+
+Functioncdc1e: ; cdc1e (33:5c1e)
+ ld a, $4e
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncdc27: ; cdc27 (33:5c27)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $2
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functioncdc39: ; cdc39 (33:5c39)
+ ld a, $50
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $4
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncdc48: ; cdc48 (33:5c48)
+ ld a, $4f
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $40
+ ret
+
+Functioncdc57: ; cdc57 (33:5c57)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $20
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cdc71
+ dec [hl]
+ ret
+
+.asm_cdc71
+ call BattleAnim_IncAnonJumptableIndex
+Functioncdc74: ; cdc74 (33:5c74)
+ ret
+
+Functioncdc75: ; cdc75 (33:5c75)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $20
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ sub $8
+ ld [hl], a
+ ret nz
+ xor a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+BattleAnimFunction_1E: ; cdca6 (33:5ca6)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdcb6
+ cp $d8
+ jr nc, .asm_cdcb6
+ call DeinitBattleAnimation
+ ret
+
+.asm_cdcb6
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ sub d
+ ld [hl], a
+ ret
+
+BattleAnimFunction_21: ; cdcc3 (33:5cc3)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdcca
+ dw Functioncdced
+Functioncdcca: ; cdcca (33:5cca)
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_cdcd9
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ add $3
+ ld [hl], a
+.asm_cdcd9
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $8
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, $59
+ add [hl]
+ call ReinitBattleAnimFrameset
+ ret
+
+Functioncdced: ; cdced (33:5ced)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdcfa
+ dec [hl]
+ call Functioncdcfe
+ ret
+
+.asm_cdcfa
+ call DeinitBattleAnimation
+ ret
+
+Functioncdcfe: ; cdcfe (33:5cfe)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdd20
+ dec a
+ ret z
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ret
+
+.asm_cdd20
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, d
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+BattleAnimFunction_22: ; cdd2a (33:5d2a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdd31
+ dw Functioncdd4f
+Functioncdd31: ; cdd31 (33:5d31)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $80
+ rlca
+ ld [hl], a
+ add $5d
+ call ReinitBattleAnimFrameset
+ ret
+
+Functioncdd4f: ; cdd4f (33:5d4f)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ swap a
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ ret nc
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and $3
+ jr nz, .asm_cdd87
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+.asm_cdd87
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_23: ; cdd90 (33:5d90)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdd97
+ dw Functioncddbc
+Functioncdd97: ; cdd97 (33:5d97)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $80
+ rlca
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ add [hl]
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+Functioncddbc: ; cddbc (33:5dbc)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ and $3f
+ jr z, .asm_cddf0
+ and $1f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc a
+ jr .asm_cddf5
+
+.asm_cddf0
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+.asm_cddf5
+ call ReinitBattleAnimFrameset
+ ret
+
+BattleAnimFunction_24: ; cddf9 (33:5df9)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncde02
+ dw Functioncde20
+ dw Functioncde21
+Functioncde02: ; cde02 (33:5e02)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ add $63
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Unknown_cde25
+ add hl, de
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+Functioncde20: ; cde20 (33:5e20)
+ ret
+
+Functioncde21: ; cde21 (33:5e21)
+ call DeinitBattleAnimation
+ ret
+
+; cde25 (33:5e25)
+Unknown_cde25: ; cde25
+ db $ec, $f8, $00
+; cde28
+BattleAnimFunction_25: ; cde28 (33:5e28)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $4
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld e, [hl]
+ ld hl, $ffa0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ret
+
+BattleAnimFunction_26: ; cde54 (33:5e54)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ dec [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_27: ; cde6b (33:5e6b)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncde72
+ dw Functioncde88
+Functioncde72: ; cde72 (33:5e72)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_cde83
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ set 6, [hl]
+.asm_cde83
+ add $6a
+ call ReinitBattleAnimFrameset
+Functioncde88: ; cde88 (33:5e88)
+ ret
+
+BattleAnimFunction_28: ; cde89 (33:5e89)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncde90
+ dw Functioncdebf
+Functioncde90: ; cde90 (33:5e90)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld e, [hl]
+ ld a, e
+ and $70
+ swap a
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, e
+ and $80
+ jr nz, .asm_cdeb2
+ ld a, e
+ and $f
+ ld [hl], a
+ ret
+
+.asm_cdeb2
+ ld a, e
+ and $f
+ xor $ff
+ inc a
+ ld [hl], a
+ ld a, $6e
+ call ReinitBattleAnimFrameset
+ ret
+
+Functioncdebf: ; cdebf (33:5ebf)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdec9
+ dec [hl]
+ ret
+
+.asm_cdec9
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+BattleAnimFunction_29: ; cdedd (33:5edd)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $7
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $28
+ jr nc, .asm_cdf17
+ inc [hl]
+ ret
+
+.asm_cdf17
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_2D: ; cdf1b (33:5f1b)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $28
+ jr nc, .asm_cdf55
+ inc [hl]
+ ret
+
+.asm_cdf55
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_2A: ; cdf59 (33:5f59)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdf60
+ dw BattleAnimFunction_29
+Functioncdf60: ; cdf60 (33:5f60)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_cdf88
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+.asm_cdf88
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+BattleAnimFunction_34: ; cdf8c (33:5f8c)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $7
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $e8
+ jr z, .asm_cdfc7
+ dec [hl]
+ ret
+
+.asm_cdfc7
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_3C: ; cdfcb (33:5fcb)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $3
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr z, .asm_ce007
+ dec [hl]
+ dec [hl]
+ ret
+
+.asm_ce007
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_35: ; ce00b (33:600b)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce014
+ dw Functionce023
+ dw Functionce05f
+Functionce014: ; ce014 (33:6014)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $34
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $10
+Functionce023: ; ce023 (33:6023)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $6c
+ jr c, .asm_ce02d
+ ret
+
+.asm_ce02d
+ ld a, $2
+ call Functionce70a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ bit 7, a
+ jr nz, .asm_ce046
+ xor $ff
+ inc a
+.asm_ce046
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+ and $1f
+ cp $20
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ srl [hl]
+ ret
+
+Functionce05f: ; ce05f (33:605f)
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_2B: ; ce063 (33:6063)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce06e
+ dw Functionce083
+ dw Functionce091
+ dw Functionce09e
+Functionce06e: ; ce06e (33:606e)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functionce083: ; ce083 (33:6083)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $58
+ ret nc
+ ld a, $2
+ call Functionce70a
+ ret
+
+Functionce091: ; ce091 (33:6091)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, Functionce09e
+ call DeinitBattleAnimation
+ ret
+
+Functionce09e: ; ce09e (33:609e)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld d, $8
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ sra a
+ xor $ff
+ inc a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld [hl], a
+ ret
+
+BattleAnimFunction_2C: ; ce0c5 (33:60c5)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce0ce
+ dw Functionce0f8
+ dw Functionce0dd
+Functionce0ce: ; ce0ce (33:60ce)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ swap a
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functionce0dd: ; ce0dd (33:60dd)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ bit 7, a
+ jr z, .asm_ce0f0
+ ld [hl], a
+.asm_ce0f0
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+Functionce0f8: ; ce0f8 (33:60f8)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr c, .asm_ce105
+ call DeinitBattleAnimation
+ ret
+
+.asm_ce105
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+BattleAnimFunction_2E: ; ce10e (33:610e)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce115
+ dw Functionce12a
+Functionce115: ; ce115 (33:6115)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $28
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ sub $28
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+Functionce12a: ; ce12a (33:612a)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ and [hl]
+ jr nz, .asm_ce149
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+.asm_ce149
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $20
+ inc hl
+ srl [hl]
+ ret
+
+BattleAnimFunction_2F: ; ce15c (33:615c)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1
+ jr nz, .asm_ce189
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+.asm_ce189
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $3
+ jr nz, .asm_ce197
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ inc [hl]
+.asm_ce197
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ cp $5a
+ jr nc, .asm_ce1aa
+ ld a, [hl]
+ and a
+ jr z, .asm_ce1ac
+ dec [hl]
+ ret
+
+.asm_ce1aa
+ inc [hl]
+ ret
+
+.asm_ce1ac
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_42: ; ce1b0 (33:61b0)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ cp $40
+ jr nc, .asm_ce1df
+ inc [hl]
+ ret
+
+.asm_ce1df
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_30: ; ce1e7 (33:61e7)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce1ee
+ dw Functionce1fb
+Functionce1ee: ; ce1ee (33:61ee)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+Functionce1fb: ; ce1fb (33:61fb)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $30
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld d, $30
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_31: ; ce226 (33:6226)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce22d
+ dw Functionce254
+Functionce22d: ; ce22d (33:622d)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $f
+Functionce254: ; ce254 (33:6254)
+ ret
+
+BattleAnimFunction_32: ; ce255 (33:6255)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce260
+ dw Functionce274
+ dw Functionce278
+ dw Functionce289
+Functionce260: ; ce260 (33:6260)
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .asm_ce26c
+ ld a, $f0
+ jr .asm_ce26e
+
+.asm_ce26c
+ ld a, $cc
+.asm_ce26e
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functionce274: ; ce274 (33:6274)
+ call Functionce29f
+ ret
+
+Functionce278: ; ce278 (33:6278)
+ call Functionce29f
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ ret nc
+ ld a, $4
+ call Functionce70a
+ ret
+
+Functionce289: ; ce289 (33:6289)
+ call Functionce29f
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr nc, .asm_ce29b
+ ld a, $4
+ call Functionce70a
+ ret
+
+.asm_ce29b
+ call DeinitBattleAnimation
+ ret
+
+Functionce29f: ; ce29f (33:629f)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and $7
+ inc [hl]
+ srl a
+ ld e, a
+ ld d, $0
+ ld a, [hSGB]
+ and a
+ jr nz, .asm_ce2b6
+ ld hl, Unknown_ce2c4
+ jr .asm_ce2b9
+
+.asm_ce2b6
+ ld hl, Unknown_ce2c8
+.asm_ce2b9
+ add hl, de
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ and [hl]
+ ld [wOBP0], a
+ ret
+
+; ce2c4 (33:62c4)
+Unknown_ce2c4: ; ce2c4
+ db $ff, $aa, $55, $aa
+Unknown_ce2c8: ; ce2c8
+ db $ff, $ff, $00, $00
+; ce2cc
+BattleAnimFunction_33: ; ce2cc (33:62cc)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ret
+
+BattleAnimFunction_36: ; ce2fd (33:62fd)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce306
+ dw Functionce330
+ dw Functionce34c
+Functionce306: ; ce306 (33:6306)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $e0
+ jr nz, .asm_ce319
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $2
+ ret
+
+.asm_ce319
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ret
+
+Functionce330: ; ce330 (33:6330)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce33a
+ dec [hl]
+ ret
+
+.asm_ce33a
+ ld [hl], $4
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+Functionce34c: ; ce34c (33:634c)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_ce35b
+ ld a, $4
+ call Functionce70a
+ ret
+
+.asm_ce35b
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_37: ; ce35f (33:635f)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce366
+ dw Functionce375
+Functionce366: ; ce366 (33:6366)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ add $81
+ call ReinitBattleAnimFrameset
+Functionce375: ; ce375 (33:6375)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_ce383
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ inc [hl]
+ ret
+
+.asm_ce383
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ dec [hl]
+ ret
+
+BattleAnimFunction_38: ; ce389 (33:6389)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce392
+ dw Functionce39c
+ dw Functionce3ae
+Functionce392: ; ce392 (33:6392)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $c
+ ret
+
+Functionce39c: ; ce39c (33:639c)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce3a6
+ dec [hl]
+ ret
+
+.asm_ce3a6
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $20
+ call ReinitBattleAnimFrameset
+Functionce3ae: ; ce3ae (33:63ae)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ dec [hl]
+ ret
+
+BattleAnimFunction_39: ; ce3b4 (33:63b4)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ push af
+ ld d, $2
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop af
+ ld d, $8
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_3A: ; ce3d2 (33:63d2)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_ce3df
+ call DeinitBattleAnimation
+ ret
+
+.asm_ce3df
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $8
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ and $7
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_3B: ; ce3ff (33:63ff)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce406
+ dw Functionce412
+Functionce406: ; ce406 (33:6406)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+Functionce412: ; ce412 (33:6412)
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_3D: ; ce416 (33:6416)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ sra a
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ret
+
+BattleAnimFunction_3E: ; ce43a (33:643a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce443
+ dw Functionce465
+ dw Functionce490
+Functionce443: ; ce443 (33:6443)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $28
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ add [hl]
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ or $8
+ ld [hl], a
+Functionce465: ; ce465 (33:6465)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce48b
+ dec [hl]
+ add $8
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_ce48b
+ ld [hl], $10
+ call BattleAnim_IncAnonJumptableIndex
+Functionce490: ; ce490 (33:6490)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_40: ; ce49c (33:649c)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce4a3
+ dw Functionce4b0
+Functionce4a3: ; ce4a3 (33:64a3)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, $24
+ add [hl]
+ call ReinitBattleAnimFrameset
+Functionce4b0: ; ce4b0 (33:64b0)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $38
+ jr nc, .asm_ce4d8
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+.asm_ce4d8
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_41: ; ce4dc (33:64dc)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call BattleAnim_Sine
+ bit 7, a
+ jr nz, .asm_ce4f4
+ xor $ff
+ inc a
+.asm_ce4f4
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and $1f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ srl [hl]
+ ret
+
+BattleAnimFunction_43: ; ce508 (33:6508)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $10
+ jr nc, .asm_ce52e
+ inc [hl]
+ inc [hl]
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_ce52e
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_44: ; ce532 (33:6532)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld e, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+ ld a, e
+ and $c0
+ rlca
+ rlca
+ add [hl]
+ ld [hl], a
+ ld a, e
+ and $3f
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_45: ; ce55b (33:655b)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce564
+ dw Functionce56e
+ dw Functionce577
+Functionce564: ; ce564 (33:6564)
+ ld d, $18
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ jr asm_ce58f
+
+Functionce56e: ; ce56e (33:656e)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $18
+Functionce577: ; ce577 (33:6577)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .asm_ce58b
+ ld d, a
+ add $8
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ jr asm_ce58f
+
+.asm_ce58b
+ call DeinitBattleAnimation
+ ret
+
+asm_ce58f: ; ce58f (33:658f)
+ call Functionce6f1
+ ret
+
+BattleAnimFunction_46: ; ce593 (33:6593)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce5b3
+ dw Functionce59a
+Functionce59a: ; ce59a (33:659a)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_ce5b0
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ret
+
+.asm_ce5b0
+ call DeinitBattleAnimation
+Functionce5b3: ; ce5b3 (33:65b3)
+ ret
+
+BattleAnimFunction_47: ; ce5b4 (33:65b4)
+ ld d, $50
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ add [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_48: ; ce5dc (33:65dc)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr z, .asm_ce5ea
+rept 4
+ dec [hl]
+endr
+ ret
+
+.asm_ce5ea
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_49: ; ce5ee (33:65ee)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce5f9
+ dw Functionce60a
+ dw Functionce622
+ dw Functionce618
+Functionce5f9: ; ce5f9 (33:65f9)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, asm_ce61c
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $ec
+Functionce60a: ; ce60a (33:660a)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $4
+ jr z, Functionce618
+rept 4
+ inc [hl]
+endr
+ ret
+
+Functionce618: ; ce618 (33:6618)
+ call DeinitBattleAnimation
+ ret
+
+asm_ce61c: ; ce61c (33:661c)
+ call BattleAnim_IncAnonJumptableIndex
+ call BattleAnim_IncAnonJumptableIndex
+Functionce622: ; ce622 (33:6622)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $d8
+ ret z
+rept 4
+ dec [hl]
+endr
+ ret
+
+BattleAnimFunction_4A: ; ce62f (33:662f)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce63a
+ dw Functionce648
+ dw Functionce65c
+ dw Functionce672
+Functionce63a: ; ce63a (33:663a)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functionce648: ; ce648 (33:6648)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce654
+ xor a
+.asm_ce654
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ret
+
+Functionce65c: ; ce65c (33:665c)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce668
+ xor a
+.asm_ce668
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld [hl], a
+ ret
+
+Functionce672: ; ce672 (33:6672)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce67e
+ xor a
+.asm_ce67e
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $4
+ ld [hl], a
+ ret
+
+BattleAnimFunction_4B: ; ce688 (33:6688)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld e, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld l, a
+ and $f0
+ ld h, a
+ swap a
+ or h
+ ld h, a
+ ld a, l
+ and $f
+ swap a
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ret
+
+BattleAnimFunction_4C: ; ce6b3 (33:66b3)
+ ld d, $18
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call Functionce6f1
+ ret
+
+BattleAnimFunction_4F: ; ce6bf (33:66bf)
+ ld d, $18
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ srl a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ add [hl]
+ call Functionce6f1
+ ret
+
+BattleAnimFunction_4D: ; ce6d2 (33:66d2)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr nc, .asm_ce6ed
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ xor $ff
+ inc a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_ce6ed
+ call DeinitBattleAnimation
+ ret
+
+Functionce6f1: ; ce6f1 (33:66f1)
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functionce70a: ; ce70a (33:670a)
+ and $f
+ ld e, a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ srl e
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+.asm_ce719
+ dec [hl]
+ dec e
+ jr nz, .asm_ce719
+ ret
+
+BattleAnim_AnonJumptable: ; ce71e (33:671e)
+ pop de
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ 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]
+
+BattleAnim_IncAnonJumptableIndex: ; ce72c (33:672c)
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnim_Cosine: ; ce732 (33:6732)
+ add $10
+BattleAnim_Sine: ; ce734 (33:6734)
+ and $3f
+ cp $20
+ jr nc, .negative
+ call .ApplySineWave
+ ld a, h
+ ret
+
+.negative
+ and $1f
+ call .ApplySineWave
+ ld a, h
+ xor $ff
+ inc a
+ ret
+
+.ApplySineWave
+ ld e, a
+ ld a, d
+ ld d, 0
+ ld hl, BattleAnimSineWave
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $0
+.multiply
+ srl a
+ jr nc, .even
+ add hl, de
+.even
+ sla e
+ rl d
+ and a
+ jr nz, .multiply
+ ret
+
+BattleAnim_Sine_e: ; ce765 (33:6765)
+ ld a, e
+ call BattleAnim_Sine
+ ld e, a
+ ret
+
+BattleAnim_Cosine_e: ; ce76b (33:676b)
+ ld a, e
+ call BattleAnim_Cosine
+ ld e, a
+ ret
+
+; ce771 (33:6771)
+BattleAnim_AbsSinePrecise: ; ce771
+ ld a, e
+ call BattleAnim_Sine
+ ld e, l
+ ld d, h
+ ret
+
+; ce778
+BattleAnim_AbsCosinePrecise: ; ce778
+ ld a, e
+ call BattleAnim_Cosine
+ ld e, l
+ ld d, h
+ ret
+
+; ce77f
+BattleAnimSineWave: ; ce77f
+ sine_wave $100
+; ce7bf
diff --git a/battle/objects/gfx_headers.asm b/battle/objects/gfx_headers.asm
new file mode 100755
index 000000000..bec34ce74
--- /dev/null
+++ b/battle/objects/gfx_headers.asm
@@ -0,0 +1,52 @@
+
+AnimObjGFX: ; cfcf6
+
+object_gfx: MACRO
+; label, # tiles
+ db \1
+ dba \2
+ENDM
+
+ object_gfx 0, AnimObj00GFX
+ object_gfx 21, AnimObj01GFX
+ object_gfx 6, AnimObj02GFX
+ object_gfx 6, AnimObj03GFX
+ object_gfx 20, AnimObj04GFX
+ object_gfx 26, AnimObj05GFX
+ object_gfx 18, AnimObj06GFX
+ object_gfx 12, AnimObj07GFX
+ object_gfx 9, AnimObj08GFX
+ object_gfx 17, AnimObj09GFX
+ object_gfx 6, AnimObj10GFX
+ object_gfx 10, AnimObj11GFX
+ object_gfx 9, AnimObj12GFX
+ object_gfx 13, AnimObj13GFX
+ object_gfx 16, AnimObj14GFX
+ object_gfx 2, AnimObj15GFX
+ object_gfx 11, AnimObj16GFX
+ object_gfx 9, AnimObj17GFX
+ object_gfx 9, AnimObj18GFX
+ object_gfx 19, AnimObj19GFX
+ object_gfx 10, AnimObj20GFX
+ object_gfx 12, AnimObj21GFX
+ object_gfx 18, AnimObj22GFX
+ object_gfx 13, AnimObj23GFX
+ object_gfx 10, AnimObj24GFX
+ object_gfx 27, AnimObj25GFX
+ object_gfx 12, AnimObj26GFX
+ object_gfx 14, AnimObj27GFX
+ object_gfx 16, AnimObj28GFX
+ object_gfx 7, AnimObj29GFX
+ object_gfx 8, AnimObj30GFX
+ object_gfx 40, AnimObj31GFX
+ object_gfx 36, AnimObj32GFX
+ object_gfx 16, AnimObj33GFX
+ object_gfx 48, AnimObj34GFX
+ object_gfx 18, AnimObj35GFX
+ object_gfx 38, AnimObj36GFX
+ object_gfx 35, AnimObj37GFX
+ object_gfx 18, AnimObj38GFX
+ object_gfx 24, AnimObj39GFX
+ object_gfx 1, NULL
+ object_gfx 1, NULL
+; cfd9e
diff --git a/battle/objects/helpers.asm b/battle/objects/helpers.asm
new file mode 100755
index 000000000..a692211d3
--- /dev/null
+++ b/battle/objects/helpers.asm
@@ -0,0 +1,130 @@
+ReinitBattleAnimFrameset: ; ce7bf (33:67bf)
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], 0
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], -1
+ ret
+
+GetBattleAnimFrame: ; ce7d1
+.loop
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .next_frame
+ dec [hl]
+ call .GetPointer
+ ld a, [hli]
+ push af
+ jr .okay
+
+.next_frame
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ inc [hl]
+ call .GetPointer
+ ld a, [hli]
+ cp -2
+ jr z, .restart
+ cp -1
+ jr z, .repeat_last
+ push af
+ ld a, [hl]
+ push hl
+ and $3f
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.okay
+ ld a, [hl]
+ and $c0
+ srl a
+ ld [wBattleAnimTemp7], a
+ pop af
+ ret
+
+.repeat_last
+ xor a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ jr .loop
+
+.restart
+ xor a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ dec a
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], a
+ jr .loop
+
+; ce823
+
+.GetPointer: ; ce823
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, BattleAnimFrameData
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ret
+
+; ce83c
+
+GetBattleAnimOAMPointer: ; ce83c
+ ld l, a
+ ld h, 0
+ ld de, BattleAnimOAMData
+ add hl, hl
+ add hl, hl
+ add hl, de
+ ret
+
+; ce846
+
+LoadBattleAnimObj: ; ce846 (33:6846)
+ push hl
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, AnimObjGFX
+ add hl, de
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ push bc
+ call DecompressRequest2bpp
+ pop bc
+ ret
+
+; ce85e (33:685e)
diff --git a/battle/objects/oam.asm b/battle/objects/oam.asm
new file mode 100755
index 000000000..d7186b106
--- /dev/null
+++ b/battle/objects/oam.asm
@@ -0,0 +1,1086 @@
+
+BattleAnimOAMData: ; ceeae
+; vtile offset (?), length, address
+ dbbw $00, 16, .OAMData_00 ; 00
+ dbbw $04, 9, .OAMData_01 ; 01
+ dbbw $08, 4, .OAMData_02 ; 02
+ dbbw $09, 4, .OAMData_03 ; 03
+ dbbw $0d, 4, .OAMData_04 ; 04
+ dbbw $0f, 4, .OAMData_03 ; 05
+ dbbw $13, 4, .OAMData_04 ; 06
+ dbbw $04, 16, .OAMData_00 ; 07
+ dbbw $08, 16, .OAMData_00 ; 08
+ dbbw $08, 16, .OAMData_09 ; 09
+ dbbw $00, 4, .OAMData_04 ; 0a
+ dbbw $02, 4, .OAMData_03 ; 0b
+ dbbw $06, 2, .OAMData_0c ; 0c
+ dbbw $07, 2, .OAMData_0c ; 0d
+ dbbw $02, 4, .OAMData_04 ; 0e
+ dbbw $04, 1, .OAMData_0f ; 0f
+ dbbw $05, 1, .OAMData_0f ; 10
+ dbbw $00, 2, .OAMData_11 ; 11
+ dbbw $02, 2, .OAMData_11 ; 12
+ dbbw $00, 4, .OAMData_13 ; 13
+ dbbw $00, 1, .OAMData_0f ; 14
+ dbbw $01, 1, .OAMData_0f ; 15
+ dbbw $02, 1, .OAMData_0f ; 16
+ dbbw $03, 1, .OAMData_0f ; 17
+ dbbw $00, 4, .OAMData_02 ; 18
+ dbbw $01, 16, .OAMData_00 ; 19
+ dbbw $05, 16, .OAMData_00 ; 1a
+ dbbw $00, 4, .OAMData_03 ; 1b
+ dbbw $05, 12, .OAMData_1c ; 1c
+ dbbw $02, 4, .OAMData_02 ; 1d
+ dbbw $06, 1, .OAMData_0f ; 1e
+ dbbw $07, 1, .OAMData_0f ; 1f
+ dbbw $08, 1, .OAMData_0f ; 20
+ dbbw $04, 4, .OAMData_03 ; 21
+ dbbw $09, 22, .OAMData_22 ; 22
+ dbbw $04, 2, .OAMData_11 ; 23
+ dbbw $06, 2, .OAMData_11 ; 24
+ dbbw $0c, 1, .OAMData_0f ; 25
+ dbbw $0a, 1, .OAMData_0f ; 26
+ dbbw $0b, 4, .OAMData_02 ; 27
+ dbbw $08, 4, .OAMData_04 ; 28
+ dbbw $06, 4, .OAMData_04 ; 29
+ dbbw $00, 5, .OAMData_2a ; 2a
+ dbbw $03, 6, .OAMData_2b ; 2b
+ dbbw $00, 7, .OAMData_2c ; 2c
+ dbbw $03, 8, .OAMData_2d ; 2d
+ dbbw $00, 9, .OAMData_2e ; 2e
+ dbbw $00, 4, .OAMData_2f ; 2f
+ dbbw $02, 4, .OAMData_30 ; 30
+ dbbw $04, 6, .OAMData_31 ; 31
+ dbbw $00, 2, .OAMData_32 ; 32
+ dbbw $00, 7, .OAMData_33 ; 33
+ dbbw $00, 14, .OAMData_32 ; 34
+ dbbw $00, 21, .OAMData_33 ; 35
+ dbbw $00, 2, .OAMData_36 ; 36
+ dbbw $00, 6, .OAMData_36 ; 37
+ dbbw $00, 10, .OAMData_36 ; 38
+ dbbw $00, 14, .OAMData_36 ; 39
+ dbbw $00, 2, .OAMData_3a ; 3a
+ dbbw $00, 6, .OAMData_3a ; 3b
+ dbbw $00, 10, .OAMData_3a ; 3c
+ dbbw $00, 14, .OAMData_3a ; 3d
+ dbbw $00, 4, .OAMData_3e ; 3e
+ dbbw $00, 16, .OAMData_3e ; 3f
+ dbbw $00, 26, .OAMData_3e ; 40
+ dbbw $00, 26, .OAMData_41 ; 41
+ dbbw $0e, 4, .OAMData_42 ; 42
+ dbbw $0e, 8, .OAMData_42 ; 43
+ dbbw $0e, 4, .OAMData_44 ; 44
+ dbbw $0e, 8, .OAMData_44 ; 45
+ dbbw $0e, 4, .OAMData_46 ; 46
+ dbbw $0e, 4, .OAMData_47 ; 47
+ dbbw $00, 6, .OAMData_48 ; 48
+ dbbw $03, 4, .OAMData_49 ; 49
+ dbbw $03, 2, .OAMData_4a ; 4a
+ dbbw $01, 5, .OAMData_0f ; 4b
+ dbbw $01, 6, .OAMData_4c ; 4c
+ dbbw $01, 7, .OAMData_4d ; 4d
+ dbbw $01, 3, .OAMData_4d ; 4e
+ dbbw $01, 8, .OAMData_4f ; 4f
+ dbbw $01, 9, .OAMData_50 ; 50
+ dbbw $01, 10, .OAMData_51 ; 51
+ dbbw $01, 6, .OAMData_51 ; 52
+ dbbw $00, 9, .OAMData_01 ; 53
+ dbbw $04, 4, .OAMData_02 ; 54
+ dbbw $05, 4, .OAMData_02 ; 55
+ dbbw $00, 2, .OAMData_56 ; 56
+ dbbw $02, 2, .OAMData_56 ; 57
+ dbbw $04, 2, .OAMData_56 ; 58
+ dbbw $02, 4, .OAMData_59 ; 59
+ dbbw $02, 4, .OAMData_5a ; 5a
+ dbbw $02, 2, .OAMData_0c ; 5b
+ dbbw $04, 2, .OAMData_0c ; 5c
+ dbbw $06, 4, .OAMData_5d ; 5d
+ dbbw $08, 2, .OAMData_0c ; 5e
+ dbbw $09, 2, .OAMData_0c ; 5f
+ dbbw $05, 2, .OAMData_60 ; 60
+ dbbw $00, 2, .OAMData_61 ; 61
+ dbbw $00, 5, .OAMData_61 ; 62
+ dbbw $00, 9, .OAMData_61 ; 63
+ dbbw $09, 9, .OAMData_61 ; 64
+ dbbw $00, 4, .OAMData_65 ; 65
+ dbbw $00, 7, .OAMData_65 ; 66
+ dbbw $00, 9, .OAMData_65 ; 67
+ dbbw $09, 9, .OAMData_65 ; 68
+ dbbw $04, 1, .OAMData_69 ; 69
+ dbbw $05, 2, .OAMData_6a ; 6a
+ dbbw $06, 4, .OAMData_03 ; 6b
+ dbbw $0a, 4, .OAMData_03 ; 6c
+ dbbw $0e, 4, .OAMData_03 ; 6d
+ dbbw $08, 5, .OAMData_6e ; 6e
+ dbbw $0d, 3, .OAMData_6f ; 6f
+ dbbw $01, 8, .OAMData_70 ; 70
+ dbbw $03, 8, .OAMData_70 ; 71
+ dbbw $05, 8, .OAMData_70 ; 72
+ dbbw $07, 8, .OAMData_70 ; 73
+ dbbw $06, 4, .OAMData_02 ; 74
+ dbbw $07, 4, .OAMData_02 ; 75
+ dbbw $0a, 2, .OAMData_76 ; 76
+ dbbw $00, 1, .OAMData_77 ; 77
+ dbbw $00, 3, .OAMData_78 ; 78
+ dbbw $00, 6, .OAMData_79 ; 79
+ dbbw $00, 9, .OAMData_7a ; 7a
+ dbbw $00, 12, .OAMData_7b ; 7b
+ dbbw $00, 14, .OAMData_7c ; 7c
+ dbbw $00, 15, .OAMData_7d ; 7d
+ dbbw $04, 4, .OAMData_03 ; 7e
+ dbbw $08, 4, .OAMData_03 ; 7f
+ dbbw $0d, 1, .OAMData_0f ; 80
+ dbbw $0e, 4, .OAMData_81 ; 81
+ dbbw $10, 1, .OAMData_0f ; 82
+ dbbw $11, 1, .OAMData_0f ; 83
+ dbbw $04, 2, .OAMData_6a ; 84
+ dbbw $05, 2, .OAMData_6a ; 85
+ dbbw $0a, 4, .OAMData_04 ; 86
+ dbbw $00, 8, .OAMData_87 ; 87
+ dbbw $00, 12, .OAMData_88 ; 88
+ dbbw $00, 16, .OAMData_87 ; 89
+ dbbw $09, 2, .OAMData_8a ; 8a
+ dbbw $09, 4, .OAMData_8a ; 8b
+ dbbw $09, 6, .OAMData_8a ; 8c
+ dbbw $09, 8, .OAMData_8a ; 8d
+ dbbw $12, 5, .OAMData_8e ; 8e
+ dbbw $00, 4, .OAMData_8f ; 8f
+ dbbw $04, 4, .OAMData_8f ; 90
+ dbbw $08, 4, .OAMData_8f ; 91
+ dbbw $0c, 4, .OAMData_8f ; 92
+ dbbw $00, 6, .OAMData_93 ; 93
+ dbbw $04, 4, .OAMData_03 ; 94
+ dbbw $0a, 4, .OAMData_04 ; 95
+ dbbw $15, 4, .OAMData_30 ; 96
+ dbbw $04, 4, .OAMData_30 ; 97
+ dbbw $0c, 4, .OAMData_04 ; 98
+ dbbw $0a, 4, .OAMData_99 ; 99
+ dbbw $0c, 4, .OAMData_03 ; 9a
+ dbbw $00, 36, .OAMData_9b ; 9b
+ dbbw $0d, 2, .OAMData_9c ; 9c
+ dbbw $0d, 4, .OAMData_9c ; 9d
+ dbbw $0d, 6, .OAMData_9c ; 9e
+ dbbw $02, 8, .OAMData_9f ; 9f
+ dbbw $08, 7, .OAMData_a0 ; a0
+ dbbw $08, 5, .OAMData_a0 ; a1
+ dbbw $08, 3, .OAMData_a0 ; a2
+ dbbw $00, 16, .OAMData_1c ; a3
+ dbbw $00, 9, .OAMData_a4 ; a4
+ dbbw $06, 9, .OAMData_a4 ; a5
+ dbbw $0c, 9, .OAMData_a4 ; a6
+ dbbw $12, 9, .OAMData_a4 ; a7
+ dbbw $18, 9, .OAMData_a4 ; a8
+ dbbw $1e, 9, .OAMData_a4 ; a9
+ dbbw $24, 9, .OAMData_a4 ; aa
+ dbbw $2a, 9, .OAMData_a4 ; ab
+ dbbw $03, 4, .OAMData_ac ; ac
+ dbbw $12, 4, .OAMData_03 ; ad
+ dbbw $10, 4, .OAMData_04 ; ae
+ dbbw $16, 1, .OAMData_0f ; af
+ dbbw $17, 4, .OAMData_02 ; b0
+ dbbw $18, 4, .OAMData_03 ; b1
+ dbbw $1c, 4, .OAMData_03 ; b2
+ dbbw $20, 3, .OAMData_03 ; b3
+ dbbw $23, 4, .OAMData_04 ; b4
+ dbbw $25, 3, .OAMData_03 ; b5
+ dbbw $17, 4, .OAMData_03 ; b6
+ dbbw $0a, 16, .OAMData_00 ; b7
+ dbbw $10, 16, .OAMData_1c ; b8
+ dbbw $00, 16, .OAMData_1c ; b9
+ dbbw $04, 4, .OAMData_03 ; ba
+ dbbw $08, 2, .OAMData_11 ; bb
+ dbbw $20, 6, .OAMData_bc ; bc
+ dbbw $08, 1, .OAMData_0f ; bd
+ dbbw $04, 4, .OAMData_03 ; be
+ dbbw $1a, 4, .OAMData_30 ; bf
+ dbbw $16, 9, .OAMData_01 ; c0
+ dbbw $10, 16, .OAMData_c1 ; c1
+ dbbw $09, 6, .OAMData_c2 ; c2
+ dbbw $11, 9, .OAMData_c3 ; c3
+ dbbw $0e, 4, .OAMData_03 ; c4
+ dbbw $0b, 4, .OAMData_30 ; c5
+ dbbw $1c, 6, .OAMData_02 ; c6
+ dbbw $20, 16, .OAMData_c1 ; c7
+ dbbw $05, 6, .OAMData_c8 ; c8
+ dbbw $0b, 4, .OAMData_03 ; c9
+ dbbw $09, 4, .OAMData_ca ; ca
+ dbbw $0b, 4, .OAMData_04 ; cb
+ dbbw $11, 13, .OAMData_cc ; cc
+ dbbw $00, 9, .OAMData_c3 ; cd
+ dbbw $09, 9, .OAMData_c3 ; ce
+ dbbw $00, 12, .OAMData_cf ; cf
+ dbbw $06, 12, .OAMData_cf ; d0
+ dbbw $0c, 12, .OAMData_cf ; d1
+ dbbw $12, 12, .OAMData_cf ; d2
+ dbbw $00, 13, .OAMData_cc ; d3
+ dbbw $00, 7, .OAMData_d4 ; d4
+ dbbw $00, 6, .OAMData_d5 ; d5
+ dbbw $00, 14, .OAMData_d6 ; d6
+ dbbw $00, 12, .OAMData_d7 ; d7
+
+.OAMData_11
+ dsprite -1, 0, -1, 4, $00, $00
+ dsprite 0, 0, -1, 4, $01, $00
+
+.OAMData_56
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $01, $00
+
+.OAMData_03
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $02, $00
+ dsprite 0, 0, 0, 0, $03, $00
+
+.OAMData_02
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_c3
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 4, $04, $00
+ dsprite -1, 4, 0, 4, $05, $00
+ dsprite 0, 4, -2, 4, $06, $00
+ dsprite 0, 4, -1, 4, $07, $00
+ dsprite 0, 4, 0, 4, $08, $00
+
+.OAMData_01
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $00, $20
+ dsprite -1, 4, -2, 4, $02, $00
+ dsprite -1, 4, -1, 4, $03, $00
+ dsprite -1, 4, 0, 4, $02, $60
+ dsprite 0, 4, -2, 4, $00, $40
+ dsprite 0, 4, -1, 4, $01, $60
+ dsprite 0, 4, 0, 4, $00, $60
+
+.OAMData_cf
+ dsprite -2, 0, -2, 4, $00, $00
+ dsprite -2, 0, -1, 4, $01, $00
+ dsprite -2, 0, 0, 4, $02, $00
+ dsprite -1, 0, -2, 4, $03, $00
+ dsprite -1, 0, -1, 4, $04, $00
+ dsprite -1, 0, 0, 4, $05, $00
+ dsprite 0, 0, -2, 4, $05, $60
+ dsprite 0, 0, -1, 4, $04, $60
+ dsprite 0, 0, 0, 4, $03, $60
+ dsprite 1, 0, -2, 4, $02, $60
+ dsprite 1, 0, -1, 4, $01, $60
+ dsprite 1, 0, 0, 4, $00, $60
+
+.OAMData_1c
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $02, $00
+ dsprite -2, 0, 1, 0, $03, $00
+ dsprite -1, 0, -2, 0, $04, $00
+ dsprite -1, 0, -1, 0, $05, $00
+ dsprite -1, 0, 0, 0, $06, $00
+ dsprite -1, 0, 1, 0, $07, $00
+ dsprite 0, 0, -2, 0, $08, $00
+ dsprite 0, 0, -1, 0, $09, $00
+ dsprite 0, 0, 0, 0, $0a, $00
+ dsprite 0, 0, 1, 0, $0b, $00
+ dsprite 1, 0, -2, 0, $0c, $00
+ dsprite 1, 0, -1, 0, $0d, $00
+ dsprite 1, 0, 0, 0, $0e, $00
+ dsprite 1, 0, 1, 0, $0f, $00
+
+.OAMData_00
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -1, 0, -2, 0, $02, $00
+ dsprite -1, 0, -1, 0, $03, $00
+ dsprite -2, 0, 0, 0, $01, $20
+ dsprite -2, 0, 1, 0, $00, $20
+ dsprite -1, 0, 0, 0, $03, $20
+ dsprite -1, 0, 1, 0, $02, $20
+ dsprite 0, 0, -2, 0, $02, $40
+ dsprite 0, 0, -1, 0, $03, $40
+ dsprite 1, 0, -2, 0, $00, $40
+ dsprite 1, 0, -1, 0, $01, $40
+ dsprite 0, 0, 0, 0, $03, $60
+ dsprite 0, 0, 1, 0, $02, $60
+ dsprite 1, 0, 0, 0, $01, $60
+ dsprite 1, 0, 1, 0, $00, $60
+
+.OAMData_09
+ dsprite -3, 4, -3, 4, $00, $00
+ dsprite -3, 4, -2, 4, $01, $00
+ dsprite -2, 4, -3, 4, $02, $00
+ dsprite -2, 4, -2, 4, $03, $00
+ dsprite -3, 4, 0, 4, $01, $20
+ dsprite -3, 4, 1, 4, $00, $20
+ dsprite -2, 4, 0, 4, $03, $20
+ dsprite -2, 4, 1, 4, $02, $20
+ dsprite 0, 4, -3, 4, $02, $40
+ dsprite 0, 4, -2, 4, $03, $40
+ dsprite 1, 4, -3, 4, $00, $40
+ dsprite 1, 4, -2, 4, $01, $40
+ dsprite 0, 4, 0, 4, $03, $60
+ dsprite 0, 4, 1, 4, $02, $60
+ dsprite 1, 4, 0, 4, $01, $60
+ dsprite 1, 4, 1, 4, $00, $60
+
+.OAMData_0c
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $00, $20
+
+.OAMData_6a
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $00, $20
+
+.OAMData_04
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $01, $20
+
+.OAMData_5d
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $01, $40
+
+.OAMData_13
+ dsprite -1, 2, -1, 0, $02, $00
+ dsprite 0, 2, -1, 0, $03, $00
+ dsprite -2, 6, 0, 0, $02, $00
+ dsprite -1, 6, 0, 0, $03, $00
+
+.OAMData_22
+ dsprite 1, 0, -11, 0, $01, $00
+ dsprite 0, 0, -10, 0, $02, $00
+ dsprite 0, 0, -9, 0, $03, $00
+ dsprite 0, 0, -8, 0, $00, $00
+ dsprite 0, 0, -7, 0, $03, $00
+ dsprite 0, 0, -6, 0, $00, $00
+ dsprite 0, 0, -5, 0, $03, $00
+ dsprite 0, 0, -4, 0, $00, $00
+ dsprite 0, 0, -3, 0, $03, $00
+ dsprite 0, 0, -2, 0, $00, $00
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $02, $00
+ dsprite -1, 0, 1, 0, $03, $00
+ dsprite -1, 0, 2, 0, $00, $00
+ dsprite -1, 0, 3, 0, $03, $00
+ dsprite -1, 0, 4, 0, $00, $00
+ dsprite -1, 0, 5, 0, $03, $00
+ dsprite -1, 0, 6, 0, $00, $00
+ dsprite -1, 0, 7, 0, $03, $00
+ dsprite -1, 0, 8, 0, $00, $00
+ dsprite -1, 0, 9, 0, $01, $00
+ dsprite -2, 0, 10, 0, $02, $00
+
+.OAMData_2a
+ dsprite -3, 4, -1, 0, $00, $00
+ dsprite -3, 4, 0, 0, $00, $20
+ dsprite -2, 4, -1, 0, $01, $00
+ dsprite -2, 4, 0, 0, $01, $20
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2b
+ dsprite -4, 4, -1, 0, $00, $00
+ dsprite -4, 4, 0, 0, $00, $20
+ dsprite -3, 4, -1, 0, $01, $00
+ dsprite -3, 4, 0, 0, $01, $20
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2c
+ dsprite -5, 4, -1, 0, $00, $00
+ dsprite -5, 4, 0, 0, $00, $20
+ dsprite -4, 4, -1, 0, $01, $00
+ dsprite -4, 4, 0, 0, $01, $20
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2d
+ dsprite -6, 4, -1, 0, $00, $00
+ dsprite -6, 4, 0, 0, $00, $20
+ dsprite -5, 4, -1, 0, $01, $00
+ dsprite -5, 4, 0, 0, $01, $20
+ dsprite -4, 4, -1, 4, $02, $00
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2e
+ dsprite -7, 4, -1, 0, $00, $00
+ dsprite -7, 4, 0, 0, $00, $20
+ dsprite -6, 4, -1, 0, $01, $00
+ dsprite -6, 4, 0, 0, $01, $20
+ dsprite -5, 4, -1, 4, $02, $00
+ dsprite -4, 4, -1, 4, $02, $00
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2f
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_30
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $01, $60
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_31
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $03, $00
+ dsprite 0, 4, -1, 0, $04, $00
+ dsprite 0, 4, 0, 0, $05, $00
+
+.OAMData_76
+ dsprite -1, 5, -1, 0, $00, $00
+ dsprite -1, 1, 0, 0, $00, $00
+
+.OAMData_32
+ dsprite -1, 0, -2, 4, $00, $00
+ dsprite -1, 0, 0, 4, $00, $00
+ dsprite -3, 0, -2, 4, $00, $00
+ dsprite -3, 0, 0, 4, $00, $00
+ dsprite -2, 0, -3, 4, $00, $00
+ dsprite -2, 0, -2, 4, $01, $00
+ dsprite -2, 0, -1, 4, $00, $00
+ dsprite -2, 0, 0, 4, $01, $00
+ dsprite -2, 0, 1, 4, $00, $00
+ dsprite -1, 0, -4, 4, $00, $00
+ dsprite -1, 0, -3, 4, $01, $00
+ dsprite -1, 0, -1, 4, $01, $00
+ dsprite -1, 0, 1, 4, $01, $00
+ dsprite -1, 0, 2, 4, $00, $00
+
+.OAMData_33
+ dsprite -2, 0, -2, 4, $00, $00
+ dsprite -2, 0, 0, 4, $00, $00
+ dsprite -1, 0, -3, 4, $00, $00
+ dsprite -1, 0, -2, 4, $01, $00
+ dsprite -1, 0, -1, 4, $00, $00
+ dsprite -1, 0, 0, 4, $01, $00
+ dsprite -1, 0, 1, 4, $00, $00
+ dsprite -4, 0, -2, 4, $00, $00
+ dsprite -4, 0, 0, 4, $00, $00
+ dsprite -3, 0, -3, 4, $00, $00
+ dsprite -3, 0, -2, 4, $01, $00
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -3, 0, 0, 4, $01, $00
+ dsprite -3, 0, 1, 4, $00, $00
+ dsprite -2, 0, -4, 4, $00, $00
+ dsprite -2, 0, -3, 4, $01, $00
+ dsprite -2, 0, -1, 4, $01, $00
+ dsprite -2, 0, 1, 4, $01, $00
+ dsprite -2, 0, 2, 4, $00, $00
+ dsprite -1, 0, -4, 4, $01, $00
+ dsprite -1, 0, 2, 4, $01, $00
+
+.OAMData_36
+ dsprite -7, 4, -1, 0, $00, $00
+ dsprite -7, 4, 0, 0, $01, $00
+ dsprite -6, 4, -1, 0, $02, $00
+ dsprite -6, 4, 0, 0, $03, $00
+ dsprite -5, 4, -1, 0, $04, $00
+ dsprite -5, 4, 0, 0, $05, $00
+ dsprite -4, 4, -1, 0, $06, $00
+ dsprite -4, 4, 0, 0, $07, $00
+ dsprite -3, 4, -1, 0, $08, $00
+ dsprite -3, 4, 0, 0, $09, $00
+ dsprite -2, 4, -1, 0, $0a, $00
+ dsprite -2, 4, 0, 0, $0b, $00
+ dsprite -1, 4, -1, 0, $0c, $00
+ dsprite -1, 4, 0, 0, $0d, $00
+
+.OAMData_3a
+ dsprite -7, 4, -1, 0, $0c, $00
+ dsprite -7, 4, 0, 0, $0d, $00
+ dsprite -6, 4, -1, 0, $08, $00
+ dsprite -6, 4, 0, 0, $09, $00
+ dsprite -5, 4, -1, 0, $04, $00
+ dsprite -5, 4, 0, 0, $05, $00
+ dsprite -4, 4, -1, 0, $00, $00
+ dsprite -4, 4, 0, 0, $01, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $03, $00
+ dsprite -2, 4, 0, 0, $02, $00
+ dsprite -2, 4, 1, 0, $03, $00
+ dsprite -1, 4, 0, 0, $0a, $00
+ dsprite -1, 4, 1, 0, $0b, $00
+
+.OAMData_3e
+ dsprite 1, 4, -2, 0, $00, $40
+ dsprite 1, 4, -1, 0, $02, $40
+ dsprite 1, 4, 0, 0, $02, $60
+ dsprite 1, 4, 1, 0, $00, $60
+ dsprite -1, 4, -3, 0, $09, $20
+ dsprite -1, 4, -2, 0, $08, $20
+ dsprite -1, 4, -1, 0, $06, $00
+ dsprite -1, 4, 0, 0, $07, $00
+ dsprite -1, 4, 1, 0, $08, $00
+ dsprite -1, 4, 2, 0, $09, $00
+ dsprite 0, 4, -3, 0, $01, $20
+ dsprite 0, 4, -2, 0, $00, $20
+ dsprite 0, 4, -1, 0, $0c, $00
+ dsprite 0, 4, 0, 0, $0d, $00
+ dsprite 0, 4, 1, 0, $00, $00
+ dsprite 0, 4, 2, 0, $01, $00
+ dsprite -3, 4, -2, 0, $00, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $02, $20
+ dsprite -3, 4, 1, 0, $00, $20
+ dsprite -2, 4, -3, 0, $03, $20
+ dsprite -2, 4, -2, 0, $02, $20
+ dsprite -2, 4, -1, 0, $04, $00
+ dsprite -2, 4, 0, 0, $05, $00
+ dsprite -2, 4, 1, 0, $02, $00
+ dsprite -2, 4, 2, 0, $03, $00
+
+.OAMData_41
+ dsprite -3, 4, -2, 0, $00, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $02, $20
+ dsprite -3, 4, 1, 0, $00, $20
+ dsprite -2, 4, -3, 4, $00, $00
+ dsprite -2, 4, -2, 4, $01, $00
+ dsprite -2, 4, -1, 0, $05, $20
+ dsprite -2, 4, 0, 0, $04, $20
+ dsprite -2, 4, 0, 4, $01, $20
+ dsprite -2, 4, 1, 4, $00, $20
+ dsprite -1, 4, -3, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 0, $07, $20
+ dsprite -1, 4, 0, 0, $06, $20
+ dsprite -1, 4, 0, 4, $03, $20
+ dsprite -1, 4, 1, 4, $02, $20
+ dsprite 0, 4, -3, 4, $04, $00
+ dsprite 0, 4, -2, 4, $05, $00
+ dsprite 0, 4, -1, 0, $0d, $20
+ dsprite 0, 4, 0, 0, $0c, $20
+ dsprite 0, 4, 0, 4, $05, $20
+ dsprite 0, 4, 1, 4, $04, $20
+ dsprite 1, 4, -2, 0, $00, $40
+ dsprite 1, 4, -1, 0, $02, $40
+ dsprite 1, 4, 0, 0, $02, $60
+ dsprite 1, 4, 1, 0, $00, $60
+
+.OAMData_42
+ dsprite -3, 0, -1, 4, $02, $00
+ dsprite 2, 0, -1, 4, $02, $60
+ dsprite -1, 4, -3, 0, $01, $00
+ dsprite -1, 4, 2, 0, $01, $60
+ dsprite -4, 0, -1, 4, $02, $00
+ dsprite 3, 0, -1, 4, $02, $60
+ dsprite -1, 4, -4, 0, $01, $00
+ dsprite -1, 4, 3, 0, $01, $60
+
+.OAMData_44
+ dsprite -3, 5, -3, 5, $00, $20
+ dsprite -3, 5, 1, 3, $00, $00
+ dsprite 1, 3, -3, 5, $00, $60
+ dsprite 1, 3, 1, 3, $00, $40
+ dsprite -4, 5, -4, 5, $00, $20
+ dsprite -4, 5, 2, 3, $00, $00
+ dsprite 2, 3, -4, 5, $00, $60
+ dsprite 2, 3, 2, 3, $00, $40
+
+.OAMData_46
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite 1, 4, -1, 4, $02, $60
+ dsprite -1, 4, -3, 4, $01, $00
+ dsprite -1, 4, 1, 4, $01, $60
+
+.OAMData_47
+ dsprite -2, 0, -2, 0, $00, $20
+ dsprite -2, 0, 1, 0, $00, $00
+ dsprite 1, 0, -2, 0, $00, $60
+ dsprite 1, 0, 1, 0, $00, $40
+
+.OAMData_48
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -2, 0, -1, 2, $00, $00
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 1, 0, -1, 2, $00, $00
+ dsprite 2, 0, -1, 4, $00, $00
+
+.OAMData_49
+ dsprite -1, 4, -2, 0, $00, $20
+ dsprite -1, 2, -1, 0, $00, $20
+ dsprite -1, 2, 0, 0, $00, $00
+ dsprite -1, 4, 1, 0, $00, $00
+
+.OAMData_4a
+ dsprite -1, 4, -1, 0, $00, $60
+ dsprite -1, 4, 0, 0, $00, $40
+
+.OAMData_0f
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 4, -2, 4, $01, $00
+ dsprite -1, 4, -1, 4, $01, $20
+ dsprite 0, 4, -2, 4, $01, $40
+ dsprite 0, 4, -1, 4, $01, $60
+
+.OAMData_4c
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 0, 2, -3, 6, $01, $00
+ dsprite 0, 2, -2, 6, $01, $20
+ dsprite 1, 2, -3, 6, $01, $40
+ dsprite 1, 2, -2, 6, $01, $60
+
+.OAMData_4d
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 0, -3, 0, $01, $00
+ dsprite 1, 0, -2, 0, $01, $20
+ dsprite 2, 0, -3, 0, $01, $40
+ dsprite 2, 0, -2, 0, $01, $60
+
+.OAMData_4f
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 1, 6, -4, 2, $01, $00
+ dsprite 1, 6, -3, 2, $01, $20
+ dsprite 2, 6, -4, 2, $01, $40
+ dsprite 2, 6, -3, 2, $01, $60
+
+.OAMData_50
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 2, 4, -4, 4, $00, $00
+ dsprite 2, 4, -5, 4, $01, $00
+ dsprite 2, 4, -4, 4, $01, $20
+ dsprite 3, 4, -5, 4, $01, $40
+ dsprite 3, 4, -4, 4, $01, $60
+
+.OAMData_51
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 2, 4, -4, 4, $00, $00
+ dsprite 3, 2, -5, 6, $00, $00
+ dsprite 3, 2, -6, 6, $01, $00
+ dsprite 3, 2, -5, 6, $01, $20
+ dsprite 4, 2, -6, 6, $01, $40
+ dsprite 4, 2, -5, 6, $01, $60
+
+.OAMData_59
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $00, $20
+
+.OAMData_5a
+ dsprite -1, 4, -2, 0, $02, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $02, $20
+
+.OAMData_60
+ dsprite -1, 0, -1, 4, $00, $00
+
+.OAMData_69
+ dsprite 0, 0, -1, 4, $00, $00
+
+.OAMData_61
+ dsprite -1, 4, -4, 4, $00, $00
+ dsprite -1, 4, -3, 4, $01, $00
+ dsprite -1, 4, -2, 4, $02, $00
+ dsprite -1, 4, -1, 4, $03, $00
+ dsprite -1, 4, 0, 4, $04, $00
+ dsprite -1, 4, 1, 4, $05, $00
+ dsprite -1, 4, 2, 4, $06, $00
+ dsprite -2, 4, 1, 4, $07, $00
+ dsprite -2, 4, 2, 4, $08, $00
+
+.OAMData_65
+ dsprite -2, 4, -4, 4, $08, $20
+ dsprite -2, 4, -3, 4, $07, $20
+ dsprite -1, 4, -4, 4, $06, $20
+ dsprite -1, 4, -3, 4, $05, $20
+ dsprite -1, 4, -2, 4, $04, $20
+ dsprite -1, 4, -1, 4, $03, $20
+ dsprite -1, 4, 0, 4, $02, $20
+ dsprite -1, 4, 1, 4, $01, $20
+ dsprite -1, 4, 2, 4, $00, $20
+
+.OAMData_d4
+ dsprite 0, 0, -4, 4, $00, $10
+ dsprite 0, 0, -3, 4, $01, $10
+ dsprite 0, 0, -2, 4, $02, $10
+ dsprite 0, 0, -1, 4, $03, $10
+ dsprite 0, 0, 0, 4, $04, $10
+ dsprite 0, 0, 1, 4, $05, $10
+ dsprite 0, 0, 2, 4, $06, $10
+
+.OAMData_d6
+ dsprite -1, 0, -4, 4, $00, $10
+ dsprite 0, 0, -4, 4, $01, $10
+ dsprite -1, 0, -3, 4, $02, $10
+ dsprite 0, 0, -3, 4, $03, $10
+ dsprite -1, 0, -2, 4, $04, $10
+ dsprite 0, 0, -2, 4, $05, $10
+ dsprite -1, 0, -1, 4, $06, $10
+ dsprite 0, 0, -1, 4, $07, $10
+ dsprite -1, 0, 0, 4, $08, $10
+ dsprite 0, 0, 0, 4, $09, $10
+ dsprite -1, 0, 1, 4, $0a, $10
+ dsprite 0, 0, 1, 4, $0b, $10
+ dsprite -1, 0, 2, 4, $0c, $10
+ dsprite 0, 0, 2, 4, $0d, $10
+
+.OAMData_d5
+ dsprite 0, 0, -3, 0, $00, $11
+ dsprite 0, 0, -2, 0, $01, $11
+ dsprite 0, 0, -1, 0, $02, $11
+ dsprite 0, 0, 0, 0, $03, $11
+ dsprite 0, 0, 1, 0, $04, $11
+ dsprite 0, 0, 2, 0, $05, $11
+
+.OAMData_d7
+ dsprite 0, 0, -3, 0, $00, $11
+ dsprite 1, 0, -3, 0, $01, $11
+ dsprite 0, 0, -2, 0, $02, $11
+ dsprite 1, 0, -2, 0, $03, $11
+ dsprite 0, 0, -1, 0, $04, $11
+ dsprite 1, 0, -1, 0, $05, $11
+ dsprite 0, 0, 0, 0, $06, $11
+ dsprite 1, 0, 0, 0, $07, $11
+ dsprite 0, 0, 1, 0, $08, $11
+ dsprite 1, 0, 1, 0, $09, $11
+ dsprite 0, 0, 2, 0, $0a, $11
+ dsprite 1, 0, 2, 0, $0b, $11
+
+.OAMData_6e
+ dsprite -2, 4, 0, 4, $00, $00
+ dsprite -1, 4, -2, 4, $01, $00
+ dsprite -1, 4, -1, 4, $02, $00
+ dsprite -1, 4, 0, 4, $03, $00
+ dsprite 0, 4, -2, 4, $04, $00
+
+.OAMData_6f
+ dsprite -1, 4, -2, 4, $00, $00
+ dsprite -1, 4, -1, 4, $01, $00
+ dsprite -1, 4, 0, 4, $02, $00
+
+.OAMData_77
+ dsprite -4, 4, 1, 4, $01, $60
+
+.OAMData_78
+ dsprite -4, 4, 1, 4, $00, $00
+ dsprite -4, 4, 0, 4, $01, $60
+ dsprite -3, 4, 1, 4, $01, $60
+
+.OAMData_79
+ dsprite -4, 4, 1, 4, $01, $00
+ dsprite -4, 4, 0, 4, $00, $00
+ dsprite -4, 4, -1, 4, $01, $60
+ dsprite -3, 4, 1, 4, $00, $00
+ dsprite -3, 4, 0, 4, $01, $60
+ dsprite -2, 4, 1, 4, $01, $60
+
+.OAMData_7a
+ dsprite -4, 4, -2, 4, $01, $60
+ dsprite -4, 4, -1, 4, $00, $00
+ dsprite -4, 4, 0, 4, $01, $00
+ dsprite -3, 4, -1, 4, $01, $60
+ dsprite -3, 4, 0, 4, $00, $00
+ dsprite -3, 4, 1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $01, $60
+ dsprite -2, 4, 1, 4, $00, $00
+ dsprite -1, 4, 1, 4, $01, $60
+
+.OAMData_7b
+ dsprite -4, 4, -3, 4, $01, $60
+ dsprite -4, 4, -2, 4, $00, $00
+ dsprite -4, 4, -1, 4, $01, $00
+ dsprite -3, 4, -2, 4, $01, $60
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite -3, 4, 0, 4, $01, $00
+ dsprite -2, 4, -1, 4, $01, $60
+ dsprite -2, 4, 0, 4, $00, $00
+ dsprite -2, 4, 1, 4, $01, $00
+ dsprite -1, 4, 0, 4, $01, $60
+ dsprite -1, 4, 1, 4, $00, $00
+ dsprite 0, 4, 1, 4, $01, $60
+
+.OAMData_7c
+ dsprite -4, 4, -3, 4, $00, $00
+ dsprite -4, 4, -2, 4, $01, $00
+ dsprite -3, 4, -3, 4, $01, $60
+ dsprite -3, 4, -2, 4, $00, $00
+ dsprite -3, 4, -1, 4, $01, $00
+ dsprite -2, 4, -2, 4, $01, $60
+ dsprite -2, 4, -1, 4, $00, $00
+ dsprite -2, 4, 0, 4, $01, $00
+ dsprite -1, 4, -1, 4, $01, $60
+ dsprite -1, 4, 0, 4, $00, $00
+ dsprite -1, 4, 1, 4, $01, $00
+ dsprite 0, 4, 0, 4, $01, $60
+ dsprite 0, 4, 1, 4, $00, $00
+ dsprite 1, 4, 1, 4, $01, $60
+
+.OAMData_7d
+ dsprite -4, 4, -3, 4, $01, $00
+ dsprite -3, 4, -3, 4, $00, $00
+ dsprite -3, 4, -2, 4, $01, $00
+ dsprite -2, 4, -3, 4, $01, $60
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -1, 4, -2, 4, $01, $60
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 4, 0, 4, $01, $00
+ dsprite 0, 4, -1, 4, $01, $60
+ dsprite 0, 4, 0, 4, $00, $00
+ dsprite 0, 4, 1, 4, $01, $00
+ dsprite 1, 4, 0, 4, $01, $60
+ dsprite 1, 4, 1, 4, $00, $00
+ dsprite 2, 4, 1, 4, $01, $60
+
+.OAMData_70
+ dsprite -2, 0, -1, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $00, $20
+ dsprite -1, 0, 0, 0, $01, $20
+ dsprite 0, 0, -1, 0, $01, $40
+ dsprite 1, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $01, $60
+ dsprite 1, 0, 0, 0, $00, $60
+
+.OAMData_81
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $01, $60
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_87
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $03, $00
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $01, $00
+ dsprite 0, 4, -1, 0, $02, $00
+ dsprite 0, 4, 0, 0, $03, $00
+ dsprite -3, 4, -1, 0, $00, $00
+ dsprite -3, 4, 0, 0, $01, $00
+ dsprite -2, 4, -1, 0, $02, $00
+ dsprite -2, 4, 0, 0, $03, $00
+ dsprite 0, 4, -1, 0, $00, $00
+ dsprite 0, 4, 0, 0, $01, $00
+ dsprite 1, 4, -1, 0, $02, $00
+ dsprite 1, 4, 0, 0, $03, $00
+
+.OAMData_88
+ dsprite -2, 0, -1, 0, $00, $00
+ dsprite -2, 0, 0, 0, $01, $00
+ dsprite -1, 0, -1, 0, $02, $00
+ dsprite -1, 0, 0, 0, $03, $00
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $02, $00
+ dsprite 0, 0, 0, 0, $03, $00
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $01, $00
+ dsprite 1, 0, -1, 0, $02, $00
+ dsprite 1, 0, 0, 0, $03, $00
+
+.OAMData_8a
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 0, 0, 4, $00, $00
+ dsprite -2, 4, 1, 4, $00, $00
+ dsprite -2, 0, 2, 4, $00, $00
+ dsprite -3, 4, 3, 4, $00, $00
+ dsprite -3, 0, 4, 4, $00, $00
+ dsprite -4, 0, 5, 4, $00, $00
+ dsprite -5, 4, 6, 4, $00, $00
+
+.OAMData_8e
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -1, 4, -1, 4, $02, $00
+ dsprite 0, 4, -1, 4, $01, $40
+ dsprite 1, 4, -1, 4, $00, $40
+
+.OAMData_8f
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $02, $00
+ dsprite -1, 4, 1, 0, $03, $00
+
+.OAMData_93
+ dsprite -1, 0, -2, 4, $00, $00
+ dsprite -1, 0, -1, 4, $01, $00
+ dsprite -1, 0, 0, 4, $02, $00
+ dsprite 0, 0, -2, 4, $03, $00
+ dsprite 0, 0, -1, 4, $04, $00
+ dsprite 0, 0, 0, 4, $05, $00
+
+.OAMData_99
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $05, $00
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $05, $00
+
+.OAMData_9b
+ dsprite -4, 4, 1, 0, $00, $00
+ dsprite -4, 4, 2, 0, $01, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $03, $00
+ dsprite -3, 4, 1, 0, $04, $00
+ dsprite -3, 4, 2, 0, $05, $00
+ dsprite -3, 4, 3, 0, $06, $00
+ dsprite -2, 4, -2, 0, $07, $00
+ dsprite -2, 4, -1, 0, $08, $00
+ dsprite -2, 4, 0, 0, $09, $00
+ dsprite -2, 4, 1, 0, $0a, $00
+ dsprite -2, 4, 2, 0, $0b, $00
+ dsprite -2, 4, 3, 0, $0c, $00
+ dsprite -2, 4, 4, 0, $0d, $00
+ dsprite -1, 4, -3, 0, $0e, $00
+ dsprite -1, 4, -2, 0, $0f, $00
+ dsprite -1, 4, -1, 0, $10, $00
+ dsprite -1, 4, 0, 0, $11, $00
+ dsprite -1, 4, 1, 0, $12, $00
+ dsprite -1, 4, 2, 0, $13, $00
+ dsprite 0, 4, -5, 0, $14, $00
+ dsprite 0, 4, -4, 0, $15, $00
+ dsprite 0, 4, -3, 0, $16, $00
+ dsprite 0, 4, -2, 0, $17, $00
+ dsprite 0, 4, -1, 0, $18, $00
+ dsprite 0, 4, 0, 0, $19, $00
+ dsprite 0, 4, 1, 0, $1a, $00
+ dsprite 0, 4, 2, 0, $1b, $00
+ dsprite 0, 4, 3, 0, $1c, $00
+ dsprite 1, 4, -5, 0, $1d, $00
+ dsprite 1, 4, -4, 0, $1e, $00
+ dsprite 1, 4, -2, 0, $1f, $00
+ dsprite 1, 4, -1, 0, $20, $00
+ dsprite 1, 4, 0, 0, $21, $00
+ dsprite 1, 4, 1, 0, $22, $00
+ dsprite 2, 4, 0, 0, $23, $00
+
+.OAMData_9c
+ dsprite 0, 4, -1, 0, $02, $00
+ dsprite 0, 4, 0, 0, $03, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $00, $20
+
+.OAMData_9f
+ dsprite -1, 0, -2, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $02, $00
+ dsprite -1, 0, 1, 0, $03, $00
+ dsprite 0, 0, -2, 0, $04, $00
+ dsprite 0, 0, -1, 0, $05, $00
+ dsprite 0, 0, 0, 0, $06, $00
+ dsprite 0, 0, 1, 0, $07, $00
+
+.OAMData_a0
+ dsprite -2, 4, -1, 4, $00, $00
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 4, -1, 4, $00, $00
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite 1, 4, -1, 4, $00, $00
+ dsprite -4, 4, -1, 4, $00, $00
+ dsprite 2, 4, -1, 4, $00, $00
+
+.OAMData_a4
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 4, $04, $00
+ dsprite -1, 4, 0, 4, $05, $00
+ dsprite 0, 4, -2, 4, $00, $40
+ dsprite 0, 4, -1, 4, $01, $40
+ dsprite 0, 4, 0, 4, $02, $40
+
+.OAMData_ac
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $00, $20
+
+.OAMData_bc
+ dsprite -1, 4, -3, 0, $00, $00
+ dsprite -1, 4, -2, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $02, $20
+ dsprite -1, 4, 1, 0, $01, $20
+ dsprite -1, 4, 2, 0, $00, $20
+
+.OAMData_c1
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $02, $00
+ dsprite -2, 0, 1, 0, $00, $20
+ dsprite -1, 0, -2, 0, $03, $00
+ dsprite -1, 0, -1, 0, $04, $00
+ dsprite -1, 0, 0, 0, $04, $20
+ dsprite -1, 0, 1, 0, $05, $00
+ dsprite 0, 0, -2, 0, $05, $60
+ dsprite 0, 0, -1, 0, $04, $40
+ dsprite 0, 0, 0, 0, $04, $60
+ dsprite 0, 0, 1, 0, $03, $60
+ dsprite 1, 0, -2, 0, $00, $40
+ dsprite 1, 0, -1, 0, $02, $60
+ dsprite 1, 0, 0, 0, $01, $60
+ dsprite 1, 0, 1, 0, $00, $60
+
+.OAMData_c2
+ dsprite -1, 0, -2, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $00, $60
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $01, $00
+ dsprite 0, 0, 1, 0, $00, $60
+
+.OAMData_c8
+ dsprite -1, 0, 1, 4, $00, $00
+ dsprite -1, 0, 2, 4, $01, $00
+ dsprite 0, 0, -1, 4, $02, $00
+ dsprite 0, 0, 0, 4, $03, $00
+ dsprite 0, 0, 1, 4, $04, $00
+ dsprite 0, 0, 2, 4, $05, $00
+
+.OAMData_ca
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $60
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $01, $20
+
+.OAMData_cc
+ dsprite -2, 0, -13, 4, $00, $00
+ dsprite -4, 0, -11, 4, $00, $00
+ dsprite -1, 0, -9, 4, $00, $00
+ dsprite -5, 0, -7, 4, $00, $00
+ dsprite -3, 0, -5, 4, $00, $00
+ dsprite -5, 0, -3, 4, $00, $00
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -3, 0, 0, 4, $00, $00
+ dsprite -5, 0, 2, 4, $00, $00
+ dsprite 0, 0, 4, 4, $00, $00
+ dsprite -2, 0, 6, 4, $00, $00
+ dsprite -4, 0, 8, 4, $00, $00
+ dsprite -2, 0, 10, 4, $00, $00
+; cfcf6
diff --git a/battle/sliding_intro.asm b/battle/sliding_intro.asm
index e13e8bd05..6361f7fa7 100755
--- a/battle/sliding_intro.asm
+++ b/battle/sliding_intro.asm
@@ -1,14 +1,14 @@
-SlideBattlePics: ; 4e980
+BattleIntroSlidingPics: ; 4e980
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
call .subfunction1
ld a, rSCX - $ff00
- ld [hLCDStatCustom], a
+ ld [hFFC6], a
call .subfunction2
xor a
- ld [hLCDStatCustom], a
+ ld [hFFC6], a
pop af
ld [rSVBK], a
ret
@@ -62,7 +62,7 @@ endr
; 4e9d6
.subfunction3: ; 4e9d6
- ld hl, Sprites + 1
+ ld hl, Sprites + 1 ; x pixel
ld c, $12 ; 18
ld de, $4
.loop3
diff --git a/battle/trainer_huds.asm b/battle/trainer_huds.asm
new file mode 100755
index 000000000..7a5e17bdd
--- /dev/null
+++ b/battle/trainer_huds.asm
@@ -0,0 +1,269 @@
+BattleStart_TrainerHuds: ; 2c000
+ ld a, $e4
+ ld [rOBP0], a
+ call LoadBallIconGFX
+ call ShowPlayerMonsRemaining
+ ld a, [wBattleMode]
+ dec a
+ ret z
+ jp ShowOTTrainerMonsRemaining
+; 2c012
+
+EnemySwitch_TrainerHud: ; 2c012
+ ld a, $e4
+ ld [rOBP0], a
+ call LoadBallIconGFX
+ jp ShowOTTrainerMonsRemaining
+; 2c01c
+
+ShowPlayerMonsRemaining: ; 2c01c
+ call DrawPlayerPartyIconHUDBorder
+ ld hl, PartyMon1HP
+ ld de, PartyCount
+ call StageBallTilesData
+ ; ldpixel wPlaceBallsX, 12, 12
+ ld a, 12 * 8
+ ld hl, wPlaceBallsX
+ ld [hli], a
+ ld [hl], a
+ ld a, 8
+ ld [wPlaceBallsDirection], a
+ ld hl, Sprites
+ jp LoadTrainerHudOAM
+; 2c03a
+
+ShowOTTrainerMonsRemaining: ; 2c03a
+ call DrawEnemyHUDBorder
+ ld hl, OTPartyMon1HP
+ ld de, OTPartyCount
+ call StageBallTilesData
+ ; ldpixel wPlaceBallsX, 9, 4
+ ld hl, wPlaceBallsX
+ ld a, 9 * 8
+ ld [hli], a
+ ld [hl], 4 * 8
+ ld a, -8
+ ld [wPlaceBallsDirection], a
+ ld hl, Sprites + PARTY_LENGTH * 4
+ jp LoadTrainerHudOAM
+; 2c059
+
+StageBallTilesData: ; 2c059
+ ld a, [de]
+ push af
+ ld de, Buffer1
+ ld c, PARTY_LENGTH
+ ld a, $34 ; empty slot
+.loop1
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop1
+ pop af
+ ld de, Buffer1
+.loop2
+ push af
+ call .GetHUDTile
+ inc de
+ pop af
+ dec a
+ jr nz, .loop2
+ ret
+; 2c075
+
+.GetHUDTile: ; 2c075
+ ld a, [hli]
+ and a
+ jr nz, .got_hp
+ ld a, [hl]
+ and a
+ ld b, $33 ; fainted
+ jr z, .fainted
+
+.got_hp
+rept 3
+ dec hl
+endr
+ ld a, [hl]
+ and a
+ ld b, $32 ; statused
+ jr nz, .load
+ dec b ; normal
+ jr .load
+
+.fainted
+rept 3
+ dec hl
+endr
+
+.load
+ ld a, b
+ ld [de], a
+ ld bc, PARTYMON_STRUCT_LENGTH + MON_HP - MON_STATUS
+ add hl, bc
+ ret
+; 2c095
+
+DrawPlayerHUDBorder: ; 2c095
+ ld hl, .tiles
+ ld de, wTrainerHUDTiles
+ ld bc, 4
+ call CopyBytes
+ hlcoord 18, 10
+ ld de, -1 ; start on right
+ jr PlaceHUDBorderTiles
+
+.tiles
+ db $73 ; right side
+ db $77 ; bottom right
+ db $6f ; bottom left
+ db $76 ; bottom side
+; 2c0ad
+
+DrawPlayerPartyIconHUDBorder: ; 2c0ad
+ ld hl, .tiles
+ ld de, wTrainerHUDTiles
+ ld bc, 4
+ call CopyBytes
+ hlcoord 18, 10
+ ld de, -1 ; start on right
+ jr PlaceHUDBorderTiles
+
+.tiles
+ db $73 ; right side
+ db $5c ; bottom right
+ db $6f ; bottom left
+ db $76 ; bottom side
+; 2c0c5
+
+DrawEnemyHUDBorder: ; 2c0c5
+ ld hl, .tiles
+ ld de, wTrainerHUDTiles
+ ld bc, 4
+ call CopyBytes
+ hlcoord 1, 2
+ ld de, 1 ; start on left
+ call PlaceHUDBorderTiles
+ ld a, [wBattleMode]
+ dec a
+ ret nz
+ ld a, [TempEnemyMonSpecies]
+ dec a
+ call CheckCaughtMon
+ ret z
+ hlcoord 1, 1
+ ld [hl], $5d
+ ret
+
+.tiles
+ db $6d ; left side
+ db $74 ; bottom left
+ db $78 ; bottom right
+ db $76 ; bottom side
+; 2c0f1
+
+PlaceHUDBorderTiles: ; 2c0f1
+ ld a, [wTrainerHUDTiles]
+ ld [hl], a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld a, [StartFlypoint]
+ ld [hl], a
+ ld b, $8
+.loop
+ add hl, de
+ ld a, [MovementBuffer]
+ ld [hl], a
+ dec b
+ jr nz, .loop
+ add hl, de
+ ld a, [EndFlypoint]
+ ld [hl], a
+ ret
+; 2c10d
+
+LinkBattle_TrainerHuds: ; 2c10d
+ call LoadBallIconGFX
+ ld hl, PartyMon1HP
+ ld de, PartyCount
+ call StageBallTilesData
+ ld hl, wPlaceBallsX
+ ld a, 10 * 8
+ ld [hli], a
+ ld [hl], 8 * 8
+ ld a, $8
+ ld [wPlaceBallsDirection], a
+ ld hl, Sprites
+ call LoadTrainerHudOAM
+
+ ld hl, OTPartyMon1HP
+ ld de, OTPartyCount
+ call StageBallTilesData
+ ld hl, wPlaceBallsX
+ ld a, 10 * 8
+ ld [hli], a
+ ld [hl], 13 * 8
+ ld hl, Sprites + PARTY_LENGTH * 4
+ jp LoadTrainerHudOAM
+; 2c143
+
+LoadTrainerHudOAM: ; 2c143
+ ld de, Buffer1
+ ld c, PARTY_LENGTH
+.loop
+ ld a, [wPlaceBallsY]
+ ld [hli], a
+ ld a, [wPlaceBallsX]
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, [wPlaceBallsX]
+ ld b, a
+ ld a, [wPlaceBallsDirection]
+ add b
+ ld [wPlaceBallsX], a
+ inc de
+ dec c
+ jr nz, .loop
+ ret
+; 2c165
+
+LoadBallIconGFX: ; 2c165
+ ld de, .gfx
+ ld hl, VTiles0 tile $31
+ lb bc, BANK(LoadBallIconGFX), 4
+ call Get2bpp_2
+ ret
+; 2c172
+
+.gfx: ; 2c172
+INCBIN "gfx/battle/balls.2bpp"
+; 2c1b2
+
+_ShowLinkBattleParticipants: ; 2c1b2
+ call ClearBGPalettes
+ call LoadFontsExtra
+ hlcoord 2, 3
+ ld b, 9
+ ld c, 14
+ call TextBox
+ hlcoord 4, 5
+ ld de, PlayerName
+ call PlaceString
+ hlcoord 4, 10
+ ld de, OTPlayerName
+ call PlaceString
+ hlcoord 9, 8
+ ld a, $69 ; "V"
+ ld [hli], a
+ ld [hl], $6a ; "S"
+ callba LinkBattle_TrainerHuds ; no need to callba
+ ld b, SCGB_08
+ call GetSGBLayout
+ call SetPalettes
+ ld a, $e4
+ ld [rOBP0], a
+ ret
+; 2c1ef
diff --git a/battle/used_move_text.asm b/battle/used_move_text.asm
index dac38dbef..b526d1233 100755
--- a/battle/used_move_text.asm
+++ b/battle/used_move_text.asm
@@ -11,7 +11,6 @@ UsedMoveText: ; 105db9
text_jump _ActorNameText
start_asm
-
ld a, [hBattleTurn]
and a
jr nz, .start
@@ -67,30 +66,26 @@ UsedMoveText: ; 105db9
UsedMove1Text: ; 105e04
text_jump _UsedMove1Text
start_asm
- jr Function105e10
+ jr UsedMoveText_CheckObedience
; 105e0b
UsedMove2Text: ; 105e0b
text_jump _UsedMove2Text
start_asm
-; 105e10
-
-Function105e10: ; 105e10
+UsedMoveText_CheckObedience: ; 105e10
; check obedience
ld a, [AlreadyDisobeyed]
and a
- jr z, GetMoveNameText
+ jr z, .GetMoveNameText
; print "instead,"
- ld hl, UsedInsteadText
+ ld hl, .UsedInsteadText
ret
; 105e1a
-UsedInsteadText: ; 105e1a
+.UsedInsteadText
text_jump _UsedInsteadText
start_asm
-; 105e1f
-
-GetMoveNameText: ; 105e1f
+.GetMoveNameText
ld hl, MoveNameText
ret
; 105e23
@@ -98,9 +93,6 @@ GetMoveNameText: ; 105e1f
MoveNameText: ; 105e23
text_jump _MoveNameText
start_asm
-; 105e28
-
-GetUsedMoveTextEnder: ; 105e28
; get start address
ld hl, .endusedmovetexts