shithub: pokecrystal

Download patch

ref: 599e6e8d16571235f2054aa38f39e66181da3796
parent: e044b8ec08fee4a5d4f9cd942551ff94f2577b76
author: PikalaxALT <[email protected]>
date: Tue Mar 1 17:31:21 EST 2016

Battle animation annotations

--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -38,8 +38,8 @@
 	dec e
 	jr nz, .clearsound
 
-	ld hl, Channel1 ; start of channel data
-	ld de, $1bf ; length of area to clear (entire sound wram area)
+	ld hl, Channels ; start of channel data
+	ld de, ChannelsEnd - Channels ; length of area to clear (entire sound wram area)
 .clearchannels ; clear Channel1-$c2bf
 	xor a
 	ld [hli], a
--- a/battle/ai/items.asm
+++ b/battle/ai/items.asm
@@ -9,7 +9,7 @@
 	and a
 	ret nz
 
-	callba CheckSubstatus_RechargeChargedRampageBideRollout
+	callba CheckEnemyLockedIn
 	ret nz
 
 	ld a, [PlayerSubStatus5]
@@ -716,7 +716,7 @@
 	ld d, h
 	ld e, l
 	ld hl, EnemyMonStatus
-	ld bc, $0004
+	ld bc, MON_MAXHP - MON_STATUS
 	call CopyBytes
 	pop af
 
@@ -726,7 +726,7 @@
 
 .skiptext
 	ld a, 1
-	ld [wd264], a
+	ld [wAISwitch], a
 	callab NewEnemyMonStatus
 	callab ResetEnemyStatLevels
 	ld hl, PlayerSubStatus1
@@ -734,7 +734,7 @@
 	callba EnemySwitch
 	callba ResetBattleParticipants
 	xor a
-	ld [wd264], a
+	ld [wAISwitch], a
 	ld a, [wLinkMode]
 	and a
 	ret nz
--- a/battle/ai/move.asm
+++ b/battle/ai/move.asm
@@ -12,7 +12,7 @@
 	ret nz
 
 ; No use picking a move if there's no choice.
-	callba CheckSubstatus_RechargeChargedRampageBideRollout
+	callba CheckEnemyLockedIn
 	ret nz
 
 
--- a/battle/anim_gfx.asm
+++ b/battle/anim_gfx.asm
@@ -1,9 +1,9 @@
 AnimObj00GFX: ; 84a2e
-AnimObj01GFX: INCBIN "gfx/fx/001.2bpp.lz"
-AnimObj02GFX: INCBIN "gfx/fx/002.2bpp.lz"
-AnimObj03GFX: INCBIN "gfx/fx/003.2bpp.lz"
-AnimObj04GFX: INCBIN "gfx/fx/004.2bpp.lz"
-AnimObj05GFX: INCBIN "gfx/fx/005.2bpp.lz"
+AnimObjHitGFX: INCBIN "gfx/fx/001.2bpp.lz"
+AnimObjCutGFX: INCBIN "gfx/fx/002.2bpp.lz"
+AnimObjFireGFX: INCBIN "gfx/fx/003.2bpp.lz"
+AnimObjWaterGFX: INCBIN "gfx/fx/004.2bpp.lz"
+AnimObjLightningGFX: INCBIN "gfx/fx/005.2bpp.lz"
 AnimObj07GFX: INCBIN "gfx/fx/007.2bpp.lz"
 AnimObj08GFX: INCBIN "gfx/fx/008.2bpp.lz"
 AnimObj10GFX: INCBIN "gfx/fx/010.2bpp.lz"
--- a/battle/anims.asm
+++ b/battle/anims.asm
@@ -1323,7 +1323,7 @@
 
 BattleAnim_Thunderbolt: ; c9b66
 	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
-	anim_obj ANIM_OBJ_32, -15, 0,   7, 0, $2
+	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
 	anim_wait 16
 	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
 	anim_sound 0, 1, SFX_THUNDERSHOCK
@@ -2497,10 +2497,10 @@
 	anim_call BattleAnim_FollowPlayerHead_0
 	anim_transform
 	anim_sound 0, 0, SFX_PSYBEAM
-	anim_bgeffect ANIM_BG_28, $0, $1, $0
+	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
 	anim_wait 48
 	anim_updateactorpic
-	anim_incbgeffect ANIM_BG_28
+	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
 	anim_wait 48
 	anim_call BattleAnim_ShowMon_0
 	anim_ret
@@ -2759,10 +2759,10 @@
 	anim_1gfx ANIM_GFX_HIT
 	anim_call BattleAnim_FollowPlayerHead_0
 	anim_minimize
-	anim_bgeffect ANIM_BG_28, $0, $1, $0
+	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
 	anim_wait 48
 	anim_updateactorpic
-	anim_incbgeffect ANIM_BG_28
+	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
 	anim_wait 48
 	anim_call BattleAnim_ShowMon_0
 	anim_ret
@@ -2774,7 +2774,7 @@
 	anim_bgeffect ANIM_BG_27, $0, $1, $0
 	anim_wait 32
 	anim_sound 0, 0, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_6E,   6, 0,  11, 0, $40
+	anim_obj ANIM_OBJ_SKY_ATTACK_FEAROW,   6, 0,  11, 0, $40
 	anim_wait 64
 	anim_incobj  1
 	anim_wait 21
@@ -2805,7 +2805,7 @@
 BattleAnim_Lick: ; ca7e5
 	anim_1gfx ANIM_GFX_WATER
 	anim_sound 0, 1, SFX_LICK
-	anim_obj ANIM_OBJ_6F, -15, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_LICK, -15, 0,   7, 0, $0
 	anim_wait 64
 	anim_ret
 ; ca7f1
@@ -3025,9 +3025,9 @@
 	anim_1gfx ANIM_GFX_HIT
 	anim_call BattleAnim_FollowEnemyFeet_0
 	anim_sound 0, 0, SFX_PSYBEAM
-	anim_bgeffect ANIM_BG_28, $0, $1, $0
+	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
 	anim_wait 48
-	anim_incbgeffect ANIM_BG_28
+	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
 	anim_wait 48
 	anim_call BattleAnim_ShowMon_0
 	anim_ret
@@ -3765,13 +3765,13 @@
 BattleAnim_Spikes: ; cb092
 	anim_1gfx ANIM_GFX_MISC
 	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_8E,   6, 0,  11, 0, $20
+	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $20
 	anim_wait 8
 	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_8E,   6, 0,  11, 0, $30
+	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $30
 	anim_wait 8
 	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_8E,   6, 0,  11, 0, $28
+	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $28
 	anim_wait 64
 	anim_ret
 ; cb0b0
@@ -3784,7 +3784,7 @@
 	anim_obj ANIM_OBJ_A3,   8, 0,  11, 4, $2
 	anim_wait 40
 	anim_sound 0, 1, SFX_THUNDERSHOCK
-	anim_obj ANIM_OBJ_32, -15, 0,   7, 0, $2
+	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
 	anim_wait 16
 	anim_obj ANIM_OBJ_31, -15, 0,   7, 0, $0
 	anim_wait 128
@@ -3830,14 +3830,14 @@
 	anim_bgeffect ANIM_BG_06, $0, $2, $0
 	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
 	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_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $0
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $8
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $10
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $18
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $20
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $28
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $30
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $38
 	anim_wait 112
 	anim_ret
 ; cb14c
@@ -4087,7 +4087,7 @@
 	anim_incobj  2
 	anim_wait 1
 	anim_sound 0, 1, SFX_THUNDERSHOCK
-	anim_obj ANIM_OBJ_32, -15, 0,   7, 0, $2
+	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
 	anim_obj ANIM_OBJ_33, -15, 0,   7, 0, $0
 	anim_wait 32
 	anim_ret
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -7,7 +7,7 @@
 	ld [wPlayerAction], a
 	ld [BattleEnded], a
 	inc a
-	ld [wd264], a
+	ld [wAISwitch], a
 	ld hl, OTPartyMon1HP
 	ld bc, PARTYMON_STRUCT_LENGTH - 1
 	ld d, BATTLEACTION_SWITCH1 - 1
@@ -60,7 +60,7 @@
 	xor a
 	ld [CurPartyMon], a
 .loop2
-	call CheckIfPartyHasPkmnToBattleWith
+	call CheckIfCurPartyMonIsFitToFight
 	jr nz, .alive2
 	ld hl, CurPartyMon
 	inc [hl]
@@ -170,7 +170,7 @@
 	xor a
 	ld [wPlayerIsSwitching], a
 	ld [wEnemyIsSwitching], a
-	ld [wd264], a
+	ld [wAISwitch], a
 	ld [wPlayerJustGotFrozen], a
 	ld [wEnemyJustGotFrozen], a
 	ld [CurDamage], a
@@ -2497,7 +2497,7 @@
 	call PrintWinLossText
 
 .skip_win_loss_text
-	jp HandleBattleReward
+	jp .GiveMoney
 
 .mobile
 	call BattleWinSlideInEnemyTrainerFrontpic
@@ -2524,9 +2524,8 @@
 	call ClearTileMap
 	call ClearBGPalettes
 	ret
-; 3d02b
 
-HandleBattleReward: ; 3d02b
+.GiveMoney
 	ld a, [wAmuletCoin]
 	and a
 	call nz, .DoubleReward
@@ -3024,7 +3023,7 @@
 	call JumpToPartyMenuAndPrintText
 	call SelectBattleMon
 	ret c
-	call CheckIfPartyHasPkmnToBattleWith
+	call CheckIfCurPartyMonIsFitToFight
 	jr z, .loop
 	xor a
 	ret
@@ -3373,14 +3372,14 @@
 .not_linked
 	ld a, [wEnemySwitchMonIndex]
 	and a
-	jr z, .check_wd264
+	jr z, .check_wAISwitch
 
 	dec a
 	ld b, a
 	jr .return_carry
 
-.check_wd264
-	ld a, [wd264]
+.check_wAISwitch
+	ld a, [wAISwitch]
 	and a
 	ld b, $0
 	jr nz, .return_carry
@@ -3656,7 +3655,7 @@
 ; 3d714
 
 CheckWhetherToAskSwitch: ; 3d714
-	ld a, [wd264]
+	ld a, [wAISwitch]
 	dec a
 	jp z, .return_nc
 	ld a, [PartyCount]
@@ -3836,19 +3835,19 @@
 	xor a
 	ld hl, PartyMon1HP
 	ld bc, PartyMon2 - (PartyMon1 + 1)
-.asm_3d87e
+.loop
 	or [hl]
 	inc hl
 	or [hl]
 	add hl, bc
 	dec e
-	jr nz, .asm_3d87e
+	jr nz, .loop
 	ld d, a
 	ret
 ; 3d887
 
 
-CheckIfPartyHasPkmnToBattleWith: ; 3d887
+CheckIfCurPartyMonIsFitToFight: ; 3d887
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1HP
 	call GetPartyLocation
@@ -3856,9 +3855,9 @@
 	or [hl]
 	ret nz
 
-	ld a, [wd264]
+	ld a, [wAISwitch]
 	and a
-	jr nz, .asm_3d8b1
+	jr nz, .finish_fail
 	ld hl, PartySpecies
 	ld a, [CurPartyMon]
 	ld c, a
@@ -3867,14 +3866,14 @@
 	ld a, [hl]
 	cp EGG
 	ld hl, BattleText_AnEGGCantBattle
-	jr z, .asm_3d8ae
+	jr z, .print_textbox
 
 	ld hl, BattleText_TheresNoWillToBattle
 
-.asm_3d8ae
+.print_textbox
 	call StdBattleTextBox
 
-.asm_3d8b1
+.finish_fail
 	xor a
 	ret
 ; 3d8b3
@@ -4501,6 +4500,8 @@
 	ld hl, BattleMonMaxHP
 
 .go
+; If, and only if, Pokemon's HP is less than half max, use the item.
+; Store current HP in Buffer 3/4
 	push bc
 	ld a, [de]
 	ld [Buffer3], a
@@ -4528,6 +4529,7 @@
 
 .less
 	call ItemRecoveryAnim
+	; store max HP in Buffer1/2
 	ld a, [hli]
 	ld [Buffer2], a
 	ld a, [hl]
@@ -5434,7 +5436,7 @@
 	jp BattleMenuPKMN_Loop
 
 .try_switch
-	call CheckIfPartyHasPkmnToBattleWith
+	call CheckIfCurPartyMonIsFitToFight
 	jp z, BattleMenuPKMN_Loop
 	ld a, [CurBattleMon]
 	ld [LastPlayerMon], a
@@ -5675,15 +5677,15 @@
 	ld c, $2c
 	ld a, [wMoveSelectionMenuType]
 	dec a
-	ld b, $c1
+	ld b, D_DOWN | D_UP | A_BUTTON
 	jr z, .okay
 	dec a
-	ld b, $c3
+	ld b, D_DOWN | D_UP | A_BUTTON | B_BUTTON
 	jr z, .okay
 	ld a, [wLinkMode]
 	and a
 	jr nz, .okay
-	ld b, $c7
+	ld b, D_DOWN | D_UP | A_BUTTON | B_BUTTON | SELECT
 
 .okay
 	ld a, b
@@ -5727,6 +5729,7 @@
 	bit SELECT_F, a
 	jp nz, .pressed_select
 	bit B_BUTTON_F, a
+	; A button
 	push af
 
 	xor a
@@ -6106,7 +6109,7 @@
 	jp .finish
 
 .skip_encore
-	call CheckSubstatus_RechargeChargedRampageBideRollout
+	call CheckEnemyLockedIn
 	jp nz, ResetVarsForSubstatusRage
 	jr .continue
 
@@ -6173,7 +6176,7 @@
 .skip_load
 	call SetEnemyTurn
 	callab UpdateMoveData
-	call CheckSubstatus_RechargeChargedRampageBideRollout
+	call CheckEnemyLockedIn
 	jr nz, .raging
 	xor a
 	ld [wEnemyCharging], a
@@ -6219,7 +6222,7 @@
 	ret
 ; 3e8d1
 
-CheckSubstatus_RechargeChargedRampageBideRollout: ; 3e8d1
+CheckEnemyLockedIn: ; 3e8d1
 	ld a, [EnemySubStatus4]
 	and 1 << SUBSTATUS_RECHARGE
 	ret nz
@@ -8025,7 +8028,7 @@
 
 	ld hl, JumpText_GoPkmn ; If we're in a LinkBattle print just "Go <PlayerMon>"
 
