shithub: pokecrystal

Download patch

ref: 93ab6985d283857c54fe096294ba5296179963bf
parent: 59d67a44be4f76131b432b94b1cb6361b58a9a26
author: PikalaxALT <[email protected]>
date: Mon Nov 9 11:41:09 EST 2015

Some work on battle animations

--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -40,7 +40,7 @@
 	push af
 
 	ld [hl], c
-	call Functioncc11c
+	call BattleAnimRunScript
 
 	pop af
 	ld [hVBlank], a
@@ -55,17 +55,17 @@
 	ret
 ; cc11c
 
-Functioncc11c: ; cc11c
+BattleAnimRunScript: ; cc11c
 
 	ld a, [FXAnimIDHi]
 	and a
-	jr nz, .asm_cc156
+	jr nz, .hi_byte
 
 	callba CheckBattleScene
-	jr c, .asm_cc141
+	jr c, .disabled
 
 	call BattleAnimClearHud
-	call Functioncc163
+	call RunBattleAnimScript
 
 	call BattleAnimAssignPals
 	call BattleAnimRequestPals
@@ -76,14 +76,14 @@
 	call BattleAnimDelayFrame
 	call BattleAnimRestoreHuds
 
-.asm_cc141
+.disabled
 	ld a, [wcfca]
 	and a
-	jr z, .asm_cc15f
+	jr z, .done
 
 	ld l, a
 	ld h, 0
-	ld de, $10e
+	ld de, ANIM_MISS
 	add hl, de
 	ld a, l
 	ld [FXAnimIDLo], a
@@ -90,17 +90,17 @@
 	ld a, h
 	ld [FXAnimIDHi], a
 
-.asm_cc156
+.hi_byte
 	call WaitSFX
 	call Functioncc881
-	call Functioncc163
+	call RunBattleAnimScript
 
-.asm_cc15f
+.done
 	call Functioncc8f6
 	ret
 ; cc163
 
-Functioncc163: ; cc163
+RunBattleAnimScript: ; cc163
 
 	call Functioncc8d3
 
@@ -257,11 +257,11 @@
 
 	ld a, [BattleAnimFlags]
 	bit 3, a
-	jr z, .asm_cc254
+	jr z, .skip
 
 	ld hl, Sprites + 3
 	ld c, (SpritesEnd - Sprites) / 4
-.asm_cc249
+.loop
 	ld a, [hl]
 	and $f0
 	ld [hli], a
@@ -269,31 +269,31 @@
 	inc hl
 endr
 	dec c
-	jr nz, .asm_cc249
+	jr nz, .loop
 	ret
 
-.asm_cc254
+.skip
 	ld hl, Sprites
 	ld c, SpritesEnd - Sprites
 	xor a
-.asm_cc25a
+.loop2
 	ld [hli], a
 	dec c
-	jr nz, .asm_cc25a
+	jr nz, .loop2
 	ret
 ; cc25f
 
 Functioncc25f: ; cc25f
-	call Functioncc267
+	call .CheckTimer
 	ret nc
-	call Functioncc275
+	call .RunScript
 	ret
 ; cc267
 
-Functioncc267: ; cc267
+.CheckTimer: ; cc267
 	ld a, [BattleAnimDuration]
 	and a
-	jr z, .asm_cc273
+	jr z, .done
 
 	dec a
 	ld [BattleAnimDuration], a
@@ -300,40 +300,40 @@
 	and a
 	ret
 
-.asm_cc273
+.done
 	scf
 	ret
 ; cc275
 
-Functioncc275: ; cc275
-
+.RunScript: ; cc275
+.loop
 	call GetBattleAnimByte
 
 	cp $ff
-	jr nz, .asm_cc286
+	jr nz, .not_done_with_anim
 
 ; Return from a subroutine.
 	ld hl, BattleAnimFlags
 	bit 1, [hl]
-	jr nz, .asm_cc28e
+	jr nz, .do_anim
 
 	set 0, [hl]
 	ret
 
-.asm_cc286
+.not_done_with_anim
 	cp $d0
-	jr nc, .asm_cc28e
+	jr nc, .do_anim
 
 	ld [BattleAnimDuration], a
 	ret
 
-.asm_cc28e
-	call Functioncc293
+.do_anim
+	call .DoCommand
 
-	jr Functioncc275
+	jr .loop
 ; cc293
 
-Functioncc293: ; cc293
+.DoCommand: ; cc293
 ; Execute battle animation command in [BattleAnimByte].
 	ld a, [BattleAnimByte]
 	sub $d0
@@ -1332,11 +1332,11 @@
 Functioncc881: ; cc881
 	ld a, [wcfca]
 	cp $1
-	jr z, .asm_cc88b
+	jr z, .okay
 	cp $4
 	ret nz
 
-.asm_cc88b
+.okay
 	ld a, [TypeModifier]
 	and $7f
 	ret z
@@ -1358,41 +1358,43 @@
 BattleAnimAssignPals: ; cc8a4
 	ld a, [hCGB]
 	and a
-	jr nz, .asm_cc8be
+	jr nz, .cgb
 	ld a, [hSGB]
 	and a
-	ld a, $e0
-	jr z, .asm_cc8b2
-	ld a, $f0
+	ld a, %11100000
+	jr z, .sgb
+	ld a, %11110000
 
-.asm_cc8b2
+.sgb
 	ld [wcfc8], a
-	ld a, $e4
+	ld a, %11100100
 	ld [wcfc7], a
 	ld [wcfc9], a
 	ret
 
-.asm_cc8be
-	ld a, $e4
+.cgb
+	ld a, %11100100
 	ld [wcfc7], a
 	ld [wcfc8], a
 	ld [wcfc9], a
 	call DmgToCgbBGPals
-	ld de, $e4e4
+	lb de, %11100100, %11100100
 	call DmgToCgbObjPals
 	ret
 ; cc8d3
 
 Functioncc8d3: ; cc8d3
+; Clear animation block
 	ld hl, LYOverrides
-	ld bc, $0354
-.asm_cc8d9
+	ld bc, wBattleAnimEnd - LYOverrides
+.loop
 	ld [hl], $0
 	inc hl
 	dec bc
 	ld a, c
 	or b
-	jr nz, .asm_cc8d9
+	jr nz, .loop
+
 	ld hl, FXAnimIDLo
 	ld e, [hl]
 	inc hl
@@ -1401,7 +1403,7 @@
 rept 2
 	add hl, de
 endr
-	call Function3ae1
+	call GetBattleAnimPointer
 	call BattleAnimAssignPals
 	call BattleAnimDelayFrame
 	ret
@@ -1409,12 +1411,12 @@
 
 Functioncc8f6: ; cc8f6
 	call WaitTop
-	ld a, $e4
+	ld a, %11100100
 	ld [wcfc7], a
 	ld [wcfc8], a
 	ld [wcfc9], a
 	call DmgToCgbBGPals
-	ld de, $e4e4
+	lb de, %11100100, %11100100
 	call DmgToCgbObjPals
 	xor a
 	ld [hSCX], a
--- a/battle/anims.asm
+++ b/battle/anims.asm
@@ -255,6 +255,7 @@
 	dw BattleAnim_253
 	dw BattleAnim_254
 	dw BattleAnim_SweetScent2
+; $100
 	dw BattleAnim_ThrowPokeBall
 	dw BattleAnim_SendOutMon
 	dw BattleAnim_ReturnMon
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -2022,7 +2022,7 @@
 	ret
 ; 3ccde
 
-Function3ccde: ; 3ccde
+CheckUserHasEnoughHP: ; 3ccde
 	ld hl, BattleMonHP + 1
 	ld a, [hBattleTurn]
 	and a
@@ -3740,7 +3740,7 @@
 	lb bc, 4, 10
 	call ClearBox
 	call WaitBGMap
-	jp Function3ee27
+	jp FinishBattleAnim
 ; 3d7b8
 
 Function_BattleTextEnemySentOut: ; 3d7b8
@@ -4253,7 +4253,7 @@
 	ld [hBGMapMode], a
 	call GetMonBackpic
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	ld [wd0d2], a
 	ld [CurMoveNum], a
 	ld [TypeModifier], a
@@ -4262,7 +4262,7 @@
 	ld [LastPlayerCounterMove], a
 	ld [LastPlayerMove], a
 	call CheckAmuletCoin
-	call Function3ee27
+	call FinishBattleAnim
 	xor a
 	ld [wEnemyWrapCount], a
 	call SetPlayerTurn
@@ -5132,7 +5132,7 @@
 	ld a, [hl]
 	cp b
 	ret z
-	jp Function3ee27
+	jp FinishBattleAnim
 ; 3e138
 
 Function3e138: ; 3e138
@@ -5269,7 +5269,7 @@
 	call GetMonFrontpic
 	call ExitMenu
 	call WaitBGMap
-	call Function3ee27
+	call FinishBattleAnim
 	call LoadTileMapToTempTileMap
 	jp BattleMenu
 ; 3e22b
@@ -5309,7 +5309,7 @@
 	call WaitBGMap
 	call LoadTileMapToTempTileMap
 	call ResetTextRelatedRAM
-	call Function3ee27
+	call FinishBattleAnim
 	and a
 	ret
 
@@ -6873,7 +6873,7 @@
 Function3ebd8: ; 3ebd8
 	xor a
 	ld [TempEnemyMonSpecies], a
-	call Function3ee27
+	call FinishBattleAnim
 	ld a, [OtherTrainerClass]
 	ld [TrainerClass], a
 	ld de, VTiles2
@@ -7368,7 +7368,7 @@
 	predef_jump PlayBattleAnim
 ; 3ee27
 
-Function3ee27: ; 3ee27
+FinishBattleAnim: ; 3ee27
 	push af
 	push bc
 	push de
@@ -8377,7 +8377,7 @@
 	ld a, [PlayerSubStatus4]
 	bit SUBSTATUS_SUBSTITUTE, a
 	ld hl, BattleAnimCmd_DD
-	jr nz, Function3f46f
+	jr nz, Function3f46f ; substitute
 
 Function3f447: ; 3f447
 	ld a, [wc6fe]
@@ -8576,7 +8576,7 @@
 	ld de, VTiles2
 	callab GetTrainerPic
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	dec a
 	ld [wc6e6], a
 	hlcoord 12, 0
@@ -8641,7 +8641,7 @@
 	predef Function5108b
 	xor a
 	ld [TrainerClass], a
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 12, 0
 	lb bc, 7, 7
 	predef FillBox
@@ -9400,7 +9400,7 @@
 	ld a, $1
 	ld [hBGMapMode], a
 	ld a, $31
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 2, 6
 	lb bc, 6, 6
 	predef FillBox
@@ -9494,7 +9494,7 @@
 	ld [rSVBK], a
 	call Function3fc5b
 	ld a, $31
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 2, 6
 	lb bc, 6, 6
 	predef FillBox
--- a/battle/effect_command_pointers.asm
+++ b/battle/effect_command_pointers.asm
@@ -13,7 +13,7 @@
 	dw BattleCommand_LowerSub ; 34eee
 	dw BattleCommand_HitTargetNoSub ; 34f60
 	dw BattleCommand_RaiseSub ; 35004
-	dw BattleCommand_ResultText ; 35023
+	dw BattleCommand_FailureText ; 35023
 	dw BattleCommand_CheckFaint ; 3505e
 	dw BattleCommand_CriticalText ; 35175
 	dw BattleCommand_SuperEffectiveText ; 351ad
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -30,12 +30,12 @@
 ; Read in and execute the user's move effects for this turn.
 
 	xor a
-	ld [wc6b4], a
+	ld [wTurnEnded], a
 
 	; Effect command checkturn is called for every move.
 	call CheckTurn
 
-	ld a, [wc6b4]
+	ld a, [wTurnEnded]
 	and a
 	ret nz
 
@@ -128,7 +128,7 @@
 	ld a, BATTLE_VARS_MOVE
 	call GetBattleVar
 	inc a
-	jp z, Function34385
+	jp z, EndTurn
 
 	xor a
 	ld [AttackMissed], a
@@ -156,7 +156,7 @@
 	ld hl, MustRechargeText
 	call StdBattleTextBox
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .no_recharge
 
@@ -185,7 +185,7 @@
 	ld hl, UpdatePlayerHUD
 	call CallBattleCore
 	ld a, $1
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	ld hl, PlayerSubStatus1
 	res SUBSTATUS_NIGHTMARE, [hl]
 	jr .not_asleep
@@ -202,7 +202,7 @@
 	jr z, .not_asleep
 
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_asleep
 
@@ -222,7 +222,7 @@
 	call StdBattleTextBox
 
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_frozen
 
@@ -236,7 +236,7 @@
 	call StdBattleTextBox
 
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_flinched
 
@@ -293,7 +293,7 @@
 
 	call HitConfusion
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_confused
 
@@ -317,7 +317,7 @@
 	ld hl, InfatuationText
 	call StdBattleTextBox
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_infatuated
 
@@ -334,7 +334,7 @@
 
 	call MoveDisabled
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .no_disabled_move
 
@@ -351,7 +351,7 @@
 	ld hl, FullyParalyzedText
 	call StdBattleTextBox
 	call CantMove
-	jp Function34385
+	jp EndTurn
 ; 341f0
 
 
@@ -379,7 +379,7 @@
 .fly_dig
 	res SUBSTATUS_UNDERGROUND, [hl]
 	res SUBSTATUS_FLYING, [hl]
-	jp Function37ece
+	jp AppearUserRaiseSub
 ; 34216
 
 
@@ -402,7 +402,7 @@
 	ld hl, MustRechargeText
 	call StdBattleTextBox
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .no_recharge
 
@@ -433,7 +433,7 @@
 	ld hl, UpdateEnemyHUD
 	call CallBattleCore
 	ld a, $1
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	ld hl, EnemySubStatus1
 	res SUBSTATUS_NIGHTMARE, [hl]
 	jr .not_asleep
@@ -446,7 +446,7 @@
 	cp SLEEP_TALK
 	jr z, .not_asleep
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_asleep
 
@@ -463,7 +463,7 @@
 	ld hl, FrozenSolidText
 	call StdBattleTextBox
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_frozen
 
@@ -477,7 +477,7 @@
 	call StdBattleTextBox
 
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_flinched
 
@@ -527,7 +527,7 @@
 
 	; 50% chance of hitting itself
 	call BattleRandom
-	cp $80
+	cp 1 + 50 percent
 	jr nc, .not_confused
 
 	; clear confusion-dependent substatus
@@ -538,7 +538,7 @@
 
 	ld hl, HurtItselfText
 	call StdBattleTextBox
-	call Function355dd
+	call HitSelfInConfusion
 	call BattleCommand_DamageCalc
 	call BattleCommand_LowerSub
 	xor a
@@ -552,10 +552,10 @@
 	call z, PlayFXAnimID
 
 	ld c, $1
-	call Function35d1c
+	call EnemyHurtItself
 	call BattleCommand_RaiseSub
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_confused
 
@@ -573,13 +573,13 @@
 
 	; 50% chance of infatuation
 	call BattleRandom
-	cp $80
+	cp 1 + 50 percent
 	jr c, .not_infatuated
 
 	ld hl, InfatuationText
 	call StdBattleTextBox
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .not_infatuated
 
@@ -597,7 +597,7 @@
 	call MoveDisabled
 
 	call CantMove
-	jp Function34385
+	jp EndTurn
 
 .no_disabled_move
 
@@ -619,9 +619,9 @@
 ; 34385
 
 
-Function34385: ; 34385
+EndTurn: ; 34385
 	ld a, $1
-	ld [wc6b4], a
+	ld [wTurnEnded], a
 	jp ResetDamage
 ; 3438d
 
@@ -651,7 +651,7 @@
 	xor a
 	ld [CriticalHit], a
 
-	call Function355dd
+	call HitSelfInConfusion
 	call BattleCommand_DamageCalc
 	call BattleCommand_LowerSub
 
@@ -668,9 +668,9 @@
 	ld hl, UpdatePlayerHUD
 	call CallBattleCore
 	ld a, $1
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	ld c, $1
-	call Function35d7e
+	call PlayerHurtItself
 	jp BattleCommand_RaiseSub
 ; 343db
 
@@ -683,7 +683,7 @@
 	and a
 	ret nz
 
-	call Function34548
+	call CheckUserIsCharging
 	ret nz
 
 	; If we've already checked this turn
@@ -1013,7 +1013,7 @@
 ; 34548
 
 
-Function34548: ; 34548
+CheckUserIsCharging: ; 34548
 
 	ld a, [hBattleTurn]
 	and a
@@ -1027,7 +1027,7 @@
 
 
 BattleCommand_DoTurn: ; 34555
-	call Function34548
+	call CheckUserIsCharging
 	ret nz
 
 	ld hl, BattleMonPP
@@ -1079,7 +1079,7 @@
 	ld a, [CurBattleMon]
 	jr z, .player
 
-; skip this part entirely if wildbattle
+; mimic this part entirely if wildbattle
 	ld a, [wBattleMode]
 	dec a
 	jr z, .wild
@@ -1090,7 +1090,7 @@
 .player
 	call GetPartyLocation
 	push hl
-	call Function3460b
+	call CheckMimicUsed
 	pop hl
 	ret c
 
@@ -1107,7 +1107,7 @@
 	add hl, bc
 	ld a, [hl]
 	and $3f
-	jr z, .asm_345e3
+	jr z, .out_of_pp
 	dec [hl]
 	ld b, 0
 	ret
@@ -1121,7 +1121,7 @@
 	ld a, [hl]
 	cp MIMIC
 	jr z, .mimic
-	ld hl, wCaughtMonMoves
+	ld hl, wWildMonMoves
 	add hl, bc
 	ld a, [hl]
 	cp MIMIC
@@ -1128,11 +1128,11 @@
 	ret z
 
 .mimic
-	ld hl, wCaughtMonPP
+	ld hl, wWildMonPP
 	call .consume_pp
 	ret
 
-.asm_345e3
+.out_of_pp
 	call BattleCommand_MoveDelay
 ; get move effect
 	ld a, BATTLE_VARS_MOVE_EFFECT
@@ -1165,7 +1165,7 @@
 	db $ff
 ; 3460b
 
-Function3460b: ; 3460b
+CheckMimicUsed: ; 3460b
 	ld a, [hBattleTurn]
 	and a
 	ld a, [CurMoveNum]
@@ -1174,24 +1174,24 @@
 
 .player
 	ld c, a
-	ld a, 2
+	ld a, MON_MOVES
 	call UserPartyAttr
 
 	ld a, BATTLE_VARS_MOVE
 	call GetBattleVar
 	cp MIMIC
-	jr z, .asm_3462f
-
+	jr z, .mimic
+; 
 	ld b, 0
 	add hl, bc
 	ld a, [hl]
 	cp MIMIC
-	jr nz, .asm_3462f
+	jr nz, .mimic
 
 	scf
 	ret
 
-.asm_3462f
+.mimic
 	and a
 	ret
 ; 34631
@@ -2063,12 +2063,12 @@
 	call .Rampage
 	jr z, .charge_turn
 
-	call Function34548
+	call CheckUserIsCharging
 	ret nz
 
 .charge_turn
 	call _CheckBattleScene
-	jr c, .skip_anims
+	jr c, .mimic_anims
 
 	xor a
 	ld [wcfca], a
@@ -2076,9 +2076,9 @@
 	inc a
 	ld [wKickCounter], a
 	ld a, SUBSTITUTE
-	jp PlayMoveAnim_KeepHiID
+	jp LoadAnim
 
-.skip_anims
+.mimic_anims
 	call BattleCommand_LowerSubNoAnim
 	jp BattleCommand_MoveDelay
 
@@ -2119,10 +2119,10 @@
 	ld a, [hBattleTurn]
 	and a
 	ld de, PlayerRolloutCount
-	ld a, 1
+	ld a, BATTLEANIM_ENEMY_DAMAGE
 	jr z, .got_rollout_count
 	ld de, EnemyRolloutCount
-	ld a, 4
+	ld a, BATTLEANIM_PLAYER_DAMAGE
 
 .got_rollout_count
 	ld [wcfca], a
@@ -2158,7 +2158,7 @@
 
 .fly_dig
 ; clear sprite
-	jp Function37ec7
+	jp AppearUserLowerSub
 .multihit
 .conversion
 .doublehit
@@ -2199,9 +2199,9 @@
 
 	ld a, [hBattleTurn]
 	and a
-	ld a, 2
+	ld a, BATTLEANIM_ENEMY_STAT_DOWN
 	jr z, BattleCommand_StatUpDownAnim
-	ld a, 5
+	ld a, BATTLEANIM_WOBBLE
 
 	; fallthrough
 ; 34feb
@@ -2246,24 +2246,27 @@
 	ld a, $2
 	ld [wKickCounter], a
 	ld a, SUBSTITUTE
-	jp PlayMoveAnim_KeepHiID
+	jp LoadAnim
 ; 35023
 
 
-BattleCommand_ResultText: ; 35023
-; resulttext
+BattleCommand_FailureText: ; 35023
+; failuretext
+; If the move missed or failed, load the appropriate
+; text, and end the effects of multi-turn or multi-
+; hit moves.
 	ld a, [AttackMissed]
 	and a
 	ret z
 
-	call Function350e4
+	call GetFailureResultText
 	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVarAddr
 
 	cp FLY
-	jr z, .asm_3504f
+	jr z, .fly_dig
 	cp DIG
-	jr z, .asm_3504f
+	jr z, .fly_dig
 
 ; Move effect:
 	inc hl
@@ -2270,23 +2273,23 @@
 	ld a, [hl]
 
 	cp EFFECT_MULTI_HIT
-	jr z, .asm_35049
+	jr z, .multihit
 	cp EFFECT_DOUBLE_HIT
-	jr z, .asm_35049
+	jr z, .multihit
 	cp EFFECT_TWINEEDLE
-	jr z, .asm_35049
+	jr z, .multihit
 	jp EndMoveEffect
 
-.asm_35049
+.multihit
 	call BattleCommand_RaiseSub
 	jp EndMoveEffect
 
-.asm_3504f
+.fly_dig
 	ld a, BATTLE_VARS_SUBSTATUS3
 	call GetBattleVarAddr
 	res SUBSTATUS_UNDERGROUND, [hl]
 	res SUBSTATUS_FLYING, [hl]
-	call Function37ece
+	call AppearUserRaiseSub
 	jp EndMoveEffect
 ; 3505e
 
@@ -2297,50 +2300,50 @@
 	ld a, BATTLE_VARS_SUBSTATUS1_OPP
 	call GetBattleVar
 	bit SUBSTATUS_ENDURE, a
-	jr z, .asm_35072
+	jr z, .not_enduring
 	call BattleCommand_FalseSwipe
 	ld b, $0
-	jr nc, .asm_3508b
+	jr nc, .okay
 	ld b, $1
-	jr .asm_3508b
+	jr .okay
 
-.asm_35072
+.not_enduring
 	call GetOpponentItem
 	ld a, b
 	cp HELD_FOCUS_BAND
 	ld b, $0
-	jr nz, .asm_3508b
+	jr nz, .okay
 	call BattleRandom
 	cp c
-	jr nc, .asm_3508b
+	jr nc, .okay
 	call BattleCommand_FalseSwipe
 	ld b, $0
-	jr nc, .asm_3508b
+	jr nc, .okay
 	ld b, $2
-.asm_3508b
+.okay
 	push bc
-	call .asm_50bb
+	call .check_sub
 	ld c, $0
 	ld a, [hBattleTurn]
 	and a
-	jr nz, .asm_3509b
-	call Function35d1c
-	jr .asm_3509e
+	jr nz, .damage_player
+	call EnemyHurtItself
+	jr .done_damage
 
-.asm_3509b
-	call Function35d7e
+.damage_player
+	call PlayerHurtItself
 
-.asm_3509e
+.done_damage
 	pop bc
 	ld a, b
 	and a
 	ret z
 	dec a
-	jr nz, .asm_350ab
+	jr nz, .not_enduring2
 	ld hl, EnduredText
 	jp StdBattleTextBox
 
-.asm_350ab
+.not_enduring2
 	call GetOpponentItem
 	ld a, [hl]
 	ld [wNamedObjectIndexBuffer], a
@@ -2349,7 +2352,7 @@
 	ld hl, HungOnText
 	jp StdBattleTextBox
 
-.asm_50bb
+.check_sub
 	ld a, BATTLE_VARS_SUBSTATUS4_OPP
 	call GetBattleVar
 	bit SUBSTATUS_SUBSTITUTE, a
@@ -2358,10 +2361,10 @@
 	ld de, PlayerDamageTaken + 1
 	ld a, [hBattleTurn]
 	and a
-	jr nz, .asm_350ce
+	jr nz, .damage_taken
 	ld de, EnemyDamageTaken + 1
 
-.asm_350ce
+.damage_taken
 	ld a, [CurDamage + 1]
 	ld b, a
 	ld a, [de]
@@ -2382,26 +2385,26 @@
 ; 350e4
 
 
-Function350e4: ; 350e4
+GetFailureResultText: ; 350e4
 	ld hl, DoesntAffectText
 	ld de, DoesntAffectText
 	ld a, [TypeModifier]
 	and $7f
-	jr z, .asm_35110
+	jr z, .got_text
 	ld a, BATTLE_VARS_MOVE_EFFECT
 	call GetBattleVar
 	cp EFFECT_FUTURE_SIGHT
 	ld hl, ButItFailedText
 	ld de, ItFailedText
-	jr z, .asm_35110
+	jr z, .got_text
 	ld hl, AttackMissedText
 	ld de, AttackMissed2Text
 	ld a, [CriticalHit]
 	cp $ff