-	ld a, [wd264] ; unless this (unidentified) variable is set
+	ld a, [wAISwitch] ; unless this (unidentified) variable is set
 	and a
 	jr nz, .skip_to_textbox
 
@@ -8482,7 +8485,7 @@
 	ld [hMapAnims], a
 	callba PlayBattleMusic
 	callba ShowLinkBattleParticipants
-	callba FindFirstAliveMon
+	callba FindFirstAliveMonAndStartBattle
 	call DisableSpriteUpdates
 	callba ClearBattleRAM
 	call InitEnemy
--- a/battle/moves/move_effects.asm
+++ b/battle/moves/move_effects.asm
@@ -2095,7 +2095,7 @@
 	damagestats
 	damagecalc
 	futuresight
-	damagevariation
+	damagevariation ; skip here if last turn
 	checkhit
 	hittargetnosub
 	failuretext
--- a/battle/objects/data.asm
+++ b/battle/objects/data.asm
@@ -156,7 +156,7 @@
 ; ANIM_OBJ_31
 	battleanimobj $21, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, $03, $05
 
-; ANIM_OBJ_32
+; ANIM_OBJ_LIGHTNING_BOLT
 	battleanimobj $21, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, $02, $08
 
 ; ANIM_OBJ_33
@@ -336,10 +336,10 @@
 ; ANIM_OBJ_6D
 	battleanimobj $01, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11
 
-; ANIM_OBJ_6E
+; ANIM_OBJ_SKY_ATTACK_FEAROW
 	battleanimobj $21, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, $02, $20
 
-; ANIM_OBJ_6F
+; ANIM_OBJ_LICK
 	battleanimobj $21, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, $02, $04
 
 ; ANIM_OBJ_70
@@ -432,7 +432,7 @@
 ; ANIM_OBJ_8D
 	battleanimobj $21, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, $04, $19
 
-; ANIM_OBJ_8E
+; ANIM_OBJ_SPIKES
 	battleanimobj $21, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, $02, $1f
 
 ; ANIM_OBJ_8F
@@ -504,7 +504,7 @@
 ; ANIM_OBJ_A5
 	battleanimobj $61, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, $02, $23
 
-; ANIM_OBJ_A6
+; ANIM_OBJ_PERISH_SONG
 	battleanimobj $00, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, $02, $0e
 
 ; ANIM_OBJ_A7
--- a/battle/objects/gfx_headers.asm
+++ b/battle/objects/gfx_headers.asm
@@ -8,11 +8,11 @@
 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 21, AnimObjHitGFX
+	object_gfx  6, AnimObjCutGFX
+	object_gfx  6, AnimObjFireGFX
+	object_gfx 20, AnimObjWaterGFX
+	object_gfx 26, AnimObjLightningGFX
 	object_gfx 18, AnimObj06GFX
 	object_gfx 12, AnimObj07GFX
 	object_gfx  9, AnimObj08GFX
--- a/constants/animation_constants.asm
+++ b/constants/animation_constants.asm
@@ -76,7 +76,7 @@
     const ANIM_OBJ_2F
     const ANIM_OBJ_30
     const ANIM_OBJ_31
-    const ANIM_OBJ_32
+    const ANIM_OBJ_LIGHTNING_BOLT
     const ANIM_OBJ_33
     const ANIM_OBJ_34
     const ANIM_OBJ_35
@@ -136,8 +136,8 @@
     const ANIM_OBJ_6B
     const ANIM_OBJ_6C
     const ANIM_OBJ_6D
-    const ANIM_OBJ_6E
-    const ANIM_OBJ_6F
+    const ANIM_OBJ_SKY_ATTACK_FEAROW
+    const ANIM_OBJ_LICK
     const ANIM_OBJ_70
     const ANIM_OBJ_71
     const ANIM_OBJ_72
@@ -168,7 +168,7 @@
     const ANIM_OBJ_8B
     const ANIM_OBJ_8C
     const ANIM_OBJ_8D
-    const ANIM_OBJ_8E
+    const ANIM_OBJ_SPIKES
     const ANIM_OBJ_8F
     const ANIM_OBJ_90
     const ANIM_OBJ_91
@@ -192,7 +192,7 @@
     const ANIM_OBJ_A3
     const ANIM_OBJ_A4
     const ANIM_OBJ_A5
-    const ANIM_OBJ_A6
+    const ANIM_OBJ_PERISH_SONG
     const ANIM_OBJ_A7
     const ANIM_OBJ_A8
     const ANIM_OBJ_A9
@@ -742,7 +742,7 @@
 	const ANIM_BG_25
 	const ANIM_BG_26
 	const ANIM_BG_27
-	const ANIM_BG_28
+	const ANIM_BG_WAVE_DEFORM_USER
 	const ANIM_BG_PSYCHIC
 	const ANIM_BG_2A
 	const ANIM_BG_2B
@@ -767,6 +767,47 @@
 	const ANIM_MON_UNUSED  ; 6
 	const ANIM_MON_EGG1    ; 7
 	const ANIM_MON_EGG2    ; 8
+
+const_value SET 1
+	const ANIM_GFX_HIT
+	const ANIM_GFX_CUT
+	const ANIM_GFX_FIRE
+	const ANIM_GFX_WATER
+	const ANIM_GFX_LIGHTNING
+	const ANIM_GFX_PLANT
+	const ANIM_GFX_SMOKE
+	const ANIM_GFX_EXPLOSION
+	const ANIM_GFX_ROCKS
+	const ANIM_GFX_ICE
+	const ANIM_GFX_POKE_BALL
+	const ANIM_GFX_POISON
+	const ANIM_GFX_BUBBLE
+	const ANIM_GFX_NOISE
+	const ANIM_GFX_POWDER
+	const ANIM_GFX_BEAM
+	const ANIM_GFX_SPEED
+	const ANIM_GFX_CHARGE
+	const ANIM_GFX_WIND
+	const ANIM_GFX_WHIP
+	const ANIM_GFX_EGG
+	const ANIM_GFX_ROPE
+	const ANIM_GFX_PSYCHIC
+	const ANIM_GFX_REFLECT
+	const ANIM_GFX_STATUS
+	const ANIM_GFX_SAND
+	const ANIM_GFX_WEB
+	const ANIM_GFX_HAZE
+	const ANIM_GFX_HORN
+	const ANIM_GFX_FLOWER
+	const ANIM_GFX_MISC
+	const ANIM_GFX_SKY_ATTACK
+	const ANIM_GFX_GLOBE
+	const ANIM_GFX_SHAPES
+	const ANIM_GFX_OBJECTS
+	const ANIM_GFX_SHINE
+	const ANIM_GFX_ANGELS
+	const ANIM_GFX_WAVE
+	const ANIM_GFX_AEROBLAST
 
 	const_def
 	const BG_EFFECT_STRUCT_FUNCTION
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -1,45 +1,3 @@
-const_value SET 1
-	const ANIM_GFX_HIT
-	const ANIM_GFX_CUT
-	const ANIM_GFX_FIRE
-	const ANIM_GFX_WATER
-	const ANIM_GFX_LIGHTNING
-	const ANIM_GFX_PLANT
-	const ANIM_GFX_SMOKE
-	const ANIM_GFX_EXPLOSION
-	const ANIM_GFX_ROCKS
-	const ANIM_GFX_ICE
-	const ANIM_GFX_POKE_BALL
-	const ANIM_GFX_POISON
-	const ANIM_GFX_BUBBLE
-	const ANIM_GFX_NOISE
-	const ANIM_GFX_POWDER
-	const ANIM_GFX_BEAM
-	const ANIM_GFX_SPEED
-	const ANIM_GFX_CHARGE
-	const ANIM_GFX_WIND
-	const ANIM_GFX_WHIP
-	const ANIM_GFX_EGG
-	const ANIM_GFX_ROPE
-	const ANIM_GFX_PSYCHIC
-	const ANIM_GFX_REFLECT
-	const ANIM_GFX_STATUS
-	const ANIM_GFX_SAND
-	const ANIM_GFX_WEB
-	const ANIM_GFX_HAZE
-	const ANIM_GFX_HORN
-	const ANIM_GFX_FLOWER
-	const ANIM_GFX_MISC
-	const ANIM_GFX_SKY_ATTACK
-	const ANIM_GFX_GLOBE
-	const ANIM_GFX_SHAPES
-	const ANIM_GFX_OBJECTS
-	const ANIM_GFX_SHINE
-	const ANIM_GFX_ANGELS
-	const ANIM_GFX_WAVE
-	const ANIM_GFX_AEROBLAST
-
-
 LEN_2BPP_TILE EQU 16
 LEN_1BPP_TILE EQU 8
 TILES_PER_FRAME EQU 6
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -19,7 +19,7 @@
 	const MAPCALLBACK_SPRITES
 	const MAPCALLBACK_NEWMAP
 
-; Command descriptions from Condensation water's scripting compendium.	const_def
+; Command descriptions from Condensation water's scripting compendium.
 	const_def
 
 	const map_lcd_on              ; 00
--- a/engine/anim_hp_bar.asm
+++ b/engine/anim_hp_bar.asm
@@ -1,8 +1,8 @@
 _AnimateHPBar: ; d627
-	call Functiond65f
-	jr c, .do_player
-	call Functiond670
-.enemy_loop
+	call .IsMaximumMoreThan48Pixels
+	jr c, .MoreThan48Pixels
+	call .ComputePixels
+.ShortAnimLoop
 	push bc
 	push hl
 	call Functiond6e2
@@ -16,12 +16,12 @@
 	pop hl
 	pop bc
 	pop af
-	jr nc, .enemy_loop
+	jr nc, .ShortAnimLoop
 	ret
 
-.do_player
-	call Functiond670
-.player_loop
+.MoreThan48Pixels
+	call .ComputePixels
+.LongAnimLoop
 	push bc
 	push hl
 	call Functiond6f5
@@ -36,11 +36,11 @@
 	pop hl
 	pop bc
 	pop af
-	jr nc, .player_loop
+	jr nc, .LongAnimLoop
 	ret
 ; d65f
 
-Functiond65f: ; d65f
+.IsMaximumMoreThan48Pixels: ; d65f
 	ld a, [Buffer2]
 	and a
 	jr nz, .player
@@ -55,7 +55,7 @@
 	ret
 ; d670
 
-Functiond670: ; d670
+.ComputePixels: ; d670
 ; Buffer1-2: Max HP
 ; Buffer3-4: Old HP
 ; Buffer5-6: New HP
@@ -72,7 +72,7 @@
 	pop hl
 	call ComputeHPBarPixels
 	ld a, e
-	ld [wd1f1], a
+	ld [wCurHPBarPixels], a
 
 	ld a, [Buffer5]
 	ld c, a
@@ -84,7 +84,7 @@
 	ld d, a
 	call ComputeHPBarPixels
 	ld a, e
-	ld [wd1f2], a
+	ld [wNewHPBarPixels], a
 
 	push hl
 	ld hl, Buffer3
@@ -103,15 +103,15 @@
 	ld a, d
 	sbc b
 	ld d, a
-	jr c, .asm_d6c1
+	jr c, .negative
 	ld a, [Buffer3]
 	ld [wd1f5], a
 	ld a, [Buffer5]
 	ld [wd1f6], a
 	ld bc, 1
-	jr .asm_d6d9
+	jr .got_direction
 
-.asm_d6c1
+.negative
 	ld a, [Buffer3]
 	ld [wd1f6], a
 	ld a, [Buffer5]
@@ -123,8 +123,8 @@
 	ld a, d
 	xor $ff
 	ld d, a
-	ld bc, rIE
-.asm_d6d9
+	ld bc, -1
+.got_direction
 	ld a, d
 	ld [wd1f3], a
 	ld a, e
@@ -133,14 +133,14 @@
 ; d6e2
 
 Functiond6e2: ; d6e2
-	ld hl, wd1f1
-	ld a, [wd1f2]
+	ld hl, wCurHPBarPixels
+	ld a, [wNewHPBarPixels]
 	cp [hl]
-	jr nz, .asm_d6ed
+	jr nz, .not_finished
 	scf
 	ret
 
-.asm_d6ed
+.not_finished
 	ld a, c
 	add [hl]
 	ld [hl], a
@@ -150,7 +150,7 @@
 ; d6f5
 
 Functiond6f5: ; d6f5
-.asm_d6f5
+.loop
 	ld hl, Buffer3
 	ld a, [hli]
 	ld e, a
@@ -158,15 +158,15 @@
 	ld d, a
 	ld a, e
 	cp [hl]
-	jr nz, .asm_d707
+	jr nz, .next
 	inc hl
 	ld a, d
 	cp [hl]
-	jr nz, .asm_d707
+	jr nz, .next
 	scf
 	ret
 
-.asm_d707
+.next
 	ld l, e
 	ld h, d
 	add hl, bc
@@ -173,7 +173,7 @@
 	ld a, l
 	ld [Buffer3], a
 	ld a, h
-	ld [wd1ed], a
+	ld [Buffer4], a
 	push hl
 	push de
 	push bc
@@ -191,9 +191,9 @@
 	pop de
 	pop hl
 	ld a, e
-	ld hl, wd1f1
+	ld hl, wCurHPBarPixels
 	cp [hl]
-	jr z, .asm_d6f5
+	jr z, .loop
 	ld [hl], a
 	and a
 	ret
@@ -205,7 +205,7 @@
 	ld a, [wWhichHPBar]
 	and $1
 	ld b, a
-	ld a, [wd1f1]
+	ld a, [wCurHPBarPixels]
 	ld e, a
 	ld c, a
 	push de
@@ -219,7 +219,7 @@
 	call Functiond784
 	ld a, [Buffer3]
 	ld c, a
-	ld a, [wd1ed]
+	ld a, [Buffer4]
 	ld b, a
 	ld a, [Buffer1]
 	ld e, a
@@ -275,7 +275,7 @@
 	dec hl
 	ld a, [Buffer3]
 	ld [StringBuffer2 + 1], a
-	ld a, [wd1ed]
+	ld a, [Buffer4]
 	ld [StringBuffer2], a
 	ld de, StringBuffer2
 	lb bc, 2, 3
@@ -375,7 +375,7 @@
 	ld c, a
 	ld b, 0
 	ld hl, 0
-	ld a, [wd1f1]
+	ld a, [wCurHPBarPixels]
 	cp 6 * 8
 	jr nc, .coppy_buffer
 	and a
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -1,5 +1,5 @@
 Predef_StartBattle: ; 8c20f
-	call Function8c26d
+	call .InitGFX
 	ld a, [rBGP]
 	ld [wBGP], a
 	ld a, [rOBP0]
@@ -52,7 +52,7 @@
 	ret
 ; 8c26d
 
-Function8c26d: ; 8c26d
+.InitGFX: ; 8c26d
 	ld a, [wLinkMode]
 	cp LINK_MOBILE
 	jr z, .mobile
@@ -59,8 +59,8 @@
 	callba Function6454
 	call UpdateSprites
 	call DelayFrame
-	call Function8c2a0
-	call Function8cf4f
+	call .NonMobile_LoadPokeballTiles
+	call BattleStart_LoadEDTile
 	jr .resume
 
 .mobile
@@ -81,7 +81,7 @@
 	ret
 ; 8c2a0
 
-Function8c2a0: ; 8c2a0
+.NonMobile_LoadPokeballTiles: ; 8c2a0
 	call LoadTrainerBattlePokeballTiles
 	hlbgcoord 0, 0
 	call Function8c2cf
@@ -663,7 +663,7 @@
 	ld a, $1
 	ld [hCGBPalUpdate], a
 	call DelayFrame
-	call Function8cf4f
+	call BattleStart_LoadEDTile
 
 .nextscene: ; 8c673 (23:4673)
 	call StartTrainerBattle_NextScene
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -67,7 +67,7 @@
 InitGenderScreen: ; 48e14 (12:4e14)
 	ld a, $10
 	ld [MusicFade], a
-	ld a, $0
+	ld a, MUSIC_NONE
 	ld [MusicFadeIDLo], a
 	ld a, $0
 	ld [MusicFadeIDHi], a
--- a/engine/main_menu.asm
+++ b/engine/main_menu.asm
@@ -202,7 +202,7 @@
 	ld a, [w2DMenuFlags1]
 	set 5, a
 	ld [w2DMenuFlags1], a
-	call Function1f1a
+	call GetScrollingMenuJoypad
 	ld a, [wMenuJoypad]
 	cp B_BUTTON
 	jr z, .b_button
--- a/engine/mon_icons.asm
+++ b/engine/mon_icons.asm
@@ -14,7 +14,7 @@
 	ret
 ; 8e83f
 
-Function8e83f: ; 8e83f
+LoadMenuMonIcon: ; 8e83f
 	push hl
 	push de
 	push bc
@@ -28,9 +28,8 @@
 .LoadIcon: ; 8e849
 	ld d, 0
 	ld hl, .Jumptable
-rept 2
 	add hl, de
-endr
+	add hl, de
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -39,13 +38,13 @@
 
 
 .Jumptable: ; 8e854 (23:6854)
-	dw Function8e8d5 ; init
-	dw Function8e961
-	dw Function8e97d
-	dw Trade_LoadMonIconGFX
-	dw Function8e898
-	dw Mobile_InitPartyMenuBGPal71
-	dw .GetPartyMenuMonIcon
+	dw Function8e8d5 ; party menu
+	dw Function8e961 ; naming screen
+	dw Function8e97d ; moves (?)
+	dw Trade_LoadMonIconGFX ; trade
+	dw Function8e898 ; mobile
+	dw Mobile_InitPartyMenuBGPal71 ; mobile
+	dw .GetPartyMenuMonIcon ; unused
 
 
 .GetPartyMenuMonIcon: ; 8e862 (23:6862)
@@ -89,7 +88,7 @@
 	call Function8e8d5
 	ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
 	add hl, bc
-	ld a, $0
+	ld a, SPRITE_ANIM_SEQ_NULL
 	ld [hl], a
 	ld hl, SPRITEANIMSTRUCT_XCOORD
 	add hl, bc
@@ -106,7 +105,7 @@
 	call SetPartyMonIconAnimSpeed
 	ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
 	add hl, bc
-	ld a, $0
+	ld a, SPRITE_ANIM_SEQ_NULL
 	ld [hl], a
 	ld hl, SPRITEANIMSTRUCT_XCOORD
 	add hl, bc
@@ -229,7 +228,7 @@
 	call InitSpriteAnimStruct
 	ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
 	add hl, bc
-	ld [hl], $0
+	ld [hl], SPRITE_ANIM_SEQ_NULL
 	ret
 
 Function8e97d: ; 8e97d (23:697d)
--- a/engine/movement.asm
+++ b/engine/movement.asm
@@ -55,8 +55,8 @@
 	dw Movement_fast_jump_step_up     ; 35
 	dw Movement_fast_jump_step_left   ; 36
 	dw Movement_fast_jump_step_right  ; 37
-	dw Movement_38                    ; 38
-	dw Movement_39                    ; 39
+	dw Movement_remove_sliding                    ; 38
+	dw Movement_set_sliding                    ; 39
 	dw Movement_remove_fixed_facing   ; 3a
 	dw Movement_fix_facing            ; 3b
 	dw Movement_show_person           ; 3c
@@ -373,7 +373,7 @@
 	ret
 ; 5293
 
-Movement_38: ; 5293
+Movement_remove_sliding: ; 5293
 	ld hl, OBJECT_FLAGS1
 	add hl, bc
 	res SLIDING, [hl]
@@ -380,7 +380,7 @@
 	jp ContinueReadingMovement
 ; 529c
 
-Movement_39: ; 529c
+Movement_set_sliding: ; 529c
 	ld hl, OBJECT_FLAGS1
 	add hl, bc
 	set SLIDING, [hl]
--- a/engine/namingscreen.asm
+++ b/engine/namingscreen.asm
@@ -88,10 +88,10 @@
 .Pokemon: ; 1173e (4:573e)
 	ld a, [CurPartySpecies]
 	ld [wd265], a
-	ld hl, Function8e83f
-	ld a, BANK(Function8e83f)
+	ld hl, LoadMenuMonIcon
+	ld a, BANK(LoadMenuMonIcon)
 	ld e, $1
-	rst FarCall ;  ; indirect jump to Function8e83f (8e83f (23:683f))
+	rst FarCall ;  ; indirect jump to LoadMenuMonIcon (8e83f (23:683f))
 	ld a, [CurPartySpecies]
 	ld [wd265], a
 	call GetPokemonName
--- a/engine/party_menu.asm
+++ b/engine/party_menu.asm
@@ -658,8 +658,8 @@
 .loop
 	push bc
 	push hl
-	ld hl, Function8e83f
-	ld a, BANK(Function8e83f)
+	ld hl, LoadMenuMonIcon
+	ld a, BANK(LoadMenuMonIcon)
 	ld e, $0
 	rst FarCall
 	ld a, [hObjectStructIndexBuffer]
@@ -752,8 +752,8 @@
 	ld [wPartyMenuCursor], a
 	ld a, [hJoyLast]
 	ld b, a
-	bit 1, b
-	jr nz, .exitmenu ; B button?
+	bit B_BUTTON_F, b
+	jr nz, .exitmenu ; B button
 	ld a, [wMenuCursorY]
 	dec a
 	ld [CurPartyMon], a
--- a/engine/player_movement.asm
+++ b/engine/player_movement.asm
@@ -121,12 +121,12 @@
 	ld a, [PlayerStandingTile]
 	ld c, a
 	call CheckWhirlpoolTile
-	jr c, .asm_800c4
+	jr c, .not_whirlpool
 	ld a, 3
 	scf
 	ret
 
-.asm_800c4
+.not_whirlpool
 	and $f0
 	cp $30 ; moving water
 	jr z, .water
--- a/engine/pokecenter_pc.asm
+++ b/engine/pokecenter_pc.asm
@@ -2,9 +2,9 @@
 	call PC_CheckPartyForPokemon
 	ret c
 	call PC_PlayBootSound
-	ld hl, UnknownText_0x15a27
+	ld hl, PokeCenterPCText_BootedUpPC
 	call PC_DisplayText
-	ld hl, UnknownText_0x15a2c
+	ld hl, PokeCenterPCText_AccessWhosePC
 	call PC_DisplayTextWaitMenu
 	ld hl, .TopMenu
 	call LoadMenuDataHeader
@@ -25,40 +25,35 @@
 	call ExitMenu
 	call CloseWindow
 	ret
-; 155d6
 
-.TopMenu: ; 0x155d6
+.TopMenu
 	db $48 ; flags
 	db 00, 00 ; start coords
 	db 12, 15 ; end coords
 	dw .MenuData2
 	db 1 ; default option
-; 0x155de
 
-.MenuData2: ; 0x155de
+.MenuData2
 	db $a0 ; flags
 	db 0 ; items
 	dw .WhichPC
 	dw PlaceNthMenuStrings
 	dw .JumpTable
-; 0x155e6
 
-.JumpTable: ; 155e6
+.JumpTable
 	dw PlayersPC, .String_PlayersPC
 	dw BillsPC, .String_BillsPC
 	dw OaksPC, .String_OaksPC
 	dw HallOfFamePC, .String_HallOfFame
 	dw TurnOffPC, .String_TurnOff
-; 155fa
 
-.String_PlayersPC:	db "<PLAYER>'s PC@"
-.String_BillsPC:	db "BILL's PC@"
-.String_OaksPC:	    db "PROF.OAK's PC@"
-.String_HallOfFame:	db "HALL OF FAME@"
-.String_TurnOff:	db "TURN OFF@"
-; 1562c
+.String_PlayersPC:  db "<PLAYER>'s PC@"
+.String_BillsPC:    db "BILL's PC@"
+.String_OaksPC:     db "PROF.OAK's PC@"
+.String_HallOfFame: db "HALL OF FAME@"
+.String_TurnOff:    db "TURN OFF@"
 
-.WhichPC: ; 1562c
+.WhichPC
 	; before pokedex
 	db  3 ; items
 	db  1, 0, 4 ; bill's, player's, turn off
@@ -73,9 +68,8 @@
 	db  5 ; items
 	db  1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off
 	db -1
-; 1563e
 
-.ChooseWhichPCListToUse: ; 1563e
+.ChooseWhichPCListToUse
 	call CheckReceivedDex
 	jr nz, .got_dex
 	ld a, $0
@@ -96,13 +90,12 @@
 	ret nz
 	ld de, SFX_CHOOSE_PC_OPTION
 	call PlaySFX
-	ld hl, UnknownText_0x15663
+	ld hl, .MustHavePokemonToUse
 	call PC_DisplayText
 	scf
 	ret
-; 15663
 
-UnknownText_0x15663: ; 0x15663
+.MustHavePokemonToUse
 	; Bzzzzt! You must have a #MON to use this!
 	text_jump UnknownText_0x1c1328
 	db "@"
@@ -110,7 +103,7 @@
 
 BillsPC: ; 15668
 	call PC_PlayChoosePCSound
-	ld hl, UnknownText_0x15a31
+	ld hl, PokeCenterPCText_AccessedBillsPC
 	call PC_DisplayText
 	callba _BillsPC
 	and a
@@ -119,7 +112,7 @@
 
 PlayersPC: ; 15679
 	call PC_PlayChoosePCSound
-	ld hl, UnknownText_0x15a36
+	ld hl, PokeCenterPCText_AccessedOwnPC
 	call PC_DisplayText
 	ld b, $0
 	call _PlayersPC
@@ -129,7 +122,7 @@
 
 OaksPC: ; 15689
 	call PC_PlayChoosePCSound
-	ld hl, UnknownText_0x15a3b
+	ld hl, PokeCenterPCText_AccessedOaksPC
 	call PC_DisplayText
 	callba ProfOaksPC
 	and a
@@ -146,7 +139,7 @@
 ; 156ab
 
 TurnOffPC: ; 156ab
-	ld hl, UnknownText_0x15a40
+	ld hl, PokeCenterPCText_LinkClosed
 	call PrintText
 	scf
 	ret
@@ -166,7 +159,7 @@
 	ld de, SFX_CHOOSE_PC_OPTION
 	jr PC_WaitPlaySFX
 
-Function156c7: ; 156c7
+PC_PlaySwapItemsSound: ; 156c7
 	ld de, SFX_SWITCH_POKEMON
 	call PC_WaitPlaySFX
 	ld de, SFX_SWITCH_POKEMON
@@ -218,8 +211,8 @@
 
 Function15715: ; 15715
 	xor a
-	ld [wd0d7], a
-	ld [wd0dd], a
+	ld [wPCItemsCursor], a
+	ld [wPCItemsScrollPosition], a
 	ld hl, KrissPCMenuData
 	call LoadMenuDataHeader
 .asm_15722
@@ -316,19 +309,18 @@
 KrisWithdrawItemMenu: ; 0x157d1
 	call LoadStandardMenuDataHeader
 	callba ClearPCItemScreen
-.asm_157da
-	call Function15985
-	jr c, .asm_157e4
-	call Function157e9
-	jr .asm_157da
+.loop
+	call PCItemsJoypad
+	jr c, .quit
+	call .Submenu
+	jr .loop
 
-.asm_157e4
+.quit
 	call CloseSubmenu
 	xor a
 	ret
-; 0x157e9
 
-Function157e9: ; 0x157e9
+.Submenu
 	; check if the item has a quantity
 	callba _CheckTossableItem
 	ld a, [wItemAttributeParamBuffer]
@@ -351,7 +343,7 @@
 .withdraw
 	ld a, [wItemQuantityChangeBuffer]
 	ld [Buffer1], a ; quantity
-	ld a, [wd107]
+	ld a, [CurItemQuantity]
 	ld [Buffer2], a
 	ld hl, NumItems
 	call ReceiveItem
@@ -359,7 +351,7 @@
 	ld a, [Buffer1]
 	ld [wItemQuantityChangeBuffer], a
 	ld a, [Buffer2]
-	ld [wd107], a
+	ld [CurItemQuantity], a
 	ld hl, PCItems
 	call TossItem
 	predef PartyMonItemName
@@ -377,7 +369,6 @@
 
 .done
 	ret
-; 0x15850
 
 .HowManyText ; 0x15850
 	text_jump _KrissPCHowManyWithdrawText
@@ -391,24 +382,22 @@
 	text_jump _KrissPCNoRoomWithdrawText
 	db "@"
 
-
 KrisTossItemMenu: ; 0x1585f
 	call LoadStandardMenuDataHeader
 	callba ClearPCItemScreen
-.asm_15868
-	call Function15985
-	jr c, .asm_15878
+.loop
+	call PCItemsJoypad
+	jr c, .quit
 	ld de, PCItems