-	jr nz, .asm_35110
+	jr nz, .got_text
 	ld hl, UnaffectedText
-.asm_35110
-	call Function35157
+.got_text
+	call FailText_CheckOpponentProtect
 	xor a
 	ld [CriticalHit], a
 
@@ -2409,9 +2412,11 @@
 	call GetBattleVar
 	cp EFFECT_JUMP_KICK
 	ret nz
+
 	ld a, [TypeModifier]
 	and $7f
 	ret z
+
 	ld hl, CurDamage
 	ld a, [hli]
 	ld b, [hl]
@@ -2423,29 +2428,29 @@
 	dec hl
 	ld [hli], a
 	or b
-	jr nz, .asm_3513e
+	jr nz, .do_at_least_1_damage
 	inc a
 	ld [hl], a
-.asm_3513e
+.do_at_least_1_damage
 	ld hl, CrashedText
 	call StdBattleTextBox
 	ld a, $1
 	ld [wKickCounter], a
-	call PlayPlayerMoveAnim_ClearHiID
+	call LoadMoveAnim
 	ld c, $1
 	ld a, [hBattleTurn]
 	and a
-	jp nz, Function35d1c
-	jp Function35d7e
+	jp nz, EnemyHurtItself
+	jp PlayerHurtItself
 
-Function35157: ; 35157
+FailText_CheckOpponentProtect: ; 35157
 	ld a, BATTLE_VARS_SUBSTATUS1_OPP
 	call GetBattleVar
 	bit SUBSTATUS_PROTECT, a
-	jr z, .asm_35162
+	jr z, .not_protected
 	ld h, d
 	ld l, e
-.asm_35162
+.not_protected
 	jp StdBattleTextBox
 ; 35165
 
@@ -2599,7 +2604,7 @@
 	inc a
 	ld [wKickCounter], a
 	ld a, DESTINY_BOND
-	call PlayMoveAnim_KeepHiID
+	call LoadAnim
 	call BattleCommand_SwitchTurn
 
 	jr .asm_3524d ; 3522f $1c
@@ -2823,7 +2828,7 @@
 	call ThickClubBoost
 
 .done
-	call Function3534d
+	call TruncateHL_BC
 
 	ld a, [BattleMonLevel]
 	ld e, a
@@ -2835,13 +2840,14 @@
 ; 3534d
 
 
-Function3534d: ; 3534d
+TruncateHL_BC: ; 3534d
+.loop
 ; Truncate 16-bit values hl and bc to 8-bit values b and c respectively.
 ; b = hl, c = bc
 
 	ld a, h
 	or b
-	jr z, .asm_3536b
+	jr z, .finish
 
 	srl b
 	rr c
@@ -2850,10 +2856,10 @@
 
 	ld a, c
 	or b
-	jr nz, .asm_3535e
+	jr nz, .done_bc
 	inc c
 
-.asm_3535e
+.done_bc
 	srl h
 	rr l
 	srl h
@@ -2861,10 +2867,10 @@
 
 	ld a, l
 	or h
-	jr nz, .asm_3536b
+	jr nz, .finish
 	inc l
 
-.asm_3536b
+.finish
 	ld a, [wLinkMode]
 	cp 3
 	jr z, .done
@@ -2871,7 +2877,7 @@
 
 	ld a, h
 	or b
-	jr nz, Function3534d
+	jr nz, .loop
 
 .done
 	ld b, l
@@ -3077,7 +3083,7 @@
 	call ThickClubBoost
 
 .done
-	call Function3534d
+	call TruncateHL_BC
 
 	ld a, [EnemyMonLevel]
 	ld e, a
@@ -3315,7 +3321,7 @@
 ; 355dd
 
 
-Function355dd: ; 355dd
+HitSelfInConfusion: ; 355dd
 	call ResetDamage
 	ld a, [hBattleTurn]
 	and a
@@ -3322,12 +3328,12 @@
 	ld hl, BattleMonDefense
 	ld de, PlayerScreens
 	ld a, [BattleMonLevel]
-	jr z, .asm_355f7
+	jr z, .got_it
 
 	ld hl, EnemyMonDefense
 	ld de, EnemyScreens
 	ld a, [EnemyMonLevel]
-.asm_355f7
+.got_it
 	push af
 	ld a, [hli]
 	ld b, a
@@ -3334,11 +3340,11 @@
 	ld c, [hl]
 	ld a, [de]
 	bit SCREENS_REFLECT, a
-	jr z, .asm_35604
+	jr z, .mimic_screen
 
 	sla c
 	rl b
-.asm_35604
+.mimic_screen
 rept 3
 	dec hl
 endr
@@ -3345,7 +3351,7 @@
 	ld a, [hli]
 	ld l, [hl]
 	ld h, a
-	call Function3534d
+	call TruncateHL_BC
 	ld d, $28
 	pop af
 	ld e, a
@@ -3798,7 +3804,7 @@
 	and a
 	ret z
 
-	call Function36abf
+	call CheckOpponentWentFirst
 	ret z
 
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -3885,7 +3891,7 @@
 	inc a
 endr
 	ld [de], a
-	call Function36abf
+	call CheckOpponentWentFirst
 	jr nz, .asm_3591a
 	ld a, [hBattleTurn]
 	and a
@@ -3967,13 +3973,13 @@
 
 	ld a, [AttackMissed]
 	and a
-	jp nz, Function359cd
+	jp nz, PainSplit_PrintButItFailed
 	call CheckSubstituteOpp
-	jp nz, Function359cd
+	jp nz, PainSplit_PrintButItFailed
 	call AnimateCurrentMove
 	ld hl, BattleMonMaxHP + 1
 	ld de, EnemyMonMaxHP + 1
-	call .asm_3597d
+	call .PlayerShareHP
 	ld a, $1
 	ld [wd10a], a
 	hlcoord 10, 9
@@ -3987,18 +3993,18 @@
 	ld [Buffer2], a
 	ld a, [hl]
 	ld [Buffer1], a
-	call Function359ac
+	call .EnemyShareHP
 	xor a
 	ld [wd10a], a
 	call ResetDamage
 	hlcoord 2, 2
 	predef AnimateHPBar
-	callba Function178000
+	callba _UpdateBattleHUDs
 
 	ld hl, SharedPainText
 	jp StdBattleTextBox
 
-.asm_3597d
+.PlayerShareHP
 	ld a, [hld]
 	ld [Buffer1], a
 	ld a, [hld]
@@ -4030,11 +4036,7 @@
 	inc de
 endr
 
-	; fallthrough
-; 359ac
-
-
-Function359ac: ; 359ac
+.EnemyShareHP: ; 359ac
 	ld c, [hl]
 	dec hl
 	ld a, [CurDamage + 1]
@@ -4043,13 +4045,13 @@
 	dec hl
 	ld a, [CurDamage]
 	sbc b
-	jr nc, .asm_359c2
+	jr nc, .skip
 
 	ld a, [CurDamage]
 	ld b, a
 	ld a, [CurDamage + 1]
 	ld c, a
-.asm_359c2
+.skip
 	ld a, c
 	ld [hld], a
 	ld [Buffer5], a
@@ -4059,7 +4061,7 @@
 	ret
 ; 359cd
 
-Function359cd: ; 359cd
+PainSplit_PrintButItFailed: ; 359cd
 	jp PrintDidntAffect2
 ; 359d0
 
@@ -4073,7 +4075,7 @@
 	call ResetDamage
 	ld a, $1
 	ld [AttackMissed], a
-	call Function37354
+	call FailSnore
 	jp EndMoveEffect
 ; 359e6
 
@@ -4141,7 +4143,7 @@
 	jp StdBattleTextBox
 
 .asm_35a50
-	jp Function37354
+	jp FailConversion2
 ; 35a53
 
 
@@ -4149,11 +4151,11 @@
 ; lockon
 
 	call CheckSubstituteOpp
-	jr nz, .asm_35a6e
+	jr nz, .fail
 
 	ld a, [AttackMissed]
 	and a
-	jr nz, .asm_35a6e
+	jr nz, .fail
 
 	ld a, BATTLE_VARS_SUBSTATUS5_OPP
 	call GetBattleVarAddr
@@ -4163,7 +4165,7 @@
 	ld hl, TookAimText
 	jp StdBattleTextBox
 
-.asm_35a6e
+.fail
 	call AnimateFailedMove
 	jp PrintDidntAffect
 ; 35a74
@@ -4172,58 +4174,68 @@
 BattleCommand_Sketch: ; 35a74
 ; sketch
 
-	call Function372d8
-
+	call ClearLastMove
+; Don't sketch during a link battle
 	ld a, [wLinkMode]
 	and a
-	jr z, .asm_35a83
+	jr z, .not_linked
 	call AnimateFailedMove
 	jp PrintNothingHappened
-.asm_35a83
 
+.not_linked
+; If the opponent has a substitute up, fail.
 	call CheckSubstituteOpp
-	jp nz, .asm_35b10
-
+	jp nz, .fail
+; If the opponent is transformed, fail.
 	ld a, BATTLE_VARS_SUBSTATUS5_OPP
 	call GetBattleVarAddr
 	bit SUBSTATUS_TRANSFORMED, [hl]
-	jp nz, .asm_35b10
-
+	jp nz, .fail
+; Get the user's moveset in its party struct.
+; This move replacement shall be permanent.
+; Pointer will be in de.
 	ld a, MON_MOVES
 	call UserPartyAttr
 	ld d, h
 	ld e, l
+; Get the battle move structs.
 	ld hl, BattleMonMoves
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_35aa5
+	jr z, .get_last_move
 	ld hl, EnemyMonMoves
-.asm_35aa5
+.get_last_move
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
 	call GetBattleVar
 	ld [wTypeMatchup], a
 	ld b, a
+; Fail if move is invalid or is Struggle.
 	and a
-	jr z, .asm_35b10
+	jr z, .fail
 	cp STRUGGLE
-	jr z, .asm_35b10
+	jr z, .fail
+; Fail if user already knows that move
 	ld c, NUM_MOVES
-.asm_35ab7
+.does_user_already_know_move
 	ld a, [hli]
 	cp b
-	jr z, .asm_35b10
+	jr z, .fail
 	dec c
-	jr nz, .asm_35ab7
+	jr nz, .does_user_already_know_move
+; Find Sketch in the user's moveset.
+; Pointer in hl, and index in c.
 	dec hl
 	ld c, NUM_MOVES
-.asm_35ac1
+.find_sketch
 	dec c
 	ld a, [hld]
 	cp SKETCH
-	jr nz, .asm_35ac1
+	jr nz, .find_sketch
 	inc hl
+; The Sketched move is loaded to that slot.
 	ld a, b
 	ld [hl], a
+; Copy the base PP from that move.
 	push bc
 	push hl
 	dec a
@@ -4234,24 +4246,27 @@
 	add hl, bc
 	ld [hl], a
 	pop bc
+
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_35af6
+	jr z, .user_trainer
 	ld a, [wBattleMode]
 	dec a
-	jr nz, .asm_35af6
+	jr nz, .user_trainer
+; wildmon
 	ld a, [hl]
 	push bc
-	ld hl, wc739
+	ld hl, wWildMonPP
 	ld b, 0
 	add hl, bc
 	ld [hl], a
-	ld hl, wc735
+	ld hl, wWildMonMoves
 	add hl, bc
 	pop bc
 	ld [hl], b
-	jr .asm_35b04
-.asm_35af6
+	jr .done_copy
+
+.user_trainer
 	ld a, [hl]
 	push af
 	ld l, c
@@ -4260,10 +4275,10 @@
 	ld a, b
 	ld [hl], a
 	pop af
-	ld de, $0015
+	ld de, MON_PP - MON_MOVES
 	add hl, de
 	ld [hl], a
-.asm_35b04
+.done_copy
 	call GetMoveName
 	call AnimateCurrentMove
 
@@ -4270,7 +4285,7 @@
 	ld hl, SketchedText
 	jp StdBattleTextBox
 
-.asm_35b10
+.fail
 	call AnimateFailedMove
 	jp PrintDidntAffect
 ; 35b16
@@ -4307,10 +4322,10 @@
 BattleCommand_SleepTalk: ; 35b33
 ; sleeptalk
 
-	call Function372d8
+	call ClearLastMove
 	ld a, [AttackMissed]
 	and a
-	jr nz, .asm_35ba3
+	jr nz, .fail
 	ld a, [hBattleTurn]
 	and a
 	ld hl, BattleMonMoves + 1
@@ -4324,12 +4339,12 @@
 	ld a, BATTLE_VARS_STATUS
 	call GetBattleVar
 	and SLP
-	jr z, .asm_35ba3
+	jr z, .fail
 	ld a, [hl]
 	and a
-	jr z, .asm_35ba3
+	jr z, .fail
 	call .asm_35ba9
-	jr c, .asm_35ba3
+	jr c, .fail
 	dec hl
 .asm_35b62
 	push hl
@@ -4356,18 +4371,19 @@
 	call GetBattleVarAddr
 	ld a, e
 	ld [hl], a
-	call Function34548
-	jr nz, .asm_35b9a
+	call CheckUserIsCharging
+	jr nz, .charging
 	ld a, [wKickCounter]
 	push af
 	call BattleCommand_LowerSub
 	pop af
 	ld [wKickCounter], a
-.asm_35b9a
-	call PlayPlayerMoveAnim_ClearHiID
+.charging
+	call LoadMoveAnim
 	call UpdateMoveData
 	jp ResetTurn
-.asm_35ba3
+
+.fail
 	call AnimateFailedMove
 	jp TryPrintButItFailed
 
@@ -4656,22 +4672,23 @@
 ; 35d1c
 
 
-Function35d1c: ; 35d1c
+EnemyHurtItself: ; 35d1c
 	ld hl, CurDamage
 	ld a, [hli]
 	ld b, a
 	ld a, [hl]
 	or b
-	jr z, .asm_35d7b
+	jr z, .did_no_damage
 
 	ld a, c
 	and a
-	jr nz, .asm_35d31
+	jr nz, .mimic_sub_check
 
 	ld a, [EnemySubStatus4]
 	bit SUBSTATUS_SUBSTITUTE, a
-	jp nz, Function35de0
-.asm_35d31
+	jp nz, SelfInflictDamageToSubstitute
+
+.mimic_sub_check
 	ld a, [hld]
 	ld b, a
 	ld a, [EnemyMonHP + 1]
@@ -4684,7 +4701,7 @@
 	ld [Buffer4], a
 	sbc b
 	ld [EnemyMonHP], a
-	jr nc, .asm_35d59
+	jr nc, .mimic_faint
 
 	ld a, [Buffer4]
 	ld [hli], a
@@ -4696,7 +4713,7 @@
 	ld [hli], a
 	ld [hl], a
 
-.asm_35d59
+.mimic_faint
 	ld hl, EnemyMonMaxHP
 	ld a, [hli]
 	ld [Buffer2], a
@@ -4711,27 +4728,27 @@
 	xor a
 	ld [wd10a], a
 	predef AnimateHPBar
-.asm_35d7b
+.did_no_damage
 	jp RefreshBattleHuds
 ; 35d7e
 
 
-Function35d7e: ; 35d7e
+PlayerHurtItself: ; 35d7e
 	ld hl, CurDamage
 	ld a, [hli]
 	ld b, a
 	ld a, [hl]
 	or b
-	jr z, .asm_35ddd
+	jr z, .did_no_damage
 
 	ld a, c
 	and a
-	jr nz, .asm_35d93
+	jr nz, .mimic_sub_check
 
 	ld a, [PlayerSubStatus4]
 	bit SUBSTATUS_SUBSTITUTE, a
-	jp nz, Function35de0
-.asm_35d93
+	jp nz, SelfInflictDamageToSubstitute
+.mimic_sub_check
 	ld a, [hld]
 	ld b, a
 	ld a, [BattleMonHP + 1]
@@ -4745,7 +4762,7 @@
 	sbc b
 	ld [BattleMonHP], a
 	ld [Buffer6], a
-	jr nc, .asm_35dc5
+	jr nc, .mimic_faint
 
 	ld a, [Buffer4]
 	ld [hli], a
@@ -4760,7 +4777,7 @@
 	ld [hli], a
 	ld [hl], a
 
-.asm_35dc5
+.mimic_faint
 	ld hl, BattleMonMaxHP
 	ld a, [hli]
 	ld [Buffer2], a
@@ -4770,12 +4787,12 @@
 	ld a, $1
 	ld [wd10a], a
 	predef AnimateHPBar
-.asm_35ddd
+.did_no_damage
 	jp RefreshBattleHuds
 ; 35de0
 
 
-Function35de0: ; 35de0
+SelfInflictDamageToSubstitute: ; 35de0
 
 	ld hl, SubTookDamageText
 	call StdBattleTextBox
@@ -4811,7 +4828,7 @@
 	ld a, BATTLE_VARS_SUBSTATUS3
 	call GetBattleVar
 	and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
-	call z, Function37ec7
+	call z, AppearUserLowerSub
 	call BattleCommand_SwitchTurn
 
 	ld a, BATTLE_VARS_MOVE_EFFECT
@@ -5031,25 +5048,25 @@
 
 	ld a, [hBattleTurn]
 	and a
-	jr z, .skip_random
+	jr z, .mimic_random
 
 	ld a, [wLinkMode]
 	and a
-	jr nz, .skip_random
+	jr nz, .mimic_random
 
 	ld a, [InBattleTowerBattle]
 	and a
-	jr nz, .skip_random
+	jr nz, .mimic_random
 
 	ld a, [PlayerSubStatus5]
 	bit SUBSTATUS_LOCK_ON, a
-	jr nz, .skip_random
+	jr nz, .mimic_random
 
 	call BattleRandom
 	cp $40 ; 25% chance AI fails
 	jr c, .failed
 
-.skip_random
+.mimic_random
 	call CheckSubstituteOpp
 	jr nz, .failed
 	ld a, [AttackMissed]
@@ -5244,7 +5261,7 @@
 	ld a, [TypeModifier]
 	and $7f
 	ret z
-	call Function36e5b
+	call CheckMoveTypeMatchesTarget ; Don't burn a Fire-type
 	ret z
 	call GetOpponentItem
 	ld a, b
@@ -5317,7 +5334,7 @@
 	ld a, [Weather]
 	cp WEATHER_SUN
 	ret z
-	call Function36e5b
+	call CheckMoveTypeMatchesTarget ; Don't freeze an Ice-type
 	ret z
 	call GetOpponentItem
 	ld a, b
@@ -5454,7 +5471,7 @@
 	ld a, [FailedMessage]
 	and a
 	ret nz
-	jp Function36281
+	jp StatUpAnimation
 ; 361ef
 
 
@@ -5561,7 +5578,7 @@
 ; 36281
 
 
-Function36281: ; 36281
+StatUpAnimation: ; 36281
 	ld bc, wc6fe
 	ld hl, Function3f447
 	ld a, [hBattleTurn]
@@ -5581,7 +5598,7 @@
 	ret nc
 
 	xor a
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	call CallBattleCore
 	call WaitBGMap
 	jp BattleCommand_MoveDelay
@@ -6146,7 +6163,7 @@
 	ld hl, GetMonFrontpic
 .PlayerTurn
 	xor a
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	call CallBattleCore
 	jp WaitBGMap
 ; 365c3
@@ -6160,7 +6177,7 @@
 	ld hl, Function3f486
 .PlayerTurn
 	xor a
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	call CallBattleCore
 	jp WaitBGMap
 ; 365d7
@@ -6534,7 +6551,7 @@
 	ld [wKickCounter], a
 	call SetBattleDraw
 	call BattleCommand_LowerSub
-	call PlayPlayerMoveAnim_ClearHiID
+	call LoadMoveAnim
 	ld c, 20
 	call DelayFrames
 	call SetBattleDraw
@@ -6944,17 +6961,17 @@
 	ret nz
 
 	call CheckSubstituteOpp
-	jr nz, .asm_36a9a
+	jr nz, .fail
 
 	ld a, BATTLE_VARS_STATUS_OPP
 	call GetBattleVar
 	and 1 << FRZ | SLP
-	jr nz, .asm_36a9a
+	jr nz, .fail
 
-	call Function36abf
-	jr z, Function36ab5
+	call CheckOpponentWentFirst
+	jr z, FlinchTarget
 
-.asm_36a9a
+.fail
 	ld a, 1
 	ld [AttackMissed], a
 	ret
@@ -6970,7 +6987,7 @@
 	and 1 << FRZ | SLP
 	ret nz
 
-	call Function36abf
+	call CheckOpponentWentFirst
 	ret nz
 
 	ld a, [EffectFailed]
@@ -6981,7 +6998,7 @@
 ; 36ab5
 
 
-Function36ab5: ; 36ab5
+FlinchTarget: ; 36ab5
 	ld a, BATTLE_VARS_SUBSTATUS3_OPP
 	call GetBattleVarAddr
 	set SUBSTATUS_FLINCHED, [hl]
@@ -6989,12 +7006,14 @@
 ; 36abf
 
 
-Function36abf: ; 36abf
+CheckOpponentWentFirst: ; 36abf
+; Returns a=0, z if user went first
+; Returns a=1, nz if opponent went first
 	push bc
-	ld a, [wEnemyGoesFirst]
+	ld a, [wEnemyGoesFirst] ; 0 if player went first
 	ld b, a
-	ld a, [hBattleTurn]
-	xor b
+	ld a, [hBattleTurn] ; 0 if it's the player's turn
+	xor b ; 1 if opponent went first
 	pop bc
 	ret
 ; 36ac9
@@ -7099,7 +7118,7 @@
 	ld a, BATTLE_VARS_STATUS
 	call GetBattleVar
 	and SLP
-	jr z, .asm_36b65
+	jr z, .awake
 
 	call BattleCommand_MoveDelay
 	call BattleCommand_RaiseSub
@@ -7106,7 +7125,7 @@
 	call PrintButItFailed
 	jp EndMoveEffect
 
-.asm_36b65
+.awake
 	ld a, BATTLE_VARS_SUBSTATUS3
 	call GetBattleVarAddr
 	set SUBSTATUS_CHARGED, [hl]
@@ -7121,18 +7140,18 @@
 	ld [wcfca], a
 	inc a
 	ld [wKickCounter], a
-	call PlayPlayerMoveAnim_ClearHiID
+	call LoadMoveAnim
 	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVar
 	cp FLY
-	jr z, .asm_36b96
+	jr z, .flying
 	cp DIG
-	jr z, .asm_36b96
+	jr z, .flying
 	call BattleCommand_RaiseSub
-	jr .asm_36b99
-.asm_36b96
-	call Function37ec0
-.asm_36b99
+	jr .not_flying
+.flying
+	call DisappearUser
+.not_flying
 	ld a, BATTLE_VARS_SUBSTATUS3
 	call GetBattleVarAddr
 	ld a, BATTLE_VARS_MOVE_ANIM
@@ -7139,18 +7158,18 @@
 	call GetBattleVar
 	ld b, a
 	cp FLY
-	jr z, .asm_36bb0
+	jr z, .set_flying
 	cp DIG
-	jr nz, .asm_36bb2
+	jr nz, .dont_set_digging
 	set SUBSTATUS_UNDERGROUND, [hl]
-	jr .asm_36bb2
+	jr .dont_set_digging
 
-.asm_36bb0
+.set_flying
 	set SUBSTATUS_FLYING, [hl]
 
-.asm_36bb2
-	call Function34548
-	jr nz, .asm_36bc3
+.dont_set_digging
+	call CheckUserIsCharging
+	jr nz, .mimic
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE
 	call GetBattleVarAddr
 	ld [hl], b
@@ -7158,7 +7177,7 @@
 	call GetBattleVarAddr
 	ld [hl], b
 
-.asm_36bc3
+.mimic
 	call ResetDamage
 
 	ld hl, .UsedText
@@ -7567,7 +7586,7 @@
 	call DelayFrames
 	call AnimateCurrentMove
 	ld a, $1
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	ld a, BATTLE_VARS_STATUS_OPP
 	call GetBattleVarAddr
 	set PAR, [hl]
@@ -7590,7 +7609,7 @@
 ; 36e5b
 
 
-Function36e5b: ; 36e5b
+CheckMoveTypeMatchesTarget: ; 36e5b
 ; Compare move type to opponent type.
 ; Return z if matching the opponent type,
 ; unless the move is Normal (Tri Attack).
@@ -7694,7 +7713,7 @@
 	ld [FXAnimIDHi], a
 	ld [wKickCounter], a
 	ld a, SUBSTITUTE
-	call PlayMoveAnim_KeepHiID
+	call LoadAnim
 	jr .finish
 
 .mobile
@@ -7705,13 +7724,13 @@
 	jp RefreshBattleHuds
 
 .already_has_sub
-	call Function34548
+	call CheckUserIsCharging
 	call nz, BattleCommand_RaiseSub
 	ld hl, HasSubstituteText
 	jr .jp_stdbattletextbox
 
 .too_weak_to_sub
-	call Function34548
+	call CheckUserIsCharging
 	call nz, BattleCommand_RaiseSub
 	ld hl, TooWeakSubText
 .jp_stdbattletextbox
@@ -7785,38 +7804,38 @@
 BattleCommand_Mimic: ; 36f46
 ; mimic
 
-	call Function372d8
+	call ClearLastMove
 	call BattleCommand_MoveDelay
 	ld a, [AttackMissed]
 	and a
-	jr nz, .asm_36f9a
+	jr nz, .fail
 	ld hl, BattleMonMoves
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_36f5d
+	jr z, .player_turn
 	ld hl, EnemyMonMoves
-.asm_36f5d
+.player_turn
 	call CheckHiddenOpponent
-	jr nz, .asm_36f9a
+	jr nz, .fail
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
 	call GetBattleVar
 	and a