-	callba Function129f4
-	jr .asm_15868
+	callba TossItemFromPC
+	jr .loop
 
-.asm_15878
+.quit
 	call CloseSubmenu
 	xor a
 	ret
 ; 0x1587d
 
-
 KrisDecorationMenu: ; 0x1587d
 	callba _KrisDecorationMenu
 	ld a, c
@@ -418,7 +407,6 @@
 	ret
 ; 0x15888
 
-
 KrisLogOffMenu: ; 0x15888
 	xor a
 	scf
@@ -425,47 +413,42 @@
 	ret
 ; 0x1588b
 
-
 KrisDepositItemMenu: ; 0x1588b
-	call Function158b8
-	jr c, .asm_158b6
+	call .CheckItemsInBag
+	jr c, .nope
 	call DisableSpriteUpdates
 	call LoadStandardMenuDataHeader
 	callba DepositSellInitPackBuffers
-.asm_1589c
+.loop
 	callba DepositSellPack
 	ld a, [wcf66]
 	and a
-	jr z, .asm_158b3
-	call Function158cc
+	jr z, .close
+	call .TryDepositItem
 	callba CheckRegisteredItem
-	jr .asm_1589c
+	jr .loop
 
-.asm_158b3
+.close
 	call CloseSubmenu
 
-.asm_158b6
+.nope
 	xor a
 	ret
-; 0x158b8
 
-Function158b8: ; 0x158b8
+.CheckItemsInBag
 	callba HasNoItems
 	ret nc
-	ld hl, UnknownText_0x158c7
+	ld hl, .NoItemsInBag
 	call MenuTextBoxBackup
 	scf
 	ret
-; 0x158c7
 
-UnknownText_0x158c7: ; 0x158c7
+.NoItemsInBag
 	; No items here!
 	text_jump UnknownText_0x1c13df
 	db "@"
-; 0x158cc
 
-
-Function158cc: ; 0x158cc
+.TryDepositItem
 	ld a, [wSpriteUpdatesEnabled]
 	push af
 	ld a, $0
@@ -477,9 +460,8 @@
 	pop af
 	ld [wSpriteUpdatesEnabled], a
 	ret
-; 0x158e7
 
-.dw: ; 0x158e7
+.dw
 	dw .tossable
 	dw .no_toss
 	dw .no_toss
@@ -488,32 +470,31 @@
 	dw .tossable
 	dw .tossable
 
-.no_toss:
+.no_toss
 	ret
 
-.tossable:
+.tossable
 	ld a, [Buffer1]
 	push af
 	ld a, [Buffer2]
 	push af
-	call Function1590a
+	call .DepositItem_
 	pop af
 	ld [Buffer2], a
 	pop af
 	ld [Buffer1], a
 	ret
-; 0x1590a
 
-Function1590a: ; 0x1590a
+.DepositItem_
 	callba _CheckTossableItem
 	ld a, [wItemAttributeParamBuffer]
 	and a
-	jr z, .asm_1591d
+	jr z, .AskQuantity
 	ld a, $1
 	ld [wItemQuantityChangeBuffer], a
-	jr .asm_15933
+	jr .DepositItem
 
-.asm_1591d
+.AskQuantity
 	ld hl, .HowManyText
 	call MenuTextBox
 	callba SelectQuantityToToss
@@ -521,20 +502,20 @@
 	call ExitMenu
 	call ExitMenu
 	pop af
-	jr c, .asm_1596c
+	jr c, .DeclinedToDeposit
 
-.asm_15933
+.DepositItem
 	ld a, [wItemQuantityChangeBuffer]
 	ld [Buffer1], a
-	ld a, [wd107]
+	ld a, [CurItemQuantity]
 	ld [Buffer2], a
 	ld hl, PCItems
 	call ReceiveItem
-	jr nc, .asm_15965
+	jr nc, .NoRoomInPC
 	ld a, [Buffer1]
 	ld [wItemQuantityChangeBuffer], a
 	ld a, [Buffer2]
-	ld [wd107], a
+	ld [CurItemQuantity], a
 	ld hl, NumItems
 	call TossItem
 	predef PartyMonItemName
@@ -542,17 +523,15 @@
 	call PrintText
 	ret
 
-.asm_15965
+.NoRoomInPC
 	ld hl, .NoRoomText
 	call PrintText
 	ret
 
-.asm_1596c
+.DeclinedToDeposit
 	and a
 	ret
-; 0x1596e
 
-
 .HowManyText ; 0x1596e
 	text_jump _KrissPCHowManyDepositText
 	db "@"
@@ -565,7 +544,6 @@
 	text_jump _KrissPCNoRoomDepositText
 	db "@"
 
-
 KrisMailBoxMenu: ; 0x1597d
 	callba _KrisMailBoxMenu
 	xor a
@@ -572,80 +550,76 @@
 	ret
 ; 0x15985
 
-
-Function15985: ; 0x15985
+PCItemsJoypad: ; 0x15985
 	xor a
-	ld [wd0e3], a
-.asm_15989
+	ld [wSwitchItem], a
+.loop
 	ld a, [wSpriteUpdatesEnabled]
 	push af
 	ld a, $0
 	ld [wSpriteUpdatesEnabled], a
-	ld hl, MenuData15a08
+	ld hl, .PCItemsMenuData
 	call CopyMenuDataHeader
 	hlcoord 0, 0
-	ld b, $a
-	ld c, $12
+	ld b, 10
+	ld c, 18
 	call TextBox
-	ld a, [wd0d7]
+	ld a, [wPCItemsCursor]
 	ld [wMenuCursorBuffer], a
-	ld a, [wd0dd]
+	ld a, [wPCItemsScrollPosition]
 	ld [wMenuScrollPosition], a
 	call ScrollingMenu
 	ld a, [wMenuScrollPosition]
-	ld [wd0dd], a
+	ld [wPCItemsScrollPosition], a
 	ld a, [wMenuCursorY]
-	ld [wd0d7], a
+	ld [wPCItemsCursor], a
 	pop af
 	ld [wSpriteUpdatesEnabled], a
-	ld a, [wd0e3]
+	ld a, [wSwitchItem]
 	and a
-	jr nz, .asm_159d8
+	jr nz, .moving_stuff_around
 	ld a, [wMenuJoypad]
-	cp $2
-	jr z, .asm_15a06
-	cp $1
-	jr z, .asm_159fb
-	cp $4
-	jr z, .asm_159f2
-	jr .asm_159f8
+	cp B_BUTTON
+	jr z, .b_1
+	cp A_BUTTON
+	jr z, .a_1
+	cp SELECT
+	jr z, .select_1
+	jr .next
 
-.asm_159d8
+.moving_stuff_around
 	ld a, [wMenuJoypad]
-	cp $2
-	jr z, .asm_159e9
-	cp $1
-	jr z, .asm_159ef
-	cp $4
-	jr z, .asm_159ef
-	jr .asm_159f8
+	cp B_BUTTON
+	jr z, .b_2
+	cp A_BUTTON
+	jr z, .a_select_2
+	cp SELECT
+	jr z, .a_select_2
+	jr .next
 
-.asm_159e9
+.b_2
 	xor a
-	ld [wd0e3], a
-	jr .asm_159f8
+	ld [wSwitchItem], a
+	jr .next
 
-.asm_159ef
-	call Function156c7
-
-.asm_159f2
+.a_select_2
+	call PC_PlaySwapItemsSound
+.select_1
 	callba SwitchItemsInBag
+.next
+	jp .loop
 
-.asm_159f8
-	jp .asm_15989
-
-.asm_159fb
-	callba Function24706
+.a_1
+	callba ScrollingMenu_ClearLeftColumn
 	call PlaceHollowCursor
 	and a
 	ret
 
-.asm_15a06
+.b_1
 	scf
 	ret
-; 0x15a08
 
-MenuData15a08: ; 0x15a08
+.PCItemsMenuData
 	db %01000000
 	db  1,  4 ; start coords
 	db 10, 18 ; end coords
@@ -667,38 +641,37 @@
 	ret
 ; 15a27
 
-
-UnknownText_0x15a27: ; 0x15a27
+PokeCenterPCText_BootedUpPC: ; 0x15a27
 	; turned on the PC.
 	text_jump UnknownText_0x1c144d
 	db "@"
 ; 0x15a2c
 
-UnknownText_0x15a2c: ; 0x15a2c
+PokeCenterPCText_AccessWhosePC: ; 0x15a2c
 	; Access whose PC?
 	text_jump UnknownText_0x1c1462
 	db "@"
 ; 0x15a31
 
-UnknownText_0x15a31: ; 0x15a31
+PokeCenterPCText_AccessedBillsPC: ; 0x15a31
 	; BILL's PC accessed. #MON Storage System opened.
 	text_jump UnknownText_0x1c1474
 	db "@"
 ; 0x15a36
 
-UnknownText_0x15a36: ; 0x15a36
+PokeCenterPCText_AccessedOwnPC: ; 0x15a36
 	; Accessed own PC. Item Storage System opened.
 	text_jump UnknownText_0x1c14a4
 	db "@"
 ; 0x15a3b
 
-UnknownText_0x15a3b: ; 0x15a3b
+PokeCenterPCText_AccessedOaksPC: ; 0x15a3b
 	; PROF.OAK's PC accessed. #DEX Rating System opened.
 	text_jump UnknownText_0x1c14d2
 	db "@"
 ; 0x15a40
 
-UnknownText_0x15a40: ; 0x15a40
+PokeCenterPCText_LinkClosed: ; 0x15a40
 	; … Link closed…
 	text_jump UnknownText_0x1c1505
 	db "@"
--- a/engine/scrolling_menu.asm
+++ b/engine/scrolling_menu.asm
@@ -210,17 +210,17 @@
 	ret
 ; 24706
 
-Function24706: ; 24706 (9:4706)
+ScrollingMenu_ClearLeftColumn: ; 24706 (9:4706)
 	call MenuBoxCoord2Tile
 	ld de, SCREEN_WIDTH
 	add hl, de
 	ld de, 2 * SCREEN_WIDTH
 	ld a, [wMenuData2_ScrollingMenuHeight]
-.asm_24713
+.loop
 	ld [hl], " "
 	add hl, de
 	dec a
-	jr nz, .asm_24713
+	jr nz, .loop
 	ret
 
 InitScrollingMenuCursor: ; 2471a
--- a/engine/startmenu.asm
+++ b/engine/startmenu.asm
@@ -91,7 +91,7 @@
 	ld [MenuSelection], a
 .loop
 	call .PrintMenuAccount
-	call Function1f1a
+	call GetScrollingMenuJoypad
 	ld a, [wMenuJoypad]
 	cp B_BUTTON
 	jr z, .b
@@ -591,14 +591,14 @@
 	and a
 	ret
 
-Function129f4: ; 129f4
+TossItemFromPC: ; 129f4
 	push de
 	call PartyMonItemName
 	callba _CheckTossableItem
 	ld a, [wItemAttributeParamBuffer]
 	and a
-	jr nz, .asm_12a3f
-	ld hl, UnknownText_0x12a45
+	jr nz, .key_item
+	ld hl, .TossHowMany
 	call MenuTextBox
 	callba SelectQuantityToToss
 	push af
@@ -605,56 +605,52 @@
 	call CloseWindow
 	call ExitMenu
 	pop af
-	jr c, .asm_12a42
-	ld hl, UnknownText_0x12a4a
+	jr c, .quit
+	ld hl, .ConfirmToss
 	call MenuTextBox
 	call YesNoBox
 	push af
 	call ExitMenu
 	pop af
-	jr c, .asm_12a42
+	jr c, .quit
 	pop hl
 	ld a, [wd107]
 	call TossItem
 	call PartyMonItemName
-	ld hl, UnknownText_0x12a4f
+	ld hl, .TossedThisMany
 	call MenuTextBox
 	call ExitMenu
 	and a
 	ret
-.asm_12a3f
-	call Function12a54
-.asm_12a42
+
+.key_item
+	call .CantToss
+.quit
 	pop hl
 	scf
 	ret
-; 12a45 (4:6a45)
 
-UnknownText_0x12a45: ; 0x12a45
+.TossHowMany
 	; Toss out how many @ (S)?
 	text_jump UnknownText_0x1c1a90
 	db "@"
-; 0x12a4a
 
-UnknownText_0x12a4a: ; 0x12a4a
+.ConfirmToss
 	; Throw away @ @ (S)?
 	text_jump UnknownText_0x1c1aad
 	db "@"
-; 0x12a4f
 
-UnknownText_0x12a4f: ; 0x12a4f
+.TossedThisMany
 	; Discarded @ (S).
 	text_jump UnknownText_0x1c1aca
 	db "@"
-; 0x12a54
 
-Function12a54: ; 12a54 (4:6a54)
-	ld hl, UnknownText_0x12a5b
+.CantToss
+	ld hl, .TooImportantToToss
 	call MenuTextBoxBackup
 	ret
-; 12a5b (4:6a5b)
 
-UnknownText_0x12a5b: ; 0x12a5b
+.TooImportantToToss
 	; That's too impor- tant to toss out!
 	text_jump UnknownText_0x1c1adf
 	db "@"
@@ -830,7 +826,7 @@
 ; 12ba9
 
 
-.GiveItem: ; 12ba9
+.GiveItem
 
 	callba DepositSellInitPackBuffers
 
@@ -1168,7 +1164,7 @@
 ; 12dc9
 
 
-.MenuDataHeader: ; 0x12dc9
+.MenuDataHeader
 	db $40 ; flags
 	db 10, 12 ; start coords
 	db 17, 19 ; end coords
@@ -1176,7 +1172,7 @@
 	db 1 ; default option
 ; 0x12dd1
 
-.MenuData2: ; 0x12dd1
+.MenuData2
 	db $80 ; flags
 	db 3 ; items
 	db "READ@"
@@ -1185,37 +1181,37 @@
 ; 0x12de2
 
 
-.mailwilllosemessagetext: ; 0x12de2
+.mailwilllosemessagetext
 ; The MAIL will lose its message. OK?
 	text_jump UnknownText_0x1c1c22
 	db "@"
 ; 0x12de7
 
-.tookmailfrommontext: ; 0x12de7
+.tookmailfrommontext
 ; MAIL detached from <POKEMON>.
 	text_jump UnknownText_0x1c1c47
 	db "@"
 ; 0x12dec
 