-	jr z, .asm_36f9a
+	jr z, .fail
 	cp STRUGGLE
-	jr z, .asm_36f9a
+	jr z, .fail
 	ld b, a
 	ld c, NUM_MOVES
-.asm_36f71
+.check_already_knows_move
 	ld a, [hli]
 	cp b
-	jr z, .asm_36f9a
+	jr z, .fail
 	dec c
-	jr nz, .asm_36f71
+	jr nz, .check_already_knows_move
 	dec hl
-.asm_36f79
+.find_mimic
 	ld a, [hld]
 	cp MIMIC
-	jr nz, .asm_36f79
+	jr nz, .find_mimic
 	inc hl
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
 	call GetBattleVar
@@ -7829,8 +7848,9 @@
 	call AnimateCurrentMove
 	ld hl, LearnedMoveText
 	jp StdBattleTextBox
-.asm_36f9a
-	jp Function37357
+
+.fail
+	jp FailMimic
 ; 36f9d
 
 
@@ -7954,7 +7974,7 @@
 	ld hl, WasDisabledText
 	jp StdBattleTextBox
 .asm_37059
-	jp Function37354
+	jp FailDisable
 ; 3705c
 
 
@@ -8202,7 +8222,7 @@
 BattleCommand_Transform: ; 371cd
 ; transform
 
-	call Function372d8
+	call ClearLastMove
 	ld a, BATTLE_VARS_SUBSTATUS5_OPP
 	call GetBattleVarAddr
 	bit SUBSTATUS_TRANSFORMED, [hl]
@@ -8218,12 +8238,12 @@
 	call GetBattleVarAddr
 	bit SUBSTATUS_SUBSTITUTE, [hl]
 	push af
-	jr z, .skip_substitute
-	call Function34548
-	jr nz, .skip_substitute
+	jr z, .mimic_substitute
+	call CheckUserIsCharging
+	jr nz, .mimic_substitute
 	ld a, SUBSTITUTE
-	call PlayMoveAnim_KeepHiID
-.skip_substitute
+	call LoadAnim
+.mimic_substitute
 	ld a, BATTLE_VARS_SUBSTATUS5
 	call GetBattleVarAddr
 	set SUBSTATUS_TRANSFORMED, [hl]
@@ -8249,7 +8269,7 @@
 	call CopyBytes
 	ld a, [hBattleTurn]
 	and a
-	jr z, .skip_enemy_backup
+	jr z, .mimic_enemy_backup
 	ld a, [de]
 	ld [wEnemyBackupDVs], a
 	inc de
@@ -8256,7 +8276,7 @@
 	ld a, [de]
 	ld [wEnemyBackupDVs + 1], a
 	dec de
-.skip_enemy_backup
+.mimic_enemy_backup
 ; copy DVs
 	ld a, [hli]
 	ld [de], a
@@ -8312,7 +8332,7 @@
 	ld bc, 8
 	call BattleSideCopy
 	call _CheckBattleScene
-	jr c, .skip_anims
+	jr c, .mimic_anims
 	ld a, [hBattleTurn]
 	and a
 	ld a, [wc6fe]
@@ -8320,10 +8340,10 @@
 	ld a, [wc6fa]
 .got_byte
 	and a
-	jr nz, .skip_anims
-	call PlayPlayerMoveAnim_ClearHiID
+	jr nz, .mimic_anims
+	call LoadMoveAnim
 	jr .after_anim
-.skip_anims
+.mimic_anims
 	call BattleCommand_MoveDelay
 	call BattleCommand_RaiseSubNoAnim
 .after_anim
@@ -8334,7 +8354,7 @@
 	ld [wKickCounter], a
 	pop af
 	ld a, SUBSTITUTE
-	call nz, PlayMoveAnim_KeepHiID
+	call nz, LoadAnim
 	ld hl, TransformedText
 	jp StdBattleTextBox
 ; 372c6
@@ -8363,7 +8383,7 @@
 ; 372d8
 
 
-Function372d8: ; 372d8
+ClearLastMove: ; 372d8
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE
 	call GetBattleVarAddr
 	xor a
@@ -8472,15 +8492,20 @@
 ; 37354
 
 
-Function37354: ; 37354
+FailSnore:
+FailDisable:
+FailConversion2:
+FailAttract:
+FailForesight:
+FailSpikes:
 	call AnimateFailedMove
 	; fallthrough
 ; 37357
 
-Function37357: ; 37357
+FailMimic: ; 37357
 	ld hl, ButItFailedText ; 'but it failed!'
 	ld de, ItFailedText    ; 'it failed!'
-	jp Function35157
+	jp FailText_CheckOpponentProtect
 ; 37360
 
 
@@ -8495,7 +8520,7 @@
 	call AnimateFailedMove
 	ld hl, DidntAffect1Text ; 'it didn't affect'
 	ld de, DidntAffect2Text ; 'it didn't affect'
-	jp Function35157
+	jp FailText_CheckOpponentProtect
 ; 37372
 
 
@@ -8516,9 +8541,9 @@
 
 BattleCommand_SelfDestruct: ; 37380
 	callba MobileFn_10610d
-	ld a, $4
+	ld a, BATTLEANIM_PLAYER_DAMAGE
 	ld [wcfca], a
-	ld c, $3
+	ld c, 3
 	call DelayFrames
 	ld a, BATTLE_VARS_STATUS
 	call GetBattleVarAddr
@@ -8530,7 +8555,7 @@
 	ld a, $1
 	ld [wKickCounter], a
 	call BattleCommand_LowerSub
-	call PlayPlayerMoveAnim_ClearHiID
+	call LoadMoveAnim
 	ld a, BATTLE_VARS_SUBSTATUS4
 	call GetBattleVarAddr
 	res SUBSTATUS_LEECH_SEED, [hl]
@@ -9348,16 +9373,18 @@
 
 BattleCommand_BellyDrum: ; 37c1a
 ; bellydrum
+; This command is buggy because it raises the user's attack
+; before checking that it has enough HP to use the move.
+; Swap the order of these two blocks to fix.
 	call BattleCommand_AttackUp2
 	ld a, [AttackMissed]
 	and a
-	jr nz, .asm_37c4f
+	jr nz, .failed
 
 	callab GetHalfMaxHP
+	callab CheckUserHasEnoughHP
+	jr nc, .failed
 
-	callab Function3ccde
-	jr nc, .asm_37c4f
-
 	push bc
 	call AnimateCurrentMove
 	pop bc
@@ -9365,16 +9392,17 @@
 	call UpdateUserInParty
 	ld a, 5
 
-.asm_37c41
+.max_attack_loop
 	push af
 	call BattleCommand_AttackUp2
 	pop af
 	dec a
-	jr nz, .asm_37c41
+	jr nz, .max_attack_loop
 
 	ld hl, BellyDrumText
 	jp StdBattleTextBox
-.asm_37c4f
+
+.failed
 	call AnimateFailedMove
 	jp PrintButItFailed
 ; 37c55
@@ -9387,40 +9415,45 @@
 	ld de, PlayerStatLevels
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_37c64 ; 37c5e $4
+	jr z, .pointers_correct ; 37c5e $4
+; It's the enemy's turn, so swap the pointers.
 	push hl
 	ld h, d
 	ld l, e
 	pop de
-.asm_37c64
+.pointers_correct
 	push hl
-	ld b, $8
-.asm_37c67
+	ld b, NUM_LEVEL_STATS
+; If any of the enemy's stats is modified from its base level,
+; the move succeeds.  Otherwise, it fails.
+.loop
 	ld a, [hli]
-	cp $7
-	jr nz, .asm_37c76 ; 37c6a $a
+	cp BASE_STAT_LEVEL
+	jr nz, .break ; 37c6a $a
 	dec b
-	jr nz, .asm_37c67 ; 37c6d $f8
+	jr nz, .loop ; 37c6d $f8
 	pop hl
 	call AnimateFailedMove
 	jp PrintButItFailed
-.asm_37c76
+
+.break
 	pop hl
-	ld b, $8
-.asm_37c79
+	ld b, NUM_LEVEL_STATS
+.loop2
 	ld a, [hli]
 	ld [de], a
 	inc de
 	dec b
-	jr nz, .asm_37c79 ; 37c7d $fa
+	jr nz, .loop2 ; 37c7d $fa
 	ld a, [hBattleTurn]
 	and a
-	jr nz, .asm_37c89 ; 37c82 $5
+	jr nz, .calc_enemy_stats ; 37c82 $5
 	call CalcPlayerStats
-	jr .asm_37c8c ; 37c87 $3
-.asm_37c89
+	jr .merge ; 37c87 $3
+
+.calc_enemy_stats
 	call CalcEnemyStats
-.asm_37c8c
+.merge
 	call AnimateCurrentMove
 	ld hl, CopiedStatsText
 	jp StdBattleTextBox
@@ -9449,7 +9482,7 @@
 	and a
 	ret z
 
-	call Function36abf
+	call CheckOpponentWentFirst
 	ret z
 
 	ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -9514,7 +9547,7 @@
 
 
 BattleCommand_SkipSunCharge: ; 37d02
-; skipsuncharge
+; mimicsuncharge
 	ld a, [Weather]
 	cp WEATHER_SUN
 	ret nz
@@ -9554,7 +9587,7 @@
 BattleCommand_FutureSight: ; 37d34
 ; futuresight
 
-	call Function34548
+	call CheckUserIsCharging
 	jr nz, .asm_37d4b ; 37d37 $12
 	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVar
@@ -9691,7 +9724,7 @@
 	call BattleCommand_LowerSub
 	pop af
 	ld [wKickCounter], a
-	call PlayMoveAnim_ClearHiID
+	call PlayDamageAnim
 	call BattleCommand_RaiseSub
 	pop bc
 	pop de
@@ -9709,7 +9742,7 @@
 	call BattleCommand_LowerSub
 	pop af
 	ld [wKickCounter], a
-	call PlayPlayerMoveAnim_ClearHiID
+	call LoadMoveAnim
 	call BattleCommand_RaiseSub
 	pop bc
 	pop de
@@ -9718,7 +9751,7 @@
 ; 37e19
 
 
-PlayMoveAnim_ClearHiID: ; 37e19
+PlayDamageAnim: ; 37e19
 	xor a
 	ld [FXAnimIDHi], a
 
@@ -9731,9 +9764,9 @@
 
 	ld a, [hBattleTurn]
 	and a
-	ld a, 1
+	ld a, BATTLEANIM_ENEMY_DAMAGE
 	jr z, .player
-	ld a, 4
+	ld a, BATTLEANIM_PLAYER_DAMAGE
 
 .player
 	ld [wcfca], a
@@ -9742,7 +9775,7 @@
 ; 37e36
 
 
-PlayPlayerMoveAnim_ClearHiID: ; 37e36
+LoadMoveAnim: ; 37e36
 	xor a
 	ld [wcfca], a
 	ld [FXAnimIDHi], a
@@ -9756,7 +9789,7 @@
 ; 37e44
 
 
-PlayMoveAnim_KeepHiID: ; 37e44
+LoadAnim: ; 37e44
 
 	ld [FXAnimIDLo], a
 
@@ -9838,10 +9871,10 @@
 	ld h, a
 	ld a, [BattleScriptBufferLoc]
 	ld l, a
-.asm_37e94
+.loop
 	ld a, [hli]
 	cp b
-	jr nz, .asm_37e94
+	jr nz, .loop
 
 	ld a, h
 	ld [BattleScriptBufferLoc + 1], a
@@ -9878,20 +9911,20 @@
 ; 37ec0
 
 
-Function37ec0: ; 37ec0
-	callba Functionfbd54
+DisappearUser: ; 37ec0
+	callba _DisappearUser
 	ret
 ; 37ec7
 
 
-Function37ec7: ; 37ec7
-	callba Functionfbd71
+AppearUserLowerSub: ; 37ec7
+	callba _AppearUserLowerSub
 	ret
 ; 37ece
 
 
-Function37ece: ; 37ece
-	callba Functionfbd69
+AppearUserRaiseSub: ; 37ece
+	callba _AppearUserRaiseSub
 	ret
 ; 37ed5
 
--- a/battle/effects/attract.asm
+++ b/battle/effects/attract.asm
@@ -20,7 +20,7 @@
 	jp StdBattleTextBox
 
 .failed
-	jp Function37354
+	jp FailAttract
 ; 377f5
 
 
--- a/battle/effects/foresight.asm
+++ b/battle/effects/foresight.asm
@@ -19,5 +19,5 @@
 	jp StdBattleTextBox
 
 .failed
-	jp Function37354
+	jp FailForesight
 ; 376c2
--- a/battle/effects/metronome.asm
+++ b/battle/effects/metronome.asm
@@ -1,8 +1,8 @@
 BattleCommand_Metronome: ; 37418
 ; metronome
 
-	call Function372d8
-	call Function34548
+	call ClearLastMove
+	call CheckUserIsCharging
 	jr nz, .asm_3742b
 
 	ld a, [wKickCounter]
@@ -12,7 +12,7 @@
 	ld [wKickCounter], a
 
 .asm_3742b
-	call PlayPlayerMoveAnim_ClearHiID
+	call LoadMoveAnim
 
 .GetMove
 	call BattleRandom
--- a/battle/effects/mirror_move.asm
+++ b/battle/effects/mirror_move.asm
@@ -1,7 +1,7 @@
 BattleCommand_MirrorMove: ; 373c9
 ; mirrormove
 
-	call Function372d8
+	call ClearLastMove
 
 	ld a, BATTLE_VARS_MOVE
 	call GetBattleVarAddr
@@ -37,7 +37,7 @@
 	call GetMoveData
 	call GetMoveName
 	call CopyName1
-	call Function34548
+	call CheckUserIsCharging
 	jr nz, .done
 
 	ld a, [wKickCounter]
--- a/battle/effects/protect.asm
+++ b/battle/effects/protect.asm
@@ -23,7 +23,7 @@
 	ld de, EnemyProtectCount
 .asm_37637
 
-	call Function36abf
+	call CheckOpponentWentFirst
 	jr nz, .failed
 
 ; Can't have a substitute.
--- a/battle/effects/spikes.asm
+++ b/battle/effects/spikes.asm
@@ -23,5 +23,5 @@
 	jp StdBattleTextBox
 
 .failed
-	jp Function37354
+	jp FailSpikes
 ; 376a0
--- a/battle/misc.asm
+++ b/battle/misc.asm
@@ -1,50 +1,50 @@
-Functionfbd54: ; fbd54
+_DisappearUser: ; fbd54
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	ld a, [hBattleTurn] ; $ff00+$e4
 	and a
-	jr z, .asm_fbd61
-	call Functionfbd96
-	jr .asm_fbd64
-.asm_fbd61
-	call Functionfbd9d
-.asm_fbd64
+	jr z, .player
+	call GetEnemyFrontpicCoords
+	jr .okay
+.player
+	call GetPlayerBackpicCoords
+.okay
 	call ClearBox
-	jr Functionfbd91
+	jr FinishAppearDisappearUser
 
-Functionfbd69: ; fbd69 (3e:7d69)
+_AppearUserRaiseSub: ; fbd69 (3e:7d69)
 	callba BattleCommand_RaiseSubNoAnim
-	jr Functionfbd77
+	jr AppearUser
 
-Functionfbd71: ; fbd71 (3e:7d71)
+_AppearUserLowerSub: ; fbd71 (3e:7d71)
 	callba BattleCommand_LowerSubNoAnim
 
-Functionfbd77: ; fbd77 (3e:7d77)
+AppearUser: ; fbd77 (3e:7d77)
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	ld a, [hBattleTurn] ; $ff00+$e4
 	and a
-	jr z, .asm_fbd85
-	call Functionfbd96
+	jr z, .player
+	call GetEnemyFrontpicCoords
 	xor a
-	jr .asm_fbd8a
-.asm_fbd85
-	call Functionfbd9d
+	jr .okay
+.player
+	call GetPlayerBackpicCoords
 	ld a, $31
-.asm_fbd8a
-	ld [$ffad], a
+.okay
+	ld [hFillBox], a
 	predef FillBox
-Functionfbd91: ; fbd91 (3e:7d91)
+FinishAppearDisappearUser: ; fbd91 (3e:7d91)
 	ld a, $1
 	ld [hBGMapMode], a ; $ff00+$d4
 	ret
 
-Functionfbd96: ; fbd96 (3e:7d96)
+GetEnemyFrontpicCoords: ; fbd96 (3e:7d96)
 	hlcoord 12, 0
 	lb bc, 7, 7
 	ret
 
-Functionfbd9d: ; fbd9d (3e:7d9d)
+GetPlayerBackpicCoords: ; fbd9d (3e:7d9d)
 	hlcoord 2, 6
 	lb bc, 6, 6
 	ret
@@ -62,7 +62,7 @@
 	ld a, [de]
 	inc de
 	cp $ff
-	jr z, .asm_fbdc0
+	jr z, .done_weather_types
 
 	cp b
 	jr nz, .NextWeatherType
@@ -78,7 +78,7 @@
 	jr .CheckWeatherType
 
 
-.asm_fbdc0
+.done_weather_types
 	ld de, .WeatherMoveModifiers
 
 	ld a, BATTLE_VARS_MOVE_EFFECT
@@ -217,10 +217,10 @@
 
 	ld a, e
 	or d
-	jr nz, .asm_fbe6f
+	jr nz, .done_min
 	ld e, 1
 
-.asm_fbe6f
+.done_min
 	add hl, de
 	jr nc, .Update
 
--- a/battle/moves/move_effects.asm
+++ b/battle/moves/move_effects.asm
@@ -44,7 +44,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -83,7 +83,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -107,7 +107,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -133,7 +133,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -158,7 +158,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -187,7 +187,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -209,7 +209,7 @@
 	checkhit
 	selfdestruct
 	hittargetnosub
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -229,7 +229,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -634,7 +634,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -659,7 +659,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -686,7 +686,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -708,7 +708,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -733,7 +733,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -757,7 +757,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -779,7 +779,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -802,7 +802,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -825,7 +825,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -848,7 +848,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -868,7 +868,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -925,7 +925,7 @@
 	damagevariation
 	clearmissdamage
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -967,7 +967,7 @@
 	damagevariation
 	clearmissdamage
 	hittargetnosub
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	cleartext
@@ -995,7 +995,7 @@
 	damagevariation
 	clearmissdamage
 	hittargetnosub
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	cleartext
@@ -1027,7 +1027,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1046,7 +1046,7 @@
 	stab
 	ohko
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1069,7 +1069,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1122,7 +1122,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1169,7 +1169,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1218,7 +1218,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1246,7 +1246,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1267,7 +1267,7 @@
 	ragedamage
 	damagevariation
 	hittarget
-	resulttext
+	failuretext
 	rage
 	checkfaint
 	criticaltext
@@ -1328,7 +1328,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1352,7 +1352,7 @@
 	checkhit
 	hittargetnosub
 	raisesub
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1377,7 +1377,7 @@
 	damagevariation
 	clearmissdamage
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1400,7 +1400,7 @@
 	checkhit
 	resettypematchup
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	checkdestinybond
 	buildopponentrage
@@ -1416,7 +1416,7 @@
 	stab
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	supereffectivetext
 	checkdestinybond
@@ -1430,7 +1430,7 @@
 	doturn
 	counter
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	checkdestinybond
 	buildopponentrage
@@ -1466,7 +1466,7 @@
 	effectchance
 	snore
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1541,7 +1541,7 @@
 	falseswipe
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1572,7 +1572,7 @@
 	damagevariation
 	clearmissdamage
 	hittargetnosub
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	cleartext
@@ -1597,7 +1597,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1634,7 +1634,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1708,7 +1708,7 @@
 	rolloutpower
 	damagevariation
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1728,7 +1728,7 @@
 	lowersub
 	statupanim
 	raisesub
-	resulttext
+	failuretext
 	switchturn
 	statupmessage
 	switchturn
@@ -1747,7 +1747,7 @@
 	furycutter
 	damagevariation
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1776,7 +1776,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1797,7 +1797,7 @@
 	stab
 	damagevariation
 	clearmissdamage
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1818,7 +1818,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1846,7 +1846,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1869,7 +1869,7 @@
 	checkhit
 	doubleundergrounddamage
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1897,7 +1897,7 @@
 	pursuit
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1917,7 +1917,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1959,7 +1959,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -1989,7 +1989,7 @@
 	checkhit
 	fakeout
 	hittarget
-	resulttext
+	failuretext
 	endmove
 
 BellyDrum:
@@ -2012,7 +2012,7 @@
 	doturn
 	mirrorcoat
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	checkdestinybond
 	buildopponentrage
@@ -2032,7 +2032,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -2057,7 +2057,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -2079,7 +2079,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -2098,7 +2098,7 @@
 	damagevariation
 	checkhit
 	hittargetnosub
-	resulttext
+	failuretext
 	checkfaint
 	checkdestinybond
 	buildopponentrage
@@ -2116,7 +2116,7 @@
 	doubleflyingdamage
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -2137,7 +2137,7 @@
 	checkhit
 	effectchance
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -2160,7 +2160,7 @@
 	damagevariation
 	checkhit
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -2182,7 +2182,7 @@
 	stab
 	damagevariation
 	hittarget
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	supereffectivetext
@@ -2212,7 +2212,7 @@
 	damagevariation
 	clearmissdamage
 	hittargetnosub
-	resulttext
+	failuretext
 	checkfaint
 	criticaltext
 	cleartext
--- a/constants/animation_constants.asm
+++ b/constants/animation_constants.asm
@@ -1,26 +1,3 @@
-ANIM_SWEET_SCENT_2 EQU 255 ; unused?
-ANIM_THROW_POKE_BALL EQU 256
-ANIM_SEND_OUT_MON EQU 257 ; seems to also cover shiny
-ANIM_RETURN_MON EQU 258
-ANIM_CONFUSED EQU 259
-ANIM_SLP EQU 260
-ANIM_BRN EQU 261
-ANIM_PSN EQU 262
-ANIM_SAP EQU 263
-ANIM_FRZ EQU 264
-ANIM_PAR EQU 265
-ANIM_IN_LOVE EQU 266
-ANIM_IN_SANDSTORM EQU 267
-ANIM_IN_NIGHTMARE EQU 268
-ANIM_IN_WHIRLPOOL EQU 269
-ANIM_MISS EQU 270
-ANIM_ENEMY_DAMAGE EQU 271
-ANIM_ENEMY_STAT_DOWN EQU 272 ; vibrate horizontally
-ANIM_PLAYER_STAT_DOWN EQU 273 ; wobble horizontally
-ANIM_PLAYER_DAMAGE EQU 274
-ANIM_WOBBLE EQU 275
-ANIM_SHAKE EQU 276
-ANIM_HIT_CONFUSION EQU 277
 
 ANIM_OBJ_BURNED EQU $10
 ANIM_OBJ_FROZEN EQU $2a
@@ -71,3 +48,53 @@
 	const ANIM_MON_UNUSED  ; 6
 	const ANIM_MON_EGG1    ; 7
 	const ANIM_MON_EGG2    ; 8
+
+const_value SET $d0
+	const BATTLEANIM_D0
+	const BATTLEANIM_D1
+	const BATTLEANIM_D2
+	const BATTLEANIM_D3
+	const BATTLEANIM_D4
+	const BATTLEANIM_D5
+	const BATTLEANIM_D6
+	const BATTLEANIM_D7
+	const BATTLEANIM_D8
+	const BATTLEANIM_D9
+	const BATTLEANIM_DA
+	const BATTLEANIM_DB
+	const BATTLEANIM_DC
+	const BATTLEANIM_DD
+	const BATTLEANIM_DE
+	const BATTLEANIM_DF
+	const BATTLEANIM_E0
+	const BATTLEANIM_E1
+	const BATTLEANIM_E2
+	const BATTLEANIM_E3
+	const BATTLEANIM_E4
+	const BATTLEANIM_E5
+	const BATTLEANIM_E6
+	const BATTLEANIM_E7
+	const BATTLEANIM_E8
+	const BATTLEANIM_E9
+	const BATTLEANIM_EA
+	const BATTLEANIM_EB
+	const BATTLEANIM_EC
+	const BATTLEANIM_ED
+	const BATTLEANIM_EE
+	const BATTLEANIM_EF
+	const BATTLEANIM_F0
+	const BATTLEANIM_F1
+	const BATTLEANIM_F2
+	const BATTLEANIM_F3
+	const BATTLEANIM_F4
+	const BATTLEANIM_F5
+	const BATTLEANIM_F6
+	const BATTLEANIM_F7
+	const BATTLEANIM_F8
+	const BATTLEANIM_F9
+	const BATTLEANIM_FA
+	const BATTLEANIM_FB
+	const BATTLEANIM_FC
+	const BATTLEANIM_FD
+	const BATTLEANIM_FE
+	const BATTLEANIM_FF
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -256,3 +256,44 @@
 const_value SET const_value + -1
 
 	const NUM_ATTACKS  ; $fb