-.bagfulltext: ; 0x12dec
+.bagfulltext
 ; There's no space for removing MAIL.
 	text_jump UnknownText_0x1c1c62
 	db "@"
 ; 0x12df1
 
-.sendmailtopctext: ; 0x12df1
+.sendmailtopctext
 ; Send the removed MAIL to your PC?
 	text_jump UnknownText_0x1c1c86
 	db "@"
 ; 0x12df6
 
-.mailboxfulltext: ; 0x12df6
+.mailboxfulltext
 ; Your PC's MAILBOX is full.
 	text_jump UnknownText_0x1c1ca9
 	db "@"
 ; 0x12dfb
 
-.sentmailtopctext: ; 0x12dfb
+.sentmailtopctext
 ; The MAIL was sent to your PC.
 	text_jump UnknownText_0x1c1cc4
 	db "@"
@@ -1392,13 +1388,13 @@
 	ret
 ; 12f00
 
-.Text_NotEnoughHP: ; 0x12f00
+.Text_NotEnoughHP
 	; Not enough HP!
 	text_jump UnknownText_0x1c1ce3
 	db "@"
 ; 0x12f05
 
-.CheckMonHasEnoughHP: ; 12f05
+.CheckMonHasEnoughHP
 ; Need to have at least (MaxHP / 5) HP left.
 	ld a, MON_MAXHP
 	call GetPartyParamLocation
@@ -1471,7 +1467,7 @@
 	ret
 ; 12f73
 
-.asm_12f73: ; 12f73
+.asm_12f73
 	call SetUpMoveScreenBG
 	ld de, DeleteMoveScreenAttrs
 	call SetMenuAttributes
@@ -1480,7 +1476,7 @@
 	set 6, [hl]
 	jr .asm_12f93
 
-.asm_12f86: ; 12f86
+.asm_12f86
 	call ScrollingMenuJoypad
 	bit 1, a
 	jp nz, .asm_12f9f
@@ -1487,20 +1483,20 @@
 	bit 0, a
 	jp nz, .asm_12f9c
 
-.asm_12f93: ; 12f93
+.asm_12f93
 	call PrepareToPlaceMoveData
 	call PlaceMoveData
 	jp .asm_12f86
 ; 12f9c
 
-.asm_12f9c: ; 12f9c
+.asm_12f9c
 	and a
 	jr .asm_12fa0
 
-.asm_12f9f: ; 12f9f
+.asm_12f9f
 	scf
 
-.asm_12fa0: ; 12fa0
+.asm_12fa0
 	push af
 	xor a
 	ld [wSwitchMon], a
@@ -1583,7 +1579,7 @@
 	ld de, String_1316b
 	call PlaceString
 	jp .joy_loop
-.b_button: ; 13038
+.b_button
 	call PlayClickSFX
 	call WaitSFX
 	ld a, [wMoveSwapBuffer]
@@ -1600,7 +1596,7 @@
 	jp .loop
 ; 1305b
 
-.d_right: ; 1305b
+.d_right
 	ld a, [wMoveSwapBuffer]
 	and a
 	jp nz, .joy_loop
@@ -1615,7 +1611,7 @@
 	jp z, .joy_loop
 	jp MoveScreenLoop
 
-.d_left: ; 13075
+.d_left
 	ld a, [wMoveSwapBuffer]
 	and a
 	jp nz, .joy_loop
@@ -1665,7 +1661,7 @@
 	jr .cycle_left_loop
 ; 130c6
 
-.a_button: ; 130c6
+.a_button
 	call PlayClickSFX
 	call WaitSFX
 	ld a, [wMoveSwapBuffer]
@@ -1716,7 +1712,7 @@
 	jp .loop
 ; 1313a
 
-.copy_move: ; 1313a
+.copy_move
 	push hl
 	ld a, [wMenuCursorY]
 	dec a
@@ -1739,7 +1735,7 @@
 	ret
 ; 13154
 
-.exit: ; 13154
+.exit
 	xor a
 	ld [wMoveSwapBuffer], a
 	ld hl, w2DMenuFlags1
@@ -1776,7 +1772,7 @@
 	ld a, [hl]
 	ld [wd265], a
 	ld e, $2
-	callba Function8e83f
+	callba LoadMenuMonIcon
 	hlcoord 0, 1
 	ld b, 9
 	ld c, 18
--- a/engine/tile_events.asm
+++ b/engine/tile_events.asm
@@ -21,17 +21,17 @@
 ; Else, set carry (immediate warp).
 	ld a, [PlayerStandingTile]
 	cp $70 ; Warp on down
-	jr z, .not_warp
+	jr z, .directional
 	cp $76 ; Warp on left
-	jr z, .not_warp
+	jr z, .directional
 	cp $78 ; Warp on up
-	jr z, .not_warp
+	jr z, .directional
 	cp $7e ; Warp on right
-	jr z, .not_warp
+	jr z, .directional
 	scf
 	ret
 
-.not_warp
+.directional
 	xor a
 	ret
 ; 149c6
--- a/engine/time.asm
+++ b/engine/time.asm
@@ -133,7 +133,7 @@
 ; 11485
 
 Special_SampleKenjiBreakCountdown: ; 11485
-; Generate a random number between 3 and 5
+; Generate a random number between 3 and 6
 	call Random
 	and 3
 	add 3
--- a/engine/trade/animation.asm
+++ b/engine/trade/animation.asm
@@ -1440,7 +1440,7 @@
 LoadTradeBubbleGFX: ; 2985a
 	call DelayFrame
 	ld e, $3
-	callab Function8e83f
+	callab LoadMenuMonIcon
 	ld de, TradeBubbleGFX
 	ld hl, VTiles0 tile $72
 	lb bc, BANK(TradeBubbleGFX), $4
--- a/event/mom.asm
+++ b/event/mom.asm
@@ -480,7 +480,7 @@
 	lb bc, PRINTNUM_MONEY | PRINTNUM_LEADINGZEROS | 3, 6
 	call PrintNum
 	call UpdateSprites
-	call Function3238
+	call CGBOnly_LoadEDTile
 	ret
 ; 1656b
 
--- a/event/poke_seer.asm
+++ b/event/poke_seer.asm
@@ -163,6 +163,7 @@
 	call ByteFill
 
 	; caught level
+	; Limited to between 1 and 63 for some reason.
 	ld a, [wSeerCaughtData]
 	and $3f
 	jr z, .unknown
--- a/home.asm
+++ b/home.asm
@@ -560,7 +560,7 @@
 	ret
 ; 3238
 
-Function3238:: ; 3238
+CGBOnly_LoadEDTile:: ; 3238
 	ld a, [hCGB]
 	and a
 	jr z, WaitBGMap
--- a/home/map.asm
+++ b/home/map.asm
@@ -1593,7 +1593,14 @@
 ; 2945
 
 .MovementPermissionsData ; 2945
-	db 1, 2, 4, 8, 9, 10, 5, 6
+	db 1 << DOWN
+	db 1 << UP
+	db 1 << LEFT
+	db 1 << RIGHT
+	db (1 << DOWN) | (1 << RIGHT)
+	db (1 << UP) | (1 << RIGHT)
+	db (1 << DOWN) | (1 << LEFT)
+	db (1 << UP) | (1 << LEFT)
 ; 294d
 
 .UpDown
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -232,7 +232,7 @@
 	call MenuFunc_1e7f
 	call MenuWriteText
 	call Function1eff
-	call Function1f23
+	call GetStaticMenuJoypad
 	call GetMenuJoypad
 	call MenuClickSound
 	ret
@@ -360,20 +360,20 @@
 ; 1f1a
 
 
-Function1f1a:: ; 1f1a
+GetScrollingMenuJoypad:: ; 1f1a
 	call ScrollingMenuJoypad
 	ld hl, wMenuJoypadFilter
 	and [hl]
-	jr Function1f2a
+	jr ContinueGettingMenuJoypad
 ; 1f23
 
-Function1f23:: ; 1f23
+GetStaticMenuJoypad:: ; 1f23
 	xor a
 	ld [wMenuJoypad], a
 	call StaticMenuJoypad
 ; 1f2a
 
-Function1f2a:: ; 1f2a
+ContinueGettingMenuJoypad:
 	bit A_BUTTON_F, a
 	jr nz, .a_button
 	bit B_BUTTON_F, a
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -4,9 +4,9 @@
 	ld [wMovementBufferCount], a
 	ld a, $0 ; useless
 	ld [wd004], a
-	ld a, $7
+	ld a, MovementBuffer % $100
 	ld [wd005], a
-	ld a, $d0
+	ld a, MovementBuffer / $100
 	ld [wd006], a
 	ret
 ; 1b35
--- a/macros/move_effect.asm
+++ b/macros/move_effect.asm
@@ -5,181 +5,181 @@
 
 	enum_start 1
 
-	command checkturn
-	command checkobedience
-	command usedmovetext
-	command doturn
-	command critical
-	command damagestats
-	command stab
-	command damagevariation
-	command checkhit
-	command lowersub
-	command hittargetnosub
-	command raisesub
-	command failuretext
-	command checkfaint
-	command criticaltext
-	command supereffectivetext
-	command checkdestinybond
-	command buildopponentrage
-	command poisontarget
-	command sleeptarget
-	command draintarget
-	command eatdream
-	command burntarget
-	command freezetarget
-	command paralyzetarget
-	command selfdestruct
-	command mirrormove
-	command statup
-	command statdown
-	command payday
-	command conversion
-	command resetstats
-	command storeenergy
-	command unleashenergy
-	command forceswitch
-	command endloop
-	command flinchtarget
-	command ohko
-	command recoil
-	command mist
-	command focusenergy
-	command confuse
-	command confusetarget
-	command heal
-	command transform
-	command screen
-	command poison
-	command paralyze
-	command substitute
-	command rechargenextturn
-	command mimic
-	command metronome
-	command leechseed
-	command splash
-	command disable
-	command cleartext
-	command charge
-	command checkcharge
-	command traptarget
-	command effect0x3c
-	command rampage
-	command checkrampage
-	command constantdamage
-	command counter
-	command encore
-	command painsplit
-	command snore
-	command conversion2
-	command lockon
-	command sketch
-	command defrostopponent
-	command sleeptalk
-	command destinybond
-	command spite
-	command falseswipe
-	command healbell
-	command kingsrock
-	command triplekick
-	command kickcounter
-	command thief
-	command arenatrap
-	command nightmare
-	command defrost
-	command curse
-	command protect
-	command spikes
-	command foresight
-	command perishsong
-	command startsandstorm
-	command endure
-	command checkcurl
-	command rolloutpower
-	command effect0x5d
-	command furycutter
-	command attract
-	command happinesspower
-	command present
-	command damagecalc
-	command frustrationpower
-	command safeguard
-	command checksafeguard
-	command getmagnitude
-	command batonpass
-	command pursuit
-	command clearhazards
-	command healmorn
-	command healday
-	command healnite
-	command hiddenpower
-	command startrain
-	command startsun
-	command attackup
-	command defenseup
-	command speedup
-	command specialattackup
-	command specialdefenseup
-	command accuracyup
-	command evasionup
-	command attackup2
-	command defenseup2
-	command speedup2
-	command specialattackup2
-	command specialdefenseup2
-	command accuracyup2
-	command evasionup2
-	command attackdown
-	command defensedown
-	command speeddown
-	command specialattackdown
-	command specialdefensedown
-	command accuracydown
-	command evasiondown
-	command attackdown2
-	command defensedown2
-	command speeddown2
-	command specialattackdown2
-	command specialdefensedown2
-	command accuracydown2
-	command evasiondown2
-	command statupmessage
-	command statdownmessage
-	command statupfailtext
-	command statdownfailtext
-	command effectchance
-	command statdownanim
-	command statupanim
-	command switchturn
-	command fakeout
-	command bellydrum
-	command psychup
-	command rage
-	command doubleflyingdamage
-	command doubleundergrounddamage
-	command mirrorcoat
-	command checkfuturesight
-	command futuresight
-	command doubleminimizedamage
-	command skipsuncharge
-	command thunderaccuracy
-	command teleport
-	command beatup
-	command ragedamage
-	command resettypematchup
-	command allstatsup
-	command effect0xa5
-	command raisesubnoanim
-	command lowersubnoanim
-	command effect0xa8
-	command clearmissdamage
-	command movedelay
-	command hittarget
-	command tristatuschance
-	command supereffectivelooptext
-	command startloop
-	command curl
+	command checkturn               ; 01
+	command checkobedience          ; 02
+	command usedmovetext            ; 03
+	command doturn                  ; 04
+	command critical                ; 05
+	command damagestats             ; 06
+	command stab                    ; 07
+	command damagevariation         ; 08
+	command checkhit                ; 09
+	command lowersub                ; 0a
+	command hittargetnosub          ; 0b
+	command raisesub                ; 0c
+	command failuretext             ; 0d
+	command checkfaint              ; 0e
+	command criticaltext            ; 0f
+	command supereffectivetext      ; 10
+	command checkdestinybond        ; 11
+	command buildopponentrage       ; 12
+	command poisontarget            ; 13
+	command sleeptarget             ; 14
+	command draintarget             ; 15
+	command eatdream                ; 16
+	command burntarget              ; 17
+	command freezetarget            ; 18
+	command paralyzetarget          ; 19
+	command selfdestruct            ; 1a
+	command mirrormove              ; 1b
+	command statup                  ; 1c
+	command statdown                ; 1d
+	command payday                  ; 1e
+	command conversion              ; 1f
+	command resetstats              ; 20
+	command storeenergy             ; 21
+	command unleashenergy           ; 22
+	command forceswitch             ; 23
+	command endloop                 ; 24
+	command flinchtarget            ; 25
+	command ohko                    ; 26
+	command recoil                  ; 27
+	command mist                    ; 28
+	command focusenergy             ; 29
+	command confuse                 ; 2a
+	command confusetarget           ; 2b
+	command heal                    ; 2c
+	command transform               ; 2d
+	command screen                  ; 2e
+	command poison                  ; 2f
+	command paralyze                ; 30
+	command substitute              ; 31
+	command rechargenextturn        ; 32
+	command mimic                   ; 33
+	command metronome               ; 34
+	command leechseed               ; 35
+	command splash                  ; 36
+	command disable                 ; 37
+	command cleartext               ; 38
+	command charge                  ; 39
+	command checkcharge             ; 3a
+	command traptarget              ; 3b
+	command effect0x3c              ; 3c
+	command rampage                 ; 3d
+	command checkrampage            ; 3e
+	command constantdamage          ; 3f
+	command counter                 ; 40
+	command encore                  ; 41
+	command painsplit               ; 42
+	command snore                   ; 43
+	command conversion2             ; 44
+	command lockon                  ; 45
+	command sketch                  ; 46
+	command defrostopponent         ; 47
+	command sleeptalk               ; 48
+	command destinybond             ; 49
+	command spite                   ; 4a
+	command falseswipe              ; 4b
+	command healbell                ; 4c
+	command kingsrock               ; 4d
+	command triplekick              ; 4e
+	command kickcounter             ; 4f
+	command thief                   ; 50
+	command arenatrap               ; 51
+	command nightmare               ; 52
+	command defrost                 ; 53
+	command curse                   ; 54
+	command protect                 ; 55
+	command spikes                  ; 56
+	command foresight               ; 57
+	command perishsong              ; 58
+	command startsandstorm          ; 59
+	command endure                  ; 5a
+	command checkcurl               ; 5b
+	command rolloutpower            ; 5c
+	command effect0x5d              ; 5d
+	command furycutter              ; 5e
+	command attract                 ; 5f
+	command happinesspower          ; 60
+	command present                 ; 61
+	command damagecalc              ; 62
+	command frustrationpower        ; 63
+	command safeguard               ; 64
+	command checksafeguard          ; 65
+	command getmagnitude            ; 66
+	command batonpass               ; 67
+	command pursuit                 ; 68
+	command clearhazards            ; 69
+	command healmorn                ; 6a
+	command healday                 ; 6b
+	command healnite                ; 6c
+	command hiddenpower             ; 6d
+	command startrain               ; 6e
+	command startsun                ; 6f
+	command attackup                ; 70
+	command defenseup               ; 71
+	command speedup                 ; 72
+	command specialattackup         ; 73
+	command specialdefenseup        ; 74
+	command accuracyup              ; 75
+	command evasionup               ; 76
+	command attackup2               ; 77
+	command defenseup2              ; 78
+	command speedup2                ; 79
+	command specialattackup2        ; 7a
+	command specialdefenseup2       ; 7b
+	command accuracyup2             ; 7c
+	command evasionup2              ; 7d
+	command attackdown              ; 7e
+	command defensedown             ; 7f
+	command speeddown               ; 80
+	command specialattackdown       ; 81
+	command specialdefensedown      ; 82
+	command accuracydown            ; 83
+	command evasiondown             ; 84
+	command attackdown2             ; 85
+	command defensedown2            ; 86
+	command speeddown2              ; 87
+	command specialattackdown2      ; 88
+	command specialdefensedown2     ; 89
+	command accuracydown2           ; 8a
+	command evasiondown2            ; 8b
+	command statupmessage           ; 8c
+	command statdownmessage         ; 8d
+	command statupfailtext          ; 8e
+	command statdownfailtext        ; 8f
+	command effectchance            ; 90
+	command statdownanim            ; 91
+	command statupanim              ; 92
+	command switchturn              ; 93
+	command fakeout                 ; 94
+	command bellydrum               ; 95
+	command psychup                 ; 96
+	command rage                    ; 97
+	command doubleflyingdamage      ; 98
+	command doubleundergrounddamage ; 99
+	command mirrorcoat              ; 9a
+	command checkfuturesight        ; 9b
+	command futuresight             ; 9c
+	command doubleminimizedamage    ; 9d
+	command skipsuncharge           ; 9e
+	command thunderaccuracy         ; 9f
+	command teleport                ; a0
+	command beatup                  ; a1
+	command ragedamage              ; a2
+	command resettypematchup        ; a3
+	command allstatsup              ; a4
+	command effect0xa5              ; a5
+	command raisesubnoanim          ; a6
+	command lowersubnoanim          ; a7
+	command effect0xa8              ; a8
+	command clearmissdamage         ; a9
+	command movedelay               ; aa
+	command hittarget               ; ab
+	command tristatuschance         ; ac
+	command supereffectivelooptext  ; ad
+	command startloop               ; ae
+	command curl                    ; af
 
 	enum_start -1, -1
 	command endmove