+
+; Battle animations use the same constants
+; as the moves up to this point.
+	const ANIM_FC                ; $fc
+	const ANIM_FD                ; $fd
+	const ANIM_FE                ; $fe
+	const ANIM_SWEET_SCENT_2     ; $ff
+	const ANIM_THROW_POKE_BALL   ; $100
+	const ANIM_SEND_OUT_MON      ; $101
+	const ANIM_RETURN_MON        ; $102
+	const ANIM_CONFUSED          ; $103
+	const ANIM_SLP               ; $104
+	const ANIM_BRN               ; $105
+	const ANIM_PSN               ; $106
+	const ANIM_SAP               ; $107
+	const ANIM_FRZ               ; $108
+	const ANIM_PAR               ; $109
+	const ANIM_IN_LOVE           ; $10a
+	const ANIM_IN_SANDSTORM      ; $10b
+	const ANIM_IN_NIGHTMARE      ; $10c
+	const ANIM_IN_WHIRLPOOL      ; $10d
+; battle anims
+	const ANIM_MISS              ; $10e
+	const ANIM_ENEMY_DAMAGE      ; $10f
+	const ANIM_ENEMY_STAT_DOWN   ; $110
+	const ANIM_PLAYER_STAT_DOWN  ; $111
+	const ANIM_PLAYER_DAMAGE     ; $112
+	const ANIM_WOBBLE            ; $113
+	const ANIM_SHAKE             ; $114
+	const ANIM_HIT_CONFUSION     ; $115
+
+; wcfca uses offsets from ANIM_MISS
+	const_def
+	const BATTLEANIM_NONE
+	const BATTLEANIM_ENEMY_DAMAGE
+	const BATTLEANIM_ENEMY_STAT_DOWN
+	const BATTLEANIM_PLAYER_STAT_DOWN
+	const BATTLEANIM_PLAYER_DAMAGE
+	const BATTLEANIM_WOBBLE
+	const BATTLEANIM_SHAKE
+	const BATTLEANIM_HIT_CONFUSION
\ No newline at end of file
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -366,7 +366,7 @@
 ; First, let's clear the current text display,
 ; starting from line 5.
 	xor a
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	hlcoord 0, 5
 	ld bc, 20 * 12
 	ld a, " "
@@ -479,9 +479,9 @@
 	ld [CreditsTimer], a
 	
 	xor a
-	ld [$ffd5], a
+	ld [hBGMapThird], a
 	ld a, 1
-	ld [$ffd4], a
+	ld [hBGMapMode], a
 	
 .done
 	jp Function109951
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -440,14 +440,14 @@
 Script_keeptextopen: ; 0x96edc
 ; script command 0x55
 
-	ld a, [$ffd8]
+	ld a, [hOAMUpdate]
 	push af
 	ld a, $1
-	ld [$ffd8], a
+	ld [hOAMUpdate], a
 	call WaitBGMap
 	call KeepTextOpen
 	pop af
-	ld [$ffd8], a
+	ld [hOAMUpdate], a
 	ret
 ; 0x96eed
 
--- a/home.asm
+++ b/home.asm
@@ -1724,7 +1724,7 @@
 	predef GetFrontpic
 	pop hl
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	lb bc, 7, 7
 	predef FillBox
 	xor a
@@ -1990,57 +1990,6 @@
 
 
 INCLUDE "home/battle.asm"
-
-
-Function3ae1:: ; 3ae1
-
-GLOBAL BattleAnimations
-GLOBAL BattleAnimCommands
-
-	ld a, BANK(BattleAnimations)
-	rst Bankswitch
-
-	ld a, [hli]
-	ld [BattleAnimAddress], a
-	ld a, [hl]
-	ld [BattleAnimAddress + 1], a
-
-	ld a, BANK(BattleAnimCommands)
-	rst Bankswitch
-
-	ret
-; 3af0
-
-GetBattleAnimByte:: ; 3af0
-
-	push hl
-	push de
-
-	ld hl, BattleAnimAddress
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-
-	ld a, BANK(BattleAnimations)
-	rst Bankswitch
-
-	ld a, [de]
-	ld [BattleAnimByte], a
-	inc de
-
-	ld a, BANK(BattleAnimCommands)
-	rst Bankswitch
-
-	ld [hl], d
-	dec hl
-	ld [hl], e
-
-	pop de
-	pop hl
-
-	ld a, [BattleAnimByte]
-	ret
-; 3b0c
 
 Function3b0c:: ; 3b0c
 
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -309,3 +309,53 @@
 	rst Bankswitch
 	ret
 ; 3ae1
+
+GetBattleAnimPointer:: ; 3ae1
+
+GLOBAL BattleAnimations
+GLOBAL BattleAnimCommands
+
+	ld a, BANK(BattleAnimations)
+	rst Bankswitch
+
+	ld a, [hli]
+	ld [BattleAnimAddress], a
+	ld a, [hl]
+	ld [BattleAnimAddress + 1], a
+
+	ld a, BANK(BattleAnimCommands)
+	rst Bankswitch
+
+	ret
+; 3af0
+
+GetBattleAnimByte:: ; 3af0
+
+	push hl
+	push de
+
+	ld hl, BattleAnimAddress
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+
+	ld a, BANK(BattleAnimations)
+	rst Bankswitch
+
+	ld a, [de]
+	ld [BattleAnimByte], a
+	inc de
+
+	ld a, BANK(BattleAnimCommands)
+	rst Bankswitch
+
+	ld [hl], d
+	dec hl
+	ld [hl], e
+
+	pop de
+	pop hl
+
+	ld a, [BattleAnimByte]
+	ret
+; 3b0c
--- a/home/map.asm
+++ b/home/map.asm
@@ -124,9 +124,10 @@
 ; 2198
 
 LoadMetatiles:: ; 2198
+; de <- wd194
 	ld a, [wd194]
 	ld e, a
-	ld a, [wd195]
+	ld a, [wd194 + 1]
 	ld d, a
 	ld hl, wMisc
 	ld b, 5 ; SCREEN_WIDTH / 4
@@ -163,20 +164,21 @@
 	ld h, a
 
 rept 3
+; copy 4 bytes from hl to de
 rept 4
 	ld a, [hli]
 	ld [de], a
 	inc de
 endr
-
+; next row
 	ld a, e
-	add 5 * 4
+	add SCREEN_WIDTH
 	ld e, a
 	jr nc, .next\@
 	inc d
 .next\@
 endr
-
+; copy 4 more bytes from hl to de
 rept 4
 	ld a, [hli]
 	ld [de], a
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -79,7 +79,7 @@
 	ld [rBGP], a
 	push af
 
-; Don't need to be here if CGB
+; Don't need to be here if DMG
 	ld a, [hCGB]
 	and a
 	jr z, .end
--- a/hram.asm
+++ b/hram.asm
@@ -32,6 +32,8 @@
 hJoyLast           EQU $ffa9
 hInMenu            EQU $ffaa
 
+hFillBox           EQU $ffad
+
 hMapObjectIndexBuffer EQU $ffaf
 hObjectStructIndexBuffer EQU $ffb0
 
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -225,7 +225,7 @@
 
 .room_in_party
 	xor a
-	ld [wCaughtMon], a
+	ld [wWildMon], a
 	ld a, [CurItem]
 	cp PARK_BALL
 	call nz, Functionedfa
@@ -394,7 +394,7 @@
 	ld a, [EnemyMonSpecies]
 
 .fail_to_catch
-	ld [wCaughtMon], a
+	ld [wWildMon], a
 	ld c, 20
 	call DelayFrames
 
@@ -416,7 +416,7 @@
 	ld [wcfca], a
 	predef PlayBattleAnim
 
-	ld a, [wCaughtMon]
+	ld a, [wWildMon]
 	and a
 	jr nz, .caught
 	ld a, [Buffer2]
@@ -493,12 +493,12 @@
 	ld hl, EnemySubStatus5
 	bit SUBSTATUS_TRANSFORMED, [hl]
 	jr nz, .Transformed
-	ld hl, wCaughtMonMoves
+	ld hl, wWildMonMoves
 	ld de, EnemyMonMoves
 	ld bc, NUM_MOVES
 	call CopyBytes
 
-	ld hl, wCaughtMonPP
+	ld hl, wWildMonPP
 	ld de, EnemyMonPP
 	ld bc, NUM_MOVES
 	call CopyBytes
@@ -505,7 +505,7 @@
 .Transformed
 
 	ld a, [EnemyMonSpecies]
-	ld [wCaughtMon], a
+	ld [wWildMon], a
 	ld [CurPartySpecies], a
 	ld [wd265], a
 	ld a, [BattleType]
@@ -710,7 +710,7 @@
 	cp BATTLETYPE_CONTEST
 	jr z, .used_park_ball
 
-	ld a, [wCaughtMon]
+	ld a, [wWildMon]
 	and a
 	jr z, .toss
 
--- a/macros/move_effect.asm
+++ b/macros/move_effect.asm
@@ -17,7 +17,7 @@
 	command lowersub
 	command hittargetnosub
 	command raisesub
-	command resulttext
+	command failuretext
 	command checkfaint
 	command criticaltext
 	command supereffectivetext
--- a/main.asm
+++ b/main.asm
@@ -1001,7 +1001,7 @@
 	ld de, VTiles2
 	callba GetTrainerPic
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 6, 4
 	lb bc, 7, 7
 	predef FillBox
@@ -1013,7 +1013,7 @@
 	ld c, $31
 	predef DecompressPredef
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 6, 4
 	lb bc, 7, 7
 	predef FillBox
@@ -7487,11 +7487,11 @@
 	cp $2
 	jr nz, .asm_d61c
 	ld [hl], $0
-	call Functiond61d
+	call .Incrementwd194
 .asm_d61c
 	ret
 
-Functiond61d: ; d61d (3:561d)
+.Incrementwd194: ; d61d (3:561d)
 	ld hl, wd194
 	ld a, [hl]
 	add $1
@@ -7757,14 +7757,14 @@
 	and a
 	ret z
 	cp $1
-	jr z, .asm_d792
+	jr z, .load_15
 	ld de, $16
-	jr .asm_d795
+	jr .loaded_de
 
-.asm_d792
+.load_15
 	ld de, $15
 
-.asm_d795
+.loaded_de
 	push hl
 	add hl, de
 	ld a, " "
@@ -7799,32 +7799,32 @@
 Functiond7c9: ; d7c9
 	ld a, [hCGB]
 	and a
-	jr nz, .asm_d7d5
+	jr nz, .cgb
 	call DelayFrame
 	call DelayFrame
 	ret
 
-.asm_d7d5
+.cgb
 	ld a, [wd10a]
 	and a
-	jr z, .asm_d829
+	jr z, .load_0
 	cp $1
-	jr z, .asm_d82d
+	jr z, .load_1
 	ld a, [CurPartyMon]
 	cp $3
-	jr nc, .asm_d7ea
+	jr nc, .c_is_1
 	ld c, $0
-	jr .asm_d7ec
+	jr .c_is_0
 
-.asm_d7ea
+.c_is_1
 	ld c, $1
 
-.asm_d7ec
+.c_is_0
 	push af
 	cp $2
-	jr z, .asm_d7ff
+	jr z, .skip_delay
 	cp $5
-	jr z, .asm_d7ff
+	jr z, .skip_delay
 	ld a, $2
 	ld [hBGMapMode], a
 	ld a, c
@@ -7831,7 +7831,7 @@
 	ld [hBGMapThird], a
 	call DelayFrame
 
-.asm_d7ff
+.skip_delay
 	ld a, $1
 	ld [hBGMapMode], a
 	ld a, c
@@ -7839,12 +7839,12 @@
 	call DelayFrame
 	pop af
 	cp $2
-	jr z, .asm_d813
+	jr z, .two_frames
 	cp $5
-	jr z, .asm_d813
+	jr z, .two_frames
 	ret
 
-.asm_d813
+.two_frames
 	inc c
 	ld a, $2
 	ld [hBGMapMode], a
@@ -7858,14 +7858,14 @@
 	call DelayFrame
 	ret
 
-.asm_d829
+.load_0
 	ld c, $0
-	jr .asm_d82f
+	jr .finish
 
-.asm_d82d
+.load_1
 	ld c, $1
 
-.asm_d82f
+.finish
 	call DelayFrame
 	ld a, c
 	ld [hBGMapThird], a
@@ -7880,12 +7880,12 @@
 	ld hl, 0
 	ld a, [wd1f1]
 	cp $30
-	jr nc, .asm_d885
+	jr nc, .coppy_buffer
 	and a
-	jr z, .asm_d880
+	jr z, .return_zero
 	call AddNTimes
 	ld b, $0
-.asm_d851
+.loop
 	ld a, l
 	sub $30
 	ld l, a
@@ -7892,11 +7892,11 @@
 	ld a, h
 	sbc $0
 	ld h, a
-	jr c, .asm_d85e
+	jr c, .done
 	inc b
-	jr .asm_d851
+	jr .loop
 
-.asm_d85e
+.done
 	push bc
 	ld bc, $80
 	add hl, bc
@@ -7907,28 +7907,28 @@
 	ld a, h
 	sbc $0
 	ld h, a
-	jr c, .asm_d86f
+	jr c, .no_carry
 	inc b
 
-.asm_d86f
+.no_carry
 	ld a, [wd1f5]
 	cp b
-	jr nc, .asm_d87c
+	jr nc, .finish
 	ld a, [wd1f6]
 	cp b
-	jr c, .asm_d87c
+	jr c, .finish
 	ld a, b
 
-.asm_d87c
+.finish
 	ld [wd1ec], a
 	ret
 
-.asm_d880
+.return_zero
 	xor a
 	ld [wd1ec], a
 	ret
 
-.asm_d885
+.coppy_buffer
 	ld a, [Buffer1]
 	ld [wd1ec], a
 	ret
@@ -8262,10 +8262,10 @@
 FillPP: ; da6d
 	push bc
 	ld b, NUM_MOVES
-.asm_da70
+.loop
 	ld a, [hli]
 	and a
-	jr z, .asm_da8f
+	jr z, .next
 	dec a
 	push hl
 	push de
@@ -8281,11 +8281,11 @@
 	pop hl
 	ld a, [StringBuffer1 + MOVE_PP]
 
-.asm_da8f
+.next
 	ld [de], a
 	inc de
 	dec b
-	jr nz, .asm_da70
+	jr nz, .loop
 	pop bc
 	ret
 ; da96
@@ -8396,13 +8396,13 @@
 	ld a, [hl]
 	cp MONS_PER_BOX
 	jr nz, .there_is_room
-	jp CloseSRAM_And_SetCFlag
+	jp CloseSRAM_And_SetCarryFlag
 
 .check_IfPartyIsFull
 	ld hl, PartyCount
 	ld a, [hl]
 	cp PARTY_LENGTH
-	jp z, CloseSRAM_And_SetCFlag
+	jp z, CloseSRAM_And_SetCarryFlag
 
 .there_is_room
 	inc a
@@ -8529,7 +8529,7 @@
 	cp PC_DEPOSIT
 	jr z, .took_out_of_box
 	cp DAYCARE_DEPOSIT
-	jp z, .CloseSRAM_And_ClearCFlag
+	jp z, .CloseSRAM_And_ClearCarryFlag
 
 	push hl
 	srl a
@@ -8560,7 +8560,7 @@
 
 	ld a, [wPokemonWithdrawDepositParameter]
 	and a
-	jr nz, .CloseSRAM_And_ClearCFlag
+	jr nz, .CloseSRAM_And_ClearCarryFlag
 	ld hl, MON_STATUS
 	add hl, bc
 	xor a
@@ -8580,7 +8580,7 @@
 	ld a, [hl]
 	inc de
 	ld [de], a
-	jr .CloseSRAM_And_ClearCFlag
+	jr .CloseSRAM_And_ClearCarryFlag
 
 .egg
 	xor a
@@ -8587,7 +8587,7 @@
 	ld [de], a
 	inc de
 	ld [de], a
-	jr .CloseSRAM_And_ClearCFlag
+	jr .CloseSRAM_And_ClearCarryFlag
 
 .took_out_of_box
 	ld a, [sBoxCount]
@@ -8595,13 +8595,13 @@
 	ld b, a
 	call Functiondcb6
 
-.CloseSRAM_And_ClearCFlag
+.CloseSRAM_And_ClearCarryFlag
 	call CloseSRAM
 	and a
 	ret
 ; dcb1
 
-CloseSRAM_And_SetCFlag: ; dcb1
+CloseSRAM_And_SetCarryFlag: ; dcb1
 	call CloseSRAM
 	scf
 	ret
@@ -19131,7 +19131,7 @@
 	call Function16cff
 	hlcoord 1, 6
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	lb bc, 7, 7
 	predef FillBox
 	ld de, VTiles2 tile $31
@@ -19213,7 +19213,7 @@
 	call ByteFill
 	hlcoord 7, 11
 	ld a, $31
-	ld [$ffad], a
+	ld [hFillBox], a
 	lb bc, 7, 7
 	predef FillBox
 	ret
@@ -19950,7 +19950,7 @@
 	ld a, b
 	ld [hBGMapAddress + 1], a
 	ld a, c
-	ld [$ffad], a
+	ld [hFillBox], a
 	lb bc, 7, 7
 	predef FillBox
 	pop af
@@ -20832,7 +20832,7 @@
 	ld c, a
 	call GetTileCoord
 	ld a, $80
-	ld [$ffad], a
+	ld [hFillBox], a
 	lb bc, 7, 7
 	predef FillBox
 	call WaitBGMap
@@ -22991,7 +22991,7 @@
 	hlcoord 14, 1
 	lb bc, 5, 7
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	predef FillBox
 	ret
 ; 252ec (9:52ec)
@@ -28076,7 +28076,7 @@
 	call Function297cf
 	hlcoord 7, 2
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	lb bc, 7, 7
 	predef FillBox
 	call WaitBGMap
@@ -32294,7 +32294,7 @@
 
 FillBox: ; 2ef6e
 ; Fill wc2c6-aligned box width b height c
-; with iterating tile starting from $ffad at hl.
+; with iterating tile starting from hFillBox at hl.
 ; Predef $13
 
 	ld de, 20
@@ -32303,7 +32303,7 @@
 	and a
 	jr nz, .left
 
-	ld a, [$ffad]
+	ld a, [hFillBox]
 .x1
 	push bc
 	push hl
@@ -32330,7 +32330,7 @@
 	add hl, bc
 	pop bc
 
-	ld a, [$ffad]
+	ld a, [hFillBox]
 .x2
 	push bc
 	push hl
@@ -48128,7 +48128,7 @@
 	ld de, VTiles2 tile $31
 	predef GetBackpic
 	ld a, $31
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 2, 4
 	lb bc, 6, 6
 	predef FillBox
@@ -48160,7 +48160,7 @@
 	callab GetTrainerPic
 	xor a
 	ld [TempEnemyMonSpecies], a
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 2, 3
 	lb bc, 7, 7
 	predef FillBox
@@ -50997,7 +50997,7 @@
 	ld de, VTiles2 tile $31
 	predef GetBackpic
 	ld a, $31
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 6, 6
 	lb bc, 6, 6
 	predef FillBox
@@ -51295,7 +51295,7 @@
 	call ByteFill
 	callba GetPlayerBackpic
 	ld a, $31
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 6, 6
 	lb bc, 6, 6
 	predef FillBox
@@ -51319,7 +51319,7 @@
 	call ByteFill
 	callba Function88840
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 12, 5
 	lb bc, 7, 7
 	predef FillBox
@@ -51635,7 +51635,7 @@
 
 ; Draw
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 6, 4
 	lb bc, 7, 7
 	predef FillBox
@@ -52482,7 +52482,7 @@
 
 Function8ce19: ; 8ce19
 	ld d, $55
-	ld a, [wd195]
+	ld a, [wd194 + 1]
 	ld e, a
 	ld b, $15
 	ld a, [rSVBK]
@@ -75652,22 +75652,22 @@
 	ld h, [hl]
 	ld l, a
 	srl c
-	jr z, .asm_10461e
+	jr z, .skip_to_load
 	ld a, [WestConnectedMapWidth]
 	add 6
 	ld e, a
 	ld d, 0
 
-.asm_10461a
+.loop
 	add hl, de
 	dec c
-	jr nz, .asm_10461a
+	jr nz, .loop
 
-.asm_10461e
+.skip_to_load
 	ld a, l
 	ld [wd194], a
 	ld a, h
-	ld [wd195], a
+	ld [wd194 + 1], a
 	jp EnteredConnection
 ; 104629
 
@@ -75689,22 +75689,22 @@
 	ld h, [hl]
 	ld l, a
 	srl c
-	jr z, .asm_10465a
+	jr z, .skip_to_load
 	ld a, [EastConnectedMapWidth]
 	add 6
 	ld e, a
 	ld d, 0
 
-.asm_104656
+.loop
 	add hl, de
 	dec c
-	jr nz, .asm_104656
+	jr nz, .loop
 
-.asm_10465a
+.skip_to_load
 	ld a, l
 	ld [wd194], a
 	ld a, h
-	ld [wd195], a
+	ld [wd194 + 1], a
 	jp EnteredConnection
 ; 104665
 
@@ -75731,7 +75731,7 @@
 	ld a, l
 	ld [wd194], a
 	ld a, h
-	ld [wd195], a
+	ld [wd194 + 1], a
 	jp EnteredConnection
 ; 104696
 
@@ -75758,7 +75758,7 @@
 	ld a, l
 	ld [wd194], a
 	ld a, h
-	ld [wd195], a
+	ld [wd194 + 1], a
 	; fallthrough
 ; 1046c4
 
@@ -75994,16 +75994,16 @@
 	ld hl, OverworldMap
 	ld a, [XCoord]
 	bit 0, a
-	jr nz, .asm_10487d
+	jr nz, .increment_then_halve1
 	srl a
 	add $1
-	jr .asm_104881
+	jr .resume
 
-.asm_10487d
+.increment_then_halve1
 	add $1
 	srl a
 
-.asm_104881
+.resume
 	ld c, a
 	ld b, $0
 	add hl, bc
@@ -76013,21 +76013,21 @@
 	ld b, $0
 	ld a, [YCoord]
 	bit 0, a
-	jr nz, .asm_10489a
+	jr nz, .increment_then_halve2
 	srl a
 	add $1
-	jr .asm_10489e
+	jr .resume2
 
-.asm_10489a
+.increment_then_halve2
 	add $1
 	srl a
 
-.asm_10489e
+.resume2
 	call AddNTimes
 	ld a, l
 	ld [wd194], a
 	ld a, h
-	ld [wd195], a
+	ld [wd194 + 1], a
 	ld a, [YCoord]
 	and $1
 	ld [wd196], a
@@ -77777,7 +77777,7 @@
 	ld [wd265], a
 
 	push hl
-	callba Function34548
+	callba CheckUserIsCharging
 	pop hl
 	jr nz, .grammar
 
@@ -79228,7 +79228,7 @@
 
 SECTION "bank5E", ROMX, BANK[$5E]
 
-Function178000:
+_UpdateBattleHUDs:
 	callba DrawPlayerHUD
 	ld hl, PlayerHPPal
 	call SetHPPal
@@ -79235,7 +79235,7 @@
 	callba DrawEnemyHUD
 	ld hl, EnemyHPPal
 	call SetHPPal
-	callba Function3ee27
+	callba FinishBattleAnim
 	ret
 ; 17801f (5e:401f)
 
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -1253,7 +1253,7 @@
 
 .asm_897f3
 	ld a, $37
-	ld [$ffad], a
+	ld [hFillBox], a
 	hlcoord 12, 3
 	lb bc, 7, 7
 	predef FillBox
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -1618,7 +1618,7 @@
 
 	call Function100a87
 	call Function100da5
-	callba Function3ee27
+	callba FinishBattleAnim
 	jr .asm_100a2d
 
 .asm_100a2a
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -1210,7 +1210,7 @@
 	call Function108ac8
 	hlcoord 7, 2
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	ld bc, $0707
 	predef FillBox
 	call WaitBGMap
@@ -1224,7 +1224,7 @@
 	call Function108ac8
 	hlcoord 7, 2
 	xor a
-	ld [$ffad], a
+	ld [hFillBox], a
 	ld bc, $0707
 	predef FillBox
 	call WaitBGMap
--- a/wram.asm
+++ b/wram.asm
@@ -473,7 +473,7 @@
 	ds 1
 
 wc64d:: ds 1
-wCaughtMon::
+wWildMon::
 wc64e:: ds 1
 	ds 1
 wEnemyTrainerItem1:: ds 1
@@ -635,7 +635,8 @@
 BattleScriptBufferLoc:: ; c6b2
 	ds 2
 
-wc6b4:: ds 2
+wTurnEnded:: ds 1
+	ds 1
 
 PlayerStats:: ; c6b6
 	ds 10
@@ -862,10 +863,10 @@
 BattleEnded:: ; c734
 	ds 1
 
-wCaughtMonMoves::
+wWildMonMoves::
 wc735:: ds 1
 wc736:: ds 3
-wCaughtMonPP::
+wWildMonPP::
 wc739:: ds 4
 wc73d:: ds 1
 wc73e:: ds 1
@@ -1627,7 +1628,11 @@
 wd152:: ds 1
 wd153:: ds 1
 
-UsedSprites:: ; d154
+UsedSprites:: ds 64
+UsedSpritesEnd::
+	ds UsedSprites - @
+
+wd154:: ; d154
 	ds 31 ; 64
 
 wd173:: ds 1
@@ -1639,9 +1644,7 @@
 wd191:: ds 1
 wd192:: ds 1
 wd193:: ds 1
-UsedSpritesEnd::
-wd194:: ds 1
-wd195:: ds 1
+wd194:: dw
 wd196:: ds 1
 wd197:: ds 2
 wd199:: ds 1
@@ -2731,7 +2734,7 @@
 
 LYOverrides:: ; d100
 	ds SCREEN_HEIGHT_PX
-LYOverridesEnd::
+LYOverridesEnd:: ; d190
 
 	ds 1
 w5_d191:: ds 1
@@ -2781,7 +2784,9 @@
 BattleAnimTemps:: ; d419
 	ds 8
 	ds 1
-w5_d422:: ds $40
+w5_d422:: ds $32
+wBattleAnimEnd::
+	ds $e
 
 
 SECTION "WRAM 6", WRAMX, BANK [6]