--- a/macros/movement.asm
+++ b/macros/movement.asm
@@ -281,7 +281,15 @@
 	db movement_fast_jump_step_right ; $37
 	endm
 
-__enum__ = $3a
+	enum movement_remove_sliding
+remove_sliding: macro
+	db movement_remove_sliding ; $38
+	endm
+
+	enum movement_set_sliding
+set_sliding: macro
+	db movement_set_sliding ; $39
+	endm
 
 	enum movement_remove_fixed_facing
 remove_fixed_facing: macro
--- a/macros/sound.asm
+++ b/macros/sound.asm
@@ -15,7 +15,7 @@
 	endm
 
 musicheader: macro
-	; number of tracks, ??, address
+	; number of tracks, track idx, address
 	dbw ((\1 - 1) << 6) + (\2 - 1), \3
 	endm
 
--- a/main.asm
+++ b/main.asm
@@ -3799,7 +3799,7 @@
 	ld hl, Script_GetOffBike
 	ld de, Script_GetOffBike_Register
 	call .CheckIfRegistered
-	ld a, $3
+	ld a, BANK(Script_GetOffBike)
 	jr .done
 
 .CantGetOffBike
@@ -6275,7 +6275,7 @@
 	call ClearSprites
 	ret
 
-FindFirstAliveMon: ; 2ee2f
+FindFirstAliveMonAndStartBattle: ; 2ee2f
 	xor a
 	ld [hMapAnims], a
 	call DelayFrame
@@ -10522,8 +10522,8 @@
 INCLUDE "event/field_moves.asm"
 INCLUDE "event/magnet_train.asm"
 
-Function8cf4f: ; 8cf4f
-	call Function3238
+BattleStart_LoadEDTile: ; 8cf4f
+	call CGBOnly_LoadEDTile
 	ret
 
 INCLUDE "engine/sprites.asm"
--- a/maps/BurnedTowerB1F.asm
+++ b/maps/BurnedTowerB1F.asm
@@ -130,46 +130,46 @@
 	jumpstd strengthboulder
 
 MovementData_0x186236:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_down
 	fast_jump_step_left
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x18623b:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_right
 	fast_jump_step_down
 	fast_jump_step_right
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x186241:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_right
 	fast_jump_step_down
 	fast_jump_step_down
 	fast_jump_step_left
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x186248:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_left
 	fast_jump_step_up
 	big_step_up
 	fast_jump_step_right
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x18624f:
-	db $39 ; movement
+	set_sliding
 	big_step_down
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x186253:
-	db $39 ; movement
+	set_sliding
 	big_step_up
 	fast_jump_step_right
 	fast_jump_step_down
@@ -176,7 +176,7 @@
 	fast_jump_step_down
 	fast_jump_step_down
 	fast_jump_step_down
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x18625c:
--- a/maps/CianwoodGym.asm
+++ b/maps/CianwoodGym.asm
@@ -21,15 +21,15 @@
 	opentext
 	checkevent EVENT_BEAT_CHUCK
 	iftrue .FightDone
-	writetext UnknownText_0x9d6f9
+	writetext ChuckIntroText1
 	waitbutton
 	closetext
 	spriteface CIANWOODGYM_CHUCK, RIGHT
 	opentext
-	writetext UnknownText_0x9d76f
+	writetext ChuckIntroText2
 	waitbutton
 	closetext
-	applymovement CIANWOODGYM_BOULDER1, MovementData_0x9d6f3
+	applymovement CIANWOODGYM_BOULDER1, CianwoodGymMovement_ChuckChucksBoulder
 	playsound SFX_STRENGTH
 	earthquake 80
 	disappear CIANWOODGYM_BOULDER1
@@ -36,16 +36,16 @@
 	pause 30
 	faceplayer
 	opentext
-	writetext UnknownText_0x9d78a
+	writetext ChuckIntroText3
 	waitbutton
 	closetext
-	winlosstext UnknownText_0x9d7f6, 0
+	winlosstext ChuckLossText, 0
 	loadtrainer CHUCK, 1
 	startbattle
 	reloadmapafterbattle
 	setevent EVENT_BEAT_CHUCK
 	opentext
-	writetext UnknownText_0x9d835
+	writetext GetStormBadgeText
 	playsound SFX_GET_BADGE
 	waitsfx
 	setflag ENGINE_STORMBADGE
@@ -53,25 +53,25 @@
 	scall CianwoodGymTriggerRockets
 .FightDone
 	checkevent EVENT_GOT_TM01_DYNAMICPUNCH
-	iftrue UnknownScript_0x9d67b
+	iftrue .AlreadyGotTM
 	setevent EVENT_BEAT_BLACKBELT_YOSHI
 	setevent EVENT_BEAT_BLACKBELT_LAO
 	setevent EVENT_BEAT_BLACKBELT_NOB
 	setevent EVENT_BEAT_BLACKBELT_LUNG
-	writetext UnknownText_0x9d84d
+	writetext ChuckExplainBadgeText
 	buttonsound
 	verbosegiveitem TM_DYNAMICPUNCH
-	iffalse UnknownScript_0x9d67f
+	iffalse .BagFull
 	setevent EVENT_GOT_TM01_DYNAMICPUNCH
-	writetext UnknownText_0x9d8da
+	writetext ChuckExplainTMText
 	waitbutton
 	closetext
 	end
 
-UnknownScript_0x9d67b:
-	writetext UnknownText_0x9d930
+.AlreadyGotTM:
+	writetext ChuckAfterText
 	waitbutton
-UnknownScript_0x9d67f:
+.BagFull:
 	closetext
 	end
 
@@ -87,45 +87,45 @@
 	jumpstd radiotowerrockets
 
 TrainerBlackbeltYoshi:
-	trainer EVENT_BEAT_BLACKBELT_YOSHI, BLACKBELT_T, YOSHI, BlackbeltYoshiSeenText, BlackbeltYoshiBeatenText, 0, BlackbeltYoshiScript
+	trainer EVENT_BEAT_BLACKBELT_YOSHI, BLACKBELT_T, YOSHI, BlackbeltYoshiSeenText, BlackbeltYoshiBeatenText, 0, .Script
 
-BlackbeltYoshiScript:
+.Script:
 	end_if_just_battled
 	opentext
-	writetext UnknownText_0x9d9fa
+	writetext BlackbeltYoshiAfterText
 	waitbutton
 	closetext
 	end
 
 TrainerBlackbeltLao:
-	trainer EVENT_BEAT_BLACKBELT_LAO, BLACKBELT_T, LAO, BlackbeltLaoSeenText, BlackbeltLaoBeatenText, 0, BlackbeltLaoScript
+	trainer EVENT_BEAT_BLACKBELT_LAO, BLACKBELT_T, LAO, BlackbeltLaoSeenText, BlackbeltLaoBeatenText, 0, .Script
 
-BlackbeltLaoScript:
+.Script:
 	end_if_just_battled
 	opentext
-	writetext UnknownText_0x9da61
+	writetext BlackbeltLaoAfterText
 	waitbutton
 	closetext
 	end
 
 TrainerBlackbeltNob:
-	trainer EVENT_BEAT_BLACKBELT_NOB, BLACKBELT_T, NOB, BlackbeltNobSeenText, BlackbeltNobBeatenText, 0, BlackbeltNobScript
+	trainer EVENT_BEAT_BLACKBELT_NOB, BLACKBELT_T, NOB, BlackbeltNobSeenText, BlackbeltNobBeatenText, 0, .Script
 
-BlackbeltNobScript:
+.Script:
 	end_if_just_battled
 	opentext
-	writetext UnknownText_0x9dac0
+	writetext BlackbeltNobAfterText
 	waitbutton
 	closetext
 	end
 
 TrainerBlackbeltLung:
-	trainer EVENT_BEAT_BLACKBELT_LUNG, BLACKBELT_T, LUNG, BlackbeltLungSeenText, BlackbeltLungBeatenText, 0, BlackbeltLungScript
+	trainer EVENT_BEAT_BLACKBELT_LUNG, BLACKBELT_T, LUNG, BlackbeltLungSeenText, BlackbeltLungBeatenText, 0, .Script
 
-BlackbeltLungScript:
+.Script:
 	end_if_just_battled
 	opentext
-	writetext UnknownText_0x9db14
+	writetext BlackbeltLungAfterText
 	waitbutton
 	closetext
 	end
@@ -141,15 +141,15 @@
 	trainertotext CHUCK, 1, $1
 	jumpstd gymstatue2
 
-MovementData_0x9d6f3:
-	db $39 ; movement
+CianwoodGymMovement_ChuckChucksBoulder:
+	set_sliding
 	big_step_left
 	big_step_up
 	fast_jump_step_right
-	db $38 ; movement
+	remove_sliding
 	step_end
 
-UnknownText_0x9d6f9:
+ChuckIntroText1:
 	text "WAHAHAH!"
 
 	para "So you've come"
@@ -165,7 +165,7 @@
 	para "Watch this!"
 	done
 
-UnknownText_0x9d76f:
+ChuckIntroText2:
 	text "CHUCK: Urggh!"
 	line "…"
 
@@ -172,7 +172,7 @@
 	para "Oooarrgh!"
 	done
 
-UnknownText_0x9d78a:
+ChuckIntroText3:
 	text "There! Scared now,"
 	line "are you?"
 
@@ -186,7 +186,7 @@
 	line "do battle!"
 	done
 
-UnknownText_0x9d7f6:
+ChuckLossText:
 	text "Wha? Huh?"
 	line "I lost?"
 
@@ -195,12 +195,12 @@
 	cont "STORMBADGE!"
 	done
 
-UnknownText_0x9d835:
+GetStormBadgeText:
 	text "<PLAYER> received"
 	line "STORMBADGE."
 	done
 
-UnknownText_0x9d84d:
+ChuckExplainBadgeText:
 	text "STORMBADGE makes"
 	line "all #MON up to"
 
@@ -217,7 +217,7 @@
 	line "too!"
 	done
 
-UnknownText_0x9d8da:
+ChuckExplainTMText:
 	text "That is DYNAMIC-"
 	line "PUNCH."
 
@@ -228,7 +228,7 @@
 	line "confusion!"
 	done
 
-UnknownText_0x9d930:
+ChuckAfterText:
 	text "WAHAHAH! I enjoyed"
 	line "battling you!"
 
@@ -253,7 +253,7 @@
 	text "This isn't real!"
 	done
 
-UnknownText_0x9d9fa:
+BlackbeltYoshiAfterText:
 	text "You seem to have a"
 	line "strong bond with"
 	cont "your #MON too!"
@@ -268,7 +268,7 @@
 	text "That's shocking!"
 	done
 
-UnknownText_0x9da61:
+BlackbeltLaoAfterText:
 	text "Fighting #MON"
 	line "are afraid of psy-"
 	cont "chics…"
@@ -284,7 +284,7 @@
 	text "…"
 	done
 
-UnknownText_0x9dac0:
+BlackbeltNobAfterText:
 	text "I lost! "
 	line "I'm speechless!"
 	done
@@ -299,7 +299,7 @@
 	text "I got shattered!"
 	done
 
-UnknownText_0x9db14:
+BlackbeltLungAfterText:
 	text "My #MON lost…"
 	line "My… my pride is"
 	cont "shattered…"
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -8,8 +8,8 @@
 	db 2
 
 	; triggers
-	dw UnknownScript_0x180e39, 0
-	dw UnknownScript_0x180e3d, 0
+	dw .Trigger0, 0
+	dw .Trigger1, 0
 
 .MapCallbacks:
 	db 1
@@ -16,28 +16,28 @@
 
 	; callbacks
 
-	dbw MAPCALLBACK_TILES, UnknownScript_0x180e3e
+	dbw MAPCALLBACK_TILES, .CheckDoor
 
-UnknownScript_0x180e39:
-	priorityjump UnknownScript_0x180e53
+.Trigger0:
+	priorityjump LancesRoom_PlayerWalksIn_DoorsCloseBehind
 	end
 
-UnknownScript_0x180e3d:
+.Trigger1:
 	end
 
-UnknownScript_0x180e3e:
+.CheckDoor:
 	checkevent EVENT_LANCES_ROOM_ENTRANCE_CLOSED
-	iffalse UnknownScript_0x180e48
+	iffalse .LanceEntranceOpen
 	changeblock $4, $16, $34
-UnknownScript_0x180e48:
+.LanceEntranceOpen:
 	checkevent EVENT_LANCES_ROOM_EXIT_OPEN
-	iffalse UnknownScript_0x180e52
+	iffalse .LanceExitClosed
 	changeblock $4, $0, $b
-UnknownScript_0x180e52:
+.LanceExitClosed:
 	return
 
-UnknownScript_0x180e53:
-	applymovement PLAYER, MovementData_0x180f33
+LancesRoom_PlayerWalksIn_DoorsCloseBehind:
+	applymovement PLAYER, LancesRoom_PlayerWalksInMovementData
 	refreshscreen $86
 	playsound SFX_STRENGTH
 	earthquake 80
@@ -48,21 +48,21 @@
 	setevent EVENT_LANCES_ROOM_ENTRANCE_CLOSED
 	end
 
-UnknownScript_0x180e6a:
+Script_ApproachLanceFromLeft:
 	special Special_FadeOutMusic
-	applymovement PLAYER, MovementData_0x180f38
+	applymovement PLAYER, MovementData_ApproachLanceFromLeft
 	jump LanceScript_0x180e7b
 
-UnknownScript_0x180e74:
+Script_ApproachLanceFromRight:
 	special Special_FadeOutMusic
-	applymovement PLAYER, MovementData_0x180f3c
+	applymovement PLAYER, MovementData_ApproachLanceFromRight
 LanceScript_0x180e7b:
 	spriteface LANCESROOM_LANCE, LEFT
 	opentext
-	writetext UnknownText_0x180f67
+	writetext LanceBattleIntroText
 	waitbutton
 	closetext
-	winlosstext UnknownText_0x1810a4, 0
+	winlosstext LanceBattleWinText, 0
 	setlasttalked LANCESROOM_LANCE
 	loadtrainer CHAMPION, LANCE
 	startbattle
@@ -70,7 +70,7 @@
 	reloadmapafterbattle
 	setevent EVENT_BEAT_CHAMPION_LANCE
 	opentext
-	writetext UnknownText_0x181132
+	writetext LanceBattleAfterText
 	waitbutton
 	closetext
 	playsound SFX_ENTER_DOOR
@@ -85,15 +85,15 @@
 	pause 10
 	spriteface PLAYER, DOWN
 	appear LANCESROOM_MARY
-	applymovement LANCESROOM_MARY, MovementData_0x180f41
+	applymovement LANCESROOM_MARY, LancesRoomMovementData_MaryRushesIn
 	opentext
 	writetext UnknownText_0x1811dd
 	waitbutton
 	closetext
 	appear LANCESROOM_OAK
-	applymovement LANCESROOM_OAK, MovementData_0x180f46
+	applymovement LANCESROOM_OAK, LancesRoomMovementData_OakWalksIn
 	follow LANCESROOM_MARY, LANCESROOM_OAK
-	applymovement LANCESROOM_MARY, MovementData_0x180f49
+	applymovement LANCESROOM_MARY, LancesRoomMovementData_MaryYieldsToOak
 	stopfollow
 	spriteface LANCESROOM_OAK, UP
 	spriteface LANCESROOM_LANCE, LEFT
@@ -101,13 +101,13 @@
 	writetext UnknownText_0x18121b
 	waitbutton
 	closetext
-	applymovement LANCESROOM_MARY, MovementData_0x180f4c
+	applymovement LANCESROOM_MARY, LancesRoomMovementData_MaryInterviewChampion
 	spriteface PLAYER, LEFT
 	opentext
 	writetext UnknownText_0x18134b
 	waitbutton
 	closetext
-	applymovement LANCESROOM_LANCE, MovementData_0x180f4f
+	applymovement LANCESROOM_LANCE, LancesRoomMovementData_LancePositionsSelfToGuidePlayerAway
 	spriteface PLAYER, UP
 	opentext
 	writetext UnknownText_0x18137b
@@ -116,26 +116,26 @@
 	follow LANCESROOM_LANCE, PLAYER
 	spriteface LANCESROOM_MARY, UP
 	spriteface LANCESROOM_OAK, UP
-	applymovement LANCESROOM_LANCE, MovementData_0x180f53
+	applymovement LANCESROOM_LANCE, LancesRoomMovementData_LanceLeadsPlayerToHallOfFame
 	stopfollow
 	playsound SFX_EXIT_BUILDING
 	disappear LANCESROOM_LANCE
-	applymovement PLAYER, MovementData_0x180f55
+	applymovement PLAYER, LancesRoomMovementData_PlayerExits
 	playsound SFX_EXIT_BUILDING
 	disappear PLAYER
-	applymovement LANCESROOM_MARY, MovementData_0x180f57
+	applymovement LANCESROOM_MARY, LancesRoomMovementData_MaryTriesToFollow
 	showemote EMOTE_SHOCK, LANCESROOM_MARY, 15
 	opentext
 	writetext UnknownText_0x1813c5
 	pause 30
 	closetext
-	applymovement LANCESROOM_MARY, MovementData_0x180f5b
+	applymovement LANCESROOM_MARY, LancesRoomMovementData_MaryRunsBackAndForth
 	special FadeOutPalettes
 	pause 15
 	warpfacing UP, HALL_OF_FAME, $4, $d
 	end
 
-MovementData_0x180f33:
+LancesRoom_PlayerWalksInMovementData:
 	step_up
 	step_up
 	step_up
@@ -142,13 +142,13 @@
 	step_up
 	step_end
 
-MovementData_0x180f38:
+MovementData_ApproachLanceFromLeft:
 	step_up
 	step_up
 	turn_head_right
 	step_end
 
-MovementData_0x180f3c:
+MovementData_ApproachLanceFromRight:
 	step_up
 	step_left
 	step_up
@@ -155,7 +155,7 @@
 	turn_head_right
 	step_end
 
-MovementData_0x180f41:
+LancesRoomMovementData_MaryRushesIn:
 	big_step_up
 	big_step_up
 	big_step_up
@@ -162,42 +162,42 @@
 	turn_head_down
 	step_end
 
-MovementData_0x180f46:
+LancesRoomMovementData_OakWalksIn:
 	step_up
 	step_up
 	step_end
 
-MovementData_0x180f49:
+LancesRoomMovementData_MaryYieldsToOak:
 	step_left
 	turn_head_right
 	step_end
 
-MovementData_0x180f4c:
+LancesRoomMovementData_MaryInterviewChampion:
 	big_step_up
 	turn_head_right
 	step_end
 
-MovementData_0x180f4f:
+LancesRoomMovementData_LancePositionsSelfToGuidePlayerAway:
 	step_up
 	step_left
 	turn_head_down
 	step_end
 
-MovementData_0x180f53:
+LancesRoomMovementData_LanceLeadsPlayerToHallOfFame:
 	step_up
 	step_end
 
-MovementData_0x180f55:
+LancesRoomMovementData_PlayerExits:
 	step_up
 	step_end
 
-MovementData_0x180f57:
+LancesRoomMovementData_MaryTriesToFollow:
 	step_up
 	step_right
 	turn_head_up
 	step_end
 
-MovementData_0x180f5b:
+LancesRoomMovementData_MaryRunsBackAndForth:
 	big_step_right
 	big_step_right
 	big_step_left
@@ -211,7 +211,7 @@
 	turn_head_up
 	step_end
 
-UnknownText_0x180f67:
+LanceBattleIntroText:
 	text "LANCE: I've been"
 	line "waiting for you."
 
@@ -243,7 +243,7 @@
 	cont "your challenge!"
 	done
 
-UnknownText_0x1810a4:
+LanceBattleWinText:
 	text "…It's over."
 
 	para "But it's an odd"
@@ -260,7 +260,7 @@
 	line "CHAMPION!"
 	done
 
-UnknownText_0x181132:
+LanceBattleAfterText:
 	text "…Whew."
 
 	para "You have become"
@@ -355,8 +355,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 1, $5, $4, $0, UnknownScript_0x180e6a, $0, $0
-	xy_trigger 1, $5, $5, $0, UnknownScript_0x180e74, $0, $0
+	xy_trigger 1, $5, $4, $0, Script_ApproachLanceFromLeft, $0, $0
+	xy_trigger 1, $5, $5, $0, Script_ApproachLanceFromRight, $0, $0
 
 .Signposts:
 	db 0
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -14,8 +14,8 @@
 	db 2
 
 	; triggers
-	dw UnknownScript_0x19400d, 0
-	dw UnknownScript_0x19400e, 0
+	dw .Trigger0, 0
+	dw .Trigger1, 0
 
 .MapCallbacks:
 	db 1
@@ -22,15 +22,15 @@
 
 	; callbacks
 
-	dbw MAPCALLBACK_OBJECTS, ArthurCallback
+	dbw MAPCALLBACK_OBJECTS, .ArthurCallback
 
-UnknownScript_0x19400d:
+.Trigger0:
 	end
 
-UnknownScript_0x19400e:
+.Trigger1:
 	end
 
-ArthurCallback:
+.ArthurCallback:
 	checkcode VAR_WEEKDAY
 	if_equal THURSDAY, .ArthurAppears
 	disappear ROUTE36_YOUNGSTER3
@@ -40,12 +40,12 @@
 	appear ROUTE36_YOUNGSTER3
 	return
 
-UnknownScript_0x19401b:
+Route36SuicuneTrigger:
 	showemote EMOTE_SHOCK, PLAYER, 15
 	pause 15
 	playsound SFX_WARP_FROM
 	spriteface PLAYER, UP
-	applymovement ROUTE36_SUICUNE, MovementData_0x194262
+	applymovement ROUTE36_SUICUNE, Route36SuicuneMovement
 	disappear ROUTE36_SUICUNE
 	spriteface PLAYER, DOWN
 	pause 10
@@ -56,48 +56,48 @@
 
 WeirdTreeScript_0x19403c:
 	checkitem SQUIRTBOTTLE
-	iftrue UnknownScript_0x19404a
+	iftrue .HaveSquirtbottle
 	waitsfx
 	playsound SFX_SANDSTORM
-	applymovement ROUTE36_WEIRD_TREE, MovementData_0x194249
+	applymovement ROUTE36_WEIRD_TREE, WeirdTreeMovement_Shake
 	end
 
-UnknownScript_0x19404a:
+.HaveSquirtbottle:
 	opentext
-	writetext UnknownText_0x19426b
+	writetext WeirdTreeText_AskUseBottle
 	yesorno
-	iffalse UnknownScript_0x194079
+	iffalse DidntWaterSudowoodo
 	closetext
 	; fallthrough
 
 WateredWeirdTreeScript::
 	opentext
-	writetext UnknownText_0x194290
+	writetext WeirdTreeText_PlayerUsedBottle
 	waitbutton
 	closetext
 	waitsfx
 	playsound SFX_SANDSTORM
-	applymovement ROUTE36_WEIRD_TREE, MovementData_0x194249
+	applymovement ROUTE36_WEIRD_TREE, WeirdTreeMovement_Shake
 	opentext
-	writetext UnknownText_0x1942aa
+	writetext WeirdTreeText_DidntLikeTheBottle
 	waitbutton
 	closetext
 	loadwildmon SUDOWOODO, 20
 	startbattle
 	setevent EVENT_FOUGHT_SUDOWOODO
-	if_equal $2, UnknownScript_0x19407b
+	if_equal $2, DidntCatchSudowoodo
 	disappear ROUTE36_WEIRD_TREE
 	variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
 	reloadmapafterbattle
 	end
 
-UnknownScript_0x194079:
+DidntWaterSudowoodo:
 	closetext
 	end
 
-UnknownScript_0x19407b:
+DidntCatchSudowoodo:
 	reloadmapafterbattle
-	applymovement ROUTE36_WEIRD_TREE, MovementData_0x19424b
+	applymovement ROUTE36_WEIRD_TREE, WeirdTreeMovement_Flee
 	disappear ROUTE36_WEIRD_TREE
 	variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
 	special RunCallback_04
@@ -104,55 +104,55 @@
 	special RefreshSprites
 	end
 
-LassScript_0x19408c:
+Route36FloriaScript:
 	faceplayer
 	opentext
 	checkevent EVENT_TALKED_TO_FLORIA_AT_FLOWER_SHOP
-	iftrue UnknownScript_0x1940b3
+	iftrue .TalkedToFloriaAtFlowerShop
 	setevent EVENT_MET_FLORIA
-	writetext UnknownText_0x1942f1
+	writetext Route36FloriaText1
 	waitbutton
 	closetext
 	clearevent EVENT_FLORIA_AT_FLOWER_SHOP
 	checkcode VAR_FACING
-	if_equal UP, UnknownScript_0x1940ac
-	applymovement ROUTE36_LASS2, MovementData_0x19424e
+	if_equal UP, .Depart2
+	applymovement ROUTE36_LASS2, Route36FloriaDepartureMovement1
 	disappear ROUTE36_LASS2
 	end
 
-UnknownScript_0x1940ac:
-	applymovement ROUTE36_LASS2, MovementData_0x194258
+.Depart2:
+	applymovement ROUTE36_LASS2, Route36FloriaDepartureMovement2
 	disappear ROUTE36_LASS2
 	end
 
-UnknownScript_0x1940b3:
-	writetext UnknownText_0x1943ed
+.TalkedToFloriaAtFlowerShop:
+	writetext Route36FloriaText2
 	waitbutton
 	closetext
 	end
 
-FisherScript_0x1940b9:
+Route36RockSmashGuyScript:
 	faceplayer
 	opentext
 	checkevent EVENT_GOT_TM08_ROCK_SMASH
-	iftrue UnknownScript_0x1940da
+	iftrue .AlreadyGotRockSmash
 	checkevent EVENT_FOUGHT_SUDOWOODO
-	iftrue UnknownScript_0x1940cd
-	writetext UnknownText_0x19446f
+	iftrue .ClearedSudowoodo
+	writetext RockSmashGuyText1
 	waitbutton
 	closetext
 	end
 
-UnknownScript_0x1940cd:
-	writetext UnknownText_0x1944d0
+.ClearedSudowoodo:
+	writetext RockSmashGuyText2
 	buttonsound
 	verbosegiveitem TM_ROCK_SMASH
-	iffalse UnknownScript_0x1940de
+	iffalse .NoRoomForTM
 	setevent EVENT_GOT_TM08_ROCK_SMASH
-UnknownScript_0x1940da:
-	writetext UnknownText_0x19452c
+.AlreadyGotRockSmash:
+	writetext RockSmashGuyText3
 	waitbutton
-UnknownScript_0x1940de:
+.NoRoomForTM:
 	closetext
 	end
 
@@ -160,13 +160,13 @@
 	faceplayer
 	opentext
 	checkevent EVENT_FOUGHT_SUDOWOODO
-	iftrue UnknownScript_0x1940ee
+	iftrue .ClearedSudowoodo
 	writetext UnknownText_0x194626
 	waitbutton
 	closetext
 	end
 
-UnknownScript_0x1940ee:
+.ClearedSudowoodo:
 	writetext UnknownText_0x19469e
 	waitbutton
 	closetext
@@ -372,16 +372,16 @@
 FruitTreeScript_0x194247:
 	fruittree FRUITTREE_ROUTE_36
 
-MovementData_0x194249:
+WeirdTreeMovement_Shake:
 	db $56 ; movement
 	step_end
 
-MovementData_0x19424b:
+WeirdTreeMovement_Flee:
 	fast_jump_step_up
 	fast_jump_step_up
 	step_end
 
-MovementData_0x19424e:
+Route36FloriaDepartureMovement1:
 	step_down
 	step_down
 	step_down
@@ -393,7 +393,7 @@
 	step_left
 	step_end
 
-MovementData_0x194258:
+Route36FloriaDepartureMovement2:
 	step_left
 	step_down
 	step_down
@@ -405,8 +405,8 @@
 	step_left
 	step_end
 
-MovementData_0x194262:
-	db $39 ; movement
+Route36SuicuneMovement:
+	set_sliding
 	fast_jump_step_down
 	fast_jump_step_down
 	fast_jump_step_down
@@ -413,20 +413,20 @@
 	fast_jump_step_right
 	fast_jump_step_right
 	fast_jump_step_right
-	db $38 ; movement
+	remove_sliding
 	step_end
 
-UnknownText_0x19426b:
+WeirdTreeText_AskUseBottle:
 	text "It's a weird tree."
 	line "Use SQUIRTBOTTLE?"
 	done
 
-UnknownText_0x194290:
+WeirdTreeText_PlayerUsedBottle:
 	text "<PLAYER> used the"
 	line "SQUIRTBOTTLE."
 	done
 
-UnknownText_0x1942aa:
+WeirdTreeText_DidntLikeTheBottle:
 	text "The weird tree"
 	line "doesn't like the"
 	cont "SQUIRTBOTTLE!"
@@ -435,7 +435,7 @@
 	line "attacked!"
 	done
 
-UnknownText_0x1942f1:
+Route36FloriaText1:
 	text "I'm the FLOWER"
 	line "SHOP's FLORIA!"
 
@@ -461,7 +461,7 @@
 	cont "her water bottle!"
 	done
 
-UnknownText_0x1943ed:
+Route36FloriaText2:
 	text "When I told my sis"
 	line "about the jiggly"
 
@@ -475,7 +475,7 @@
 	line "bottle…"
 	done
 
-UnknownText_0x19446f:
+RockSmashGuyText1:
 	text "Wa-hey!"
 
 	para "I was going to"
@@ -488,7 +488,7 @@
 	line "I'm a failure!"
 	done
 
-UnknownText_0x1944d0:
+RockSmashGuyText2:
 	text "Did you clear that"
 	line "wretched tree?"
 
@@ -502,7 +502,7 @@
 	line "TM08."
 	done
 
-UnknownText_0x19452c:
+RockSmashGuyText3:
 	text "That happens to be"
 	line "ROCK SMASH."
 
@@ -678,8 +678,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 1, $7, $14, $0, UnknownScript_0x19401b, $0, $0
-	xy_trigger 1, $7, $16, $0, UnknownScript_0x19401b, $0, $0
+	xy_trigger 1, $7, $14, $0, Route36SuicuneTrigger, $0, $0
+	xy_trigger 1, $7, $16, $0, Route36SuicuneTrigger, $0, $0
 
 .Signposts:
 	db 4
@@ -694,8 +694,8 @@
 	person_event SPRITE_YOUNGSTER, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_TRAINER, 5, TrainerSchoolboyAlan1, -1
 	person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_SUDOWOODO, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO
 	person_event SPRITE_LASS, 8, 51, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1940e0, -1
-	person_event SPRITE_FISHER, 9, 44, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x1940b9, -1
+	person_event SPRITE_FISHER, 9, 44, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route36RockSmashGuyScript, -1
 	person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x194247, -1
 	person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY
-	person_event SPRITE_LASS, 12, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO
+	person_event SPRITE_LASS, 12, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, Route36FloriaScript, EVENT_FLORIA_AT_SUDOWOODO
 	person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -243,37 +243,37 @@
 	step_end
 
 MovementData_0x1851d0:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_down
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x1851d4:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_down
 	fast_jump_step_right
 	fast_jump_step_down
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x1851da:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_down
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x1851de:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_down
 	fast_jump_step_left
 	fast_jump_step_down
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x1851e4:
-	db $39 ; movement
+	set_sliding
 	fast_jump_step_down
-	db $38 ; movement
+	remove_sliding
 	step_end
 
 MovementData_0x1851e8:
--- a/misc/mobile_12_2.asm
+++ b/misc/mobile_12_2.asm
@@ -443,7 +443,7 @@
 	push bc
 	push hl
 	ld e, 0
-	callba Function8e83f
+	callba LoadMenuMonIcon
 	ld a, [hObjectStructIndexBuffer]
 	inc a
 	ld [hObjectStructIndexBuffer], a
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -2216,7 +2216,7 @@
 	push hl
 	call Function8923c
 	call _hl_
-	call Function3238
+	call CGBOnly_LoadEDTile
 	pop hl
 
 asm_89d90: ; 89d90 (22:5d90)
@@ -2661,7 +2661,7 @@
 endr
 	ld a, $6
 	call Function8a5a3
-	call Function3238
+	call CGBOnly_LoadEDTile
 	pop bc
 	ld a, c
 	cp $b
@@ -2676,7 +2676,7 @@
 	ld a, $6
 	hlcoord 15, 4, AttrMap
 	call Function8a5a3
-	call Function3238
+	call CGBOnly_LoadEDTile
 	jp Function89e36
 
 Function8a0a1: ; 8a0a1 (22:60a1)
--- a/misc/mobile_22_2.asm
+++ b/misc/mobile_22_2.asm
@@ -401,7 +401,7 @@
 	call Function8b4fd
 	ld e, $0
 	call Function89c44
-	call Function3238
+	call CGBOnly_LoadEDTile
 	ret
 
 Function8b555: ; 8b555 (22:7555)
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -3079,7 +3079,7 @@
 ; 1013dd
 
 Function1013dd: ; 1013dd
-	call Function3238
+	call CGBOnly_LoadEDTile
 	ret
 ; 1013e1
 
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -5846,12 +5846,12 @@
 	ld [hObjectStructIndexBuffer], a
 	ld a, $10
 	ld [wCurIconTile], a
-	ld hl, Function8e83f
-	ld a, BANK(Function8e83f)
+	ld hl, LoadMenuMonIcon
+	ld a, BANK(LoadMenuMonIcon)
 	ld e, $4
 	rst FarCall
-	ld hl, Function8e83f
-	ld a, BANK(Function8e83f)
+	ld hl, LoadMenuMonIcon
+	ld a, BANK(LoadMenuMonIcon)
 	ld e, $5
 	rst FarCall
 	ld hl, $c6d0
--- a/sram.asm
+++ b/sram.asm
@@ -69,7 +69,7 @@
 sMysteryGiftTrainerHouseFlag:: ds 1
 sMysteryGiftPartnerName:: ds NAME_LENGTH
 s0_ac09:: ds 1
-sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
+sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2 ; ac0a
 sBackupMysteryGiftItemEnd::
 
 	ds $30
--- a/wram.asm
+++ b/wram.asm
@@ -118,7 +118,7 @@
 Channel2JumpCondition:: ds 1
 Channel3JumpCondition:: ds 1
 Channel4JumpCondition:: ds 1
-wStereoPanningMask:: ds 1
+wStereoPanningMask:: ds 1 ; c2bc
 CryTracks:: ; c2bd
 ; plays only in left or right track depending on what side the monster is on
 ; both tracks active outside of battle
@@ -127,7 +127,7 @@
 CurSFX:: ; c2bf
 ; id of sfx currently playing
 	ds 1
-
+ChannelsEnd::
 wMapMusic:: ; c2c0
 	ds 1
 
@@ -1328,9 +1328,9 @@
 wMenuJoypad:: ds 1   ; cf73
 MenuSelection:: ds 1 ; cf74
 MenuSelectionQuantity:: ds 1 ; cf75
-wWhichIndexSet:: ds 1
-wScrollingMenuCursorPosition:: ds 1
-wWindowStackSize:: ds 9
+wWhichIndexSet:: ds 1 ; cf76
+wScrollingMenuCursorPosition:: ds 1 ; cf77
+wWindowStackSize:: ds 9 ; cf78
 
 ; menu data header
 wMenuDataHeader:: ; cf81
@@ -1727,18 +1727,21 @@
 	ds 1
 
 wLastPocket:: ds 1
-wd0d7:: ds 1
-wd0d8::
+
+wPCItemsCursor:: ds 1
 wPartyMenuCursor:: ds 1
 wItemsPocketCursor:: ds 1
 wKeyItemsPocketCursor:: ds 1
 wBallsPocketCursor:: ds 1
 wTMHMPocketCursor:: ds 1
-wd0dd:: ds 2
+
+wPCItemsScrollPosition:: ds 1
+wPartyMenuScrollPosition:: ds 1 ; unused
 wItemsPocketScrollPosition:: ds 1
 wKeyItemsPocketScrollPosition:: ds 1
 wBallsPocketScrollPosition:: ds 1
 wTMHMPocketScrollPosition:: ds 1
+
 wMoveSwapBuffer::
 wSwitchMon::
 wSwitchItem::
@@ -1764,9 +1767,9 @@
 ;        flickers when climbing waterfall
 	ds 1
 
-wBattleResult:: ds 1
-wUsingItemWithSelect:: ds 1
-CurMart:: ds 16
+wBattleResult:: ds 1 ; d0ee
+wUsingItemWithSelect:: ds 1 ; d0ef
+CurMart:: ds 16 ; d0f0
 CurMartEnd::
 	ds CurMart - @
 CurElevator:: ds 1
@@ -1776,7 +1779,7 @@
 wd0f2::
 wMailboxCount:: ds 1
 wMailboxItems:: ds MAILBOX_CAPACITY
-wMailboxEnd:: ds 1 ; d1fe
+wMailboxEnd:: ds 1 ; d0fe
 	ds 2
 
 wd100:: ds 1
@@ -1786,9 +1789,7 @@
 wd104:: ds 1
 wd105:: ds 1
 
-CurItem:: ; d106
-	ds 1
-
+CurItem:: ds 1 ; d106
 CurItemQuantity:: ; d107
 wMartItemID::
 wd107:: ds 1
@@ -2027,7 +2028,9 @@
 Buffer6::
 wd1ef:: ds 1
 wd1f0:: ds 1
+wCurHPBarPixels::
 wd1f1:: ds 1
+wNewHPBarPixels::
 wd1f2:: ds 1
 wd1f3:: ds 1
 wd1f4:: ds 1
@@ -2148,7 +2151,7 @@
 wListMoves_MoveIndicesBuffer:: ds NUM_MOVES
 wPutativeTMHMMove:: ds 1
 wd263:: ds 1
-wd264:: ds 1
+wAISwitch:: ds 1
 wFoundMatchingIDInParty::
 wNamedObjectIndexBuffer::
 wCurTMHM::
@@ -2801,16 +2804,16 @@
 VisitedSpawns:: ; dca5
 	flag_array NUM_SPAWNS
 
-wDigWarp:: ds 1
-wDigMapGroup:: ds 1
-wDigMapNumber:: ds 1
+wDigWarp:: ds 1 ; dcaa
+wDigMapGroup:: ds 1 ; dcab
+wDigMapNumber:: ds 1 ; dcac
 ; used on maps like second floor pokécenter, which are reused, so we know which
 ; map to return to
-BackupWarpNumber:: ; dcac
+BackupWarpNumber:: ; dcad
 	ds 1
-BackupMapGroup:: ; dcad
+BackupMapGroup:: ; dcae
 	ds 1
-BackupMapNumber:: ; dcae
+BackupMapNumber:: ; dcaf
 	ds 1
 
 	ds 3