shithub: pokered

Download patch

ref: b65c6e815643a1cbce8c7c3cd48fc9881bb56d01
parent: b35294752c55b5df88ccfc785279c36f30a43fd6
parent: 7b7c563c93155e121e05149779cfb78b0bf9d259
author: yenatch <yenatch@gmail.com>
date: Fri Feb 13 09:50:56 EST 2015

Merge remote-tracking branch 'origin/master'

--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -28,6 +28,26 @@
 NPC_MOVEMENT_LEFT  EQU $80
 NPC_MOVEMENT_RIGHT EQU $C0
 
+; text box IDs
+MESSAGE_BOX                       EQU $01
+FIELD_MOVE_MON_MENU               EQU $04
+JP_MOCHIMONO_MENU_TEMPLATE        EQU $05
+USE_TOSS_MENU_TEMPLATE            EQU $06
+JP_SAVE_MESSAGE_MENU_TEMPLATE     EQU $08
+JP_SPEED_OPTIONS_MENU_TEMPLATE    EQU $09
+BATTLE_MENU_TEMPLATE              EQU $0b
+SWITCH_STATS_CANCEL_MENU_TEMPLATE EQU $0c
+LIST_MENU_BOX                     EQU $0d
+BUY_SELL_QUIT_MENU_TEMPLATE       EQU $0e
+MONEY_BOX_TEMPLATE                EQU $0f
+MON_SPRITE_POPUP                  EQU $11
+JP_AH_MENU_TEMPLATE               EQU $12
+MONEY_BOX                         EQU $13
+TWO_OPTION_MENU                   EQU $14
+BUY_SELL_QUIT_MENU                EQU $15
+JP_POKEDEX_MENU_TEMPLATE          EQU $1a
+SAFARI_BATTLE_MENU_TEMPLATE       EQU $1b
+
 ; two option menu constants
 YES_NO_MENU       EQU 0
 NORTH_WEST_MENU   EQU 1
@@ -62,4 +82,4 @@
 LINK_STATE_START_BATTLE  EQU $03 ; pre-battle initialisation
 LINK_STATE_BATTLING      EQU $04 ; in a link battle
 LINK_STATE_RESET         EQU $05 ; reset game (unused)
-LINK_STATE_TRADING       EQU $32 ; in a link trade
\ No newline at end of file
+LINK_STATE_TRADING       EQU $32 ; in a link trade
--- a/engine/battle/1.asm
+++ b/engine/battle/1.asm
@@ -6,26 +6,28 @@
 	ld a, [hl]
 	rr a
 	ld [hld], a
-	or [hl]
-	jr nz, .asm_784f
+	or [hl] ; is damage 0?
+	jr nz, .getAttackerHP
+; if damage is 0, increase to 1 so that the attacker gains at least 1 HP
 	inc hl
 	inc [hl]
-.asm_784f
-	ld hl, wBattleMonHP ; wd015
-	ld de, wBattleMonMaxHP ; wd023
-	ld a, [H_WHOSETURN] ; $fff3
+.getAttackerHP
+	ld hl, wBattleMonHP
+	ld de, wBattleMonMaxHP
+	ld a, [H_WHOSETURN]
 	and a
-	jp z, Func_7861
+	jp z, .addDamageToAttackerHP
 	ld hl, wEnemyMonHP 
 	ld de, wEnemyMonMaxHP 
-
-Func_7861: ; 7861 (1:7861)
+.addDamageToAttackerHP
 	ld bc, wHPBarOldHP+1
+; copy current HP to wHPBarOldHP
 	ld a, [hli]
 	ld [bc], a
 	ld a, [hl]
 	dec bc
 	ld [bc], a
+; copy max HP to wHPBarMaxHP
 	ld a, [de]
 	dec bc
 	ld [bc], a
@@ -33,7 +35,8 @@
 	ld a, [de]
 	dec bc
 	ld [bc], a
-	ld a, [wd0d8]
+; add damage to attacker's HP and copy new HP to wHPBarNewHP
+	ld a, [W_DAMAGE + 1]
 	ld b, [hl]
 	add b
 	ld [hld], a
@@ -43,7 +46,8 @@
 	adc b
 	ld [hli], a
 	ld [wHPBarNewHP+1], a
-	jr c, .asm_7890
+	jr c, .capToMaxHP ; if HP > 65,535, cap to max HP
+; compare HP with max HP
 	ld a, [hld]
 	ld b, a
 	ld a, [de]
@@ -54,8 +58,8 @@
 	ld a, [de]
 	inc de
 	sbc b
-	jr nc, .asm_789c
-.asm_7890
+	jr nc, .next
+.capToMaxHP
 	ld a, [de]
 	ld [hld], a
 	ld [wHPBarNewHP], a
@@ -64,31 +68,31 @@
 	ld [hli], a
 	ld [wHPBarNewHP+1], a
 	inc de
-.asm_789c
-	ld a, [H_WHOSETURN] ; $fff3
+.next
+	ld a, [H_WHOSETURN]
 	and a
 	hlCoord 10, 9
 	ld a, $1
-	jr z, .asm_78aa
+	jr z, .next2
 	hlCoord 2, 2
 	xor a
-.asm_78aa
-	ld [wListMenuID], a ; wListMenuID
+.next2
+	ld [wHPBarType], a
 	predef UpdateHPBar2
 	predef DrawPlayerHUDAndHPBar
 	predef DrawEnemyHUDAndHPBar
 	callab ReadPlayerMonCurHPAndStatus
-	ld hl, SuckedHealthText ; $78dc
-	ld a, [H_WHOSETURN] ; $fff3
+	ld hl, SuckedHealthText
+	ld a, [H_WHOSETURN]
 	and a
-	ld a, [W_PLAYERMOVEEFFECT] ; wcfd3
-	jr z, .asm_78d2
+	ld a, [W_PLAYERMOVEEFFECT]
+	jr z, .next3
 	ld a, [W_ENEMYMOVEEFFECT] 
-.asm_78d2
+.next3
 	cp DREAM_EATER_EFFECT
-	jr nz, .asm_78d9
+	jr nz, .printText
 	ld hl, DreamWasEatenText
-.asm_78d9
+.printText
 	jp PrintText
 
 SuckedHealthText: ; 78dc (1:78dc)
--- a/engine/battle/14.asm
+++ b/engine/battle/14.asm
@@ -1,4 +1,4 @@
-Func_525af: ; 525af (14:65af)
+InitBattleVariables: ; 525af (14:65af)
 	ld a, [hTilesetType]
 	ld [wd0d4], a
 	xor a
@@ -9,7 +9,7 @@
 	ld [hli], a
 	ld [hli], a
 	ld [hl], a
-	ld [wListScrollOffset], a ; wcc36
+	ld [wListScrollOffset], a
 	ld [wCriticalHitOrOHKO], a
 	ld [wBattleMonSpecies], a
 	ld [wPartyGainExpFlags], a
@@ -21,73 +21,73 @@
 	ld [hl], a
 	ld hl, wccd3
 	ld b, $3c
-.asm_525e1
+.loop
 	ld [hli], a
 	dec b
-	jr nz, .asm_525e1
+	jr nz, .loop
 	inc a
 	ld [wccd9], a
 	ld a, [W_CURMAP] 
 	cp SAFARI_ZONE_EAST
-	jr c, .asm_525f9
+	jr c, .notSafariBattle
 	cp SAFARI_ZONE_REST_HOUSE_1
-	jr nc, .asm_525f9
-	ld a, $2
-	ld [W_BATTLETYPE], a ; wd05a
-.asm_525f9
+	jr nc, .notSafariBattle
+	ld a, $2 ; safari battle
+	ld [W_BATTLETYPE], a
+.notSafariBattle
 	ld hl, PlayBattleMusic
 	ld b, BANK(PlayBattleMusic)
 	jp Bankswitch
 
 ParalyzeEffect_: ; 52601 (14:6601)
-	ld hl, wEnemyMonStatus ; wcfe9
-	ld de, W_PLAYERMOVETYPE ; wcfd5
-	ld a, [H_WHOSETURN] ; $fff3
+	ld hl, wEnemyMonStatus
+	ld de, W_PLAYERMOVETYPE
+	ld a, [H_WHOSETURN]
 	and a
-	jp z, .asm_52613
+	jp z, .next
 	ld hl, wBattleMonStatus 
-	ld de, W_ENEMYMOVETYPE ; wcfcf
-
-.asm_52613
+	ld de, W_ENEMYMOVETYPE
+.next
 	ld a, [hl]
-	and a
-	jr nz, .asm_52659
+	and a ; does the target already have a status ailment?
+	jr nz, .didntAffect
+; check if the target is immune due to types
 	ld a, [de]
-	cp EVASION_DOWN1_EFFECT
-	jr nz, .asm_5262a
+	cp ELECTRIC
+	jr nz, .hitTest
 	ld b, h
 	ld c, l
 	inc bc
 	ld a, [bc]
-	cp $4
-	jr z, .asm_52666
+	cp GROUND
+	jr z, .doesntAffect
 	inc bc
 	ld a, [bc]
-	cp $4
-	jr z, .asm_52666
-.asm_5262a
+	cp GROUND
+	jr z, .doesntAffect
+.hitTest
 	push hl
 	callab MoveHitTest
 	pop hl
 	ld a, [W_MOVEMISSED] 
 	and a
-	jr nz, .asm_52659
+	jr nz, .didntAffect
 	set PAR, [hl]
 	callab QuarterSpeedDueToParalysis
-	ld c, $1e
+	ld c, 30
 	call DelayFrames
-	callab Func_3fba8
+	callab PlayCurrentMoveAnimation
 	ld hl, PrintMayNotAttackText
 	ld b, BANK(PrintMayNotAttackText)
 	jp Bankswitch
-.asm_52659
-	ld c, $32
+.didntAffect
+	ld c, 50
 	call DelayFrames
 	ld hl, PrintDidntAffectText
 	ld b, BANK(PrintDidntAffectText)
 	jp Bankswitch
-.asm_52666
-	ld c, $32
+.doesntAffect
+	ld c, 50
 	call DelayFrames
 	ld hl, PrintDoesntAffectText
 	ld b, BANK(PrintDoesntAffectText)
--- a/engine/battle/16.asm
+++ b/engine/battle/16.asm
@@ -55,7 +55,7 @@
 	ld hl, UnveiledGhostText
 	call PrintText
 	callab LoadEnemyMonData
-	callab Func_708ca
+	callab MarowakAnim
 	ld hl, WildMonAppearedText
 	call PrintText
 
--- a/engine/battle/1c.asm
+++ b/engine/battle/1c.asm
@@ -1,85 +1,91 @@
-Func_708ca: ; 708ca (1c:48ca)
+MarowakAnim: ; 708ca (1c:48ca)
+; animate the ghost being unveiled as a Marowak
 	ld a, $e4
-	ld [rOBP1], a ; $ff49
-	call Func_7092a
+	ld [rOBP1], a
+	call CopyMonPicFromBGToSpriteVRAM ; cover the BG ghost pic with a sprite ghost pic that looks the same
+; now that the ghost pic is being displayed using sprites, clear the ghost pic from the BG tilemap
 	hlCoord 12, 0
 	ld bc, $707
 	call ClearScreenArea
 	call Delay3
 	xor a
-	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
-	ld a, $91
+	ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon
+; replace ghost pic with Marowak in BG
+	ld a, MAROWAK
 	ld [wHPBarMaxHP], a
 	ld a, $1
-	ld [H_WHOSETURN], a ; $fff3
+	ld [H_WHOSETURN], a
 	callab Func_79793
+ ; alternate between black and light grey 8 times.
+ ; this makes the ghost's body appear to flash
 	ld d, $80
-	call Func_704f3
-.asm_708f6
-	ld c, $a
+	call FlashSprite8Times
+.fadeOutGhostLoop
+	ld c, 10
 	call DelayFrames
-	ld a, [rOBP1] ; $ff49
+	ld a, [rOBP1]
 	sla a
 	sla a
-	ld [rOBP1], a ; $ff49
-	jr nz, .asm_708f6
+	ld [rOBP1], a
+	jr nz, .fadeOutGhostLoop
 	call ClearSprites
-	call Func_7092a
+	call CopyMonPicFromBGToSpriteVRAM ; copy Marowak pic from BG to sprite VRAM
 	ld b, $e4
-.asm_7090d
-	ld c, $a
+.fadeInMarowakLoop
+	ld c, 10
 	call DelayFrames
-	ld a, [rOBP1] ; $ff49
+	ld a, [rOBP1]
 	srl b
 	rra
 	srl b
 	rra
-	ld [rOBP1], a ; $ff49
+	ld [rOBP1], a
 	ld a, b
 	and a
-	jr nz, .asm_7090d
+	jr nz, .fadeInMarowakLoop
 	ld a, $1
-	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+	ld [H_AUTOBGTRANSFERENABLED], a ; enable BG transfer so the BG Marowak pic will be visible after the sprite one is cleared
 	call Delay3
 	jp ClearSprites
 
-Func_7092a: ; 7092a (1c:492a)
+; copies a mon pic's  from background VRAM to sprite VRAM and sets up OAM
+CopyMonPicFromBGToSpriteVRAM: ; 7092a (1c:492a)
 	ld de, vFrontPic
 	ld hl, vSprites
 	ld bc, 7 * 7
 	call CopyVideoData
 	ld a, $10
-	ld [W_BASECOORDY], a ; wd082
+	ld [W_BASECOORDY], a
 	ld a, $70
-	ld [W_BASECOORDX], a ; wd081
+	ld [W_BASECOORDX], a
 	ld hl, wOAMBuffer
 	ld bc, $606
 	ld d, $8
-.asm_70948
+.oamLoop
 	push bc
-	ld a, [W_BASECOORDY] ; wd082
+	ld a, [W_BASECOORDY]
 	ld e, a
-.asm_7094d
+.oamInnerLoop
 	ld a, e
 	add $8
 	ld e, a
 	ld [hli], a
-	ld a, [W_BASECOORDX] ; wd081
+	ld a, [W_BASECOORDX]
 	ld [hli], a
 	ld a, d
 	ld [hli], a
-	ld a, $10
+	ld a, $10 ; use OBP1
 	ld [hli], a
 	inc d
 	dec c
-	jr nz, .asm_7094d
+	jr nz, .oamInnerLoop
 	inc d
-	ld a, [W_BASECOORDX] ; wd081
+	ld a, [W_BASECOORDX]
 	add $8
-	ld [W_BASECOORDX], a ; wd081
+	ld [W_BASECOORDX], a
 	pop bc
 	dec b
-	jr nz, .asm_70948
+	jr nz, .oamLoop
 	ret
 
 BattleTransition: ; 7096d (1c:496d)
@@ -270,9 +276,9 @@
 
 BattleTransition_BlackScreen: ; 70a69 (1c:4a69)
 	ld a, $ff
-	ld [rBGP], a ; $ff47
-	ld [rOBP0], a ; $ff48
-	ld [rOBP1], a ; $ff49
+	ld [rBGP], a
+	ld [rOBP0], a
+	ld [rOBP1], a
 	ret
 
 ; for non-dungeon trainer battles
--- a/engine/battle/4.asm
+++ b/engine/battle/4.asm
@@ -1,14 +1,14 @@
-Func_128d8: ; 128d8 (4:68d8)
-	ld a, [W_YCOORD] ; wd361
+; returns whether the player is one tile outside the map in Z
+IsPlayerJustOutsideMap: ; 128d8 (4:68d8)
+	ld a, [W_YCOORD]
 	ld b, a
-	ld a, [W_CURMAPHEIGHT] ; wd368
-	call Func_128ea
+	ld a, [W_CURMAPHEIGHT]
+	call .compareCoordWithMapDimension
 	ret z
-	ld a, [W_XCOORD] ; wd362
+	ld a, [W_XCOORD]
 	ld b, a
-	ld a, [W_CURMAPWIDTH] ; wd369
-
-Func_128ea: ; 128ea (4:68ea)
+	ld a, [W_CURMAPWIDTH]
+.compareCoordWithMapDimension
 	add a
 	cp b
 	ret z
@@ -18,37 +18,37 @@
 DrawHP: ; 128ef (4:68ef)
 	call GetPredefRegisters
 	ld a, $1
-	jr asm_128fb
+	jr DrawHP_
 
-Func_128f6: ; 128f6 (4:68f6)
+DrawHP2: ; 128f6 (4:68f6)
 	call GetPredefRegisters
 	ld a, $2
-asm_128fb: ; 128fb (4:68fb)
-	ld [wListMenuID], a ; wListMenuID
+
+DrawHP_: ; 128fb (4:68fb)
+	ld [wHPBarType], a
 	push hl
-	ld a, [wcf99]
+	ld a, [wLoadedMonHP]
 	ld b, a
-	ld a, [wcf9a]
+	ld a, [wLoadedMonHP + 1]
 	ld c, a
 	or b
-	jr nz, .asm_12913
+	jr nz, .nonzeroHP
 	xor a
 	ld c, a
 	ld e, a
 	ld a, $6
 	ld d, a
-	jp Func_12924
-.asm_12913
-	ld a, [wcfba]
+	jp .drawHPBarAndPrintFraction
+.nonzeroHP
+	ld a, [wLoadedMonMaxHP]
 	ld d, a
-	ld a, [wcfbb]
+	ld a, [wLoadedMonMaxHP + 1]
 	ld e, a
 	predef HPBarLength
 	ld a, $6
 	ld d, a
 	ld c, a
-
-Func_12924: ; 12924 (4:6924)
+.drawHPBarAndPrintFraction
 	pop hl
 	push de
 	push hl
@@ -55,21 +55,21 @@
 	push hl
 	call DrawHPBar
 	pop hl
-	ld a, [$fff6]
+	ld a, [hFlags_0xFFF6]
 	bit 0, a
-	jr z, .asm_12937
-	ld bc, $9
-	jr .asm_1293a
-.asm_12937
-	ld bc, $15
-.asm_1293a
+	jr z, .printFractionBelowBar
+	ld bc, $9 ; right of bar
+	jr .printFraction
+.printFractionBelowBar
+	ld bc, SCREEN_WIDTH + 1 ; below bar
+.printFraction
 	add hl, bc
-	ld de, wcf99
+	ld de, wLoadedMonHP
 	ld bc, $203
 	call PrintNumber
 	ld a, "/"
 	ld [hli], a
-	ld de, wcfba
+	ld de, wLoadedMonMaxHP
 	ld bc, $203
 	call PrintNumber
 	pop hl
--- a/engine/battle/4_2.asm
+++ b/engine/battle/4_2.asm
@@ -60,7 +60,7 @@
 	ld [hli], a
 	ld [hl], a
 	ld [wListScrollOffset], a
-	ld hl, wd060
+	ld hl, wPlayerStatsToDouble
 	ld b, $18
 .loop
 	ld [hli], a
@@ -87,7 +87,9 @@
 	TX_FAR _PickUpPayDayMoneyText
 	db "@"
 
-Func_13870: ; 13870 (4:7870)
+; try to initiate a wild pokemon encounter
+; returns success in Z
+TryDoWildEncounter: ; 13870 (4:7870)
 	ld a, [wNPCMovementScriptPointerTableNum]
 	and a
 	ret nz
@@ -95,14 +97,14 @@
 	and a
 	ret nz
 	callab IsPlayerStandingOnDoorTileOrWarpTile
-	jr nc, .asm_13888
-.asm_13884
+	jr nc, .notStandingOnDoorOrWarpTile
+.CantEncounter
 	ld a, $1
 	and a
 	ret
-.asm_13888
-	callab Func_128d8
-	jr z, .asm_13884
+.notStandingOnDoorOrWarpTile
+	callab IsPlayerJustOutsideMap
+	jr z, .CantEncounter
 	ld a, [wRepelRemainingSteps]
 	and a
 	jr z, .asm_1389e
@@ -110,8 +112,8 @@
 	jr z, .lastRepelStep
 	ld [wRepelRemainingSteps], a
 .asm_1389e
-; determine if wild pok�mon can appear in the half-block we�re standing	
-; is the bottom right tile (9,9) of the half-block are we standing a grass/water tile?
+; determine if wild pok�mon can appear in the half-block we�re standing in	
+; is the bottom right tile (9,9) of the half-block we're standing in a grass/water tile?
 	hlCoord 9, 9
 	ld c, [hl]
 	ld a, [W_GRASSTILE]
@@ -127,17 +129,17 @@
 ; �as long as it�s not Viridian Forest or Safari Zone.
 	ld a, [W_CURMAP]
 	cp REDS_HOUSE_1F ; is this an indoor map?
-	jr c, .CantEncounter
+	jr c, .CantEncounter2
 	ld a, [W_CURMAPTILESET]
 	cp FOREST ; Viridian Forest/Safari Zone
-	jr z, .CantEncounter
+	jr z, .CantEncounter2
 	ld a, [W_GRASSRATE]
 .CanEncounter
-; weigh encounter chance to a random number to determine if there will be an encounter
+; compare encounter chance with a random number to determine if there will be an encounter
 	ld b, a
 	ld a, [hRandomAdd]
 	cp b
-	jr nc, .CantEncounter
+	jr nc, .CantEncounter2
 	ld a, [hRandomSub]
 	ld b, a
 	ld hl, WildMonEncounterSlotChances
@@ -148,15 +150,15 @@
 	inc hl
 	jr .determineEncounterSlot
 .gotEncounterSlot
-; determine which wild pok�mon (grass or water) can appear in the half-block we�re standing
+; determine which wild pok�mon (grass or water) can appear in the half-block we�re standing in
 	ld c, [hl]
 	ld hl, W_GRASSMONS
 	aCoord 8, 9	
-	cp $14 ; is the bottom left tile (8,9) of the half-block are we standing a water tile?	
+	cp $14 ; is the bottom left tile (8,9) of the half-block we're standing in a water tile?	
 	jr nz, .gotWildEncounterType ; else, it's treated as a grass tile by default
 	ld hl, W_WATERMONS
 ; since the bottom right tile of a "left shore" half-block is $14 but the bottom left tile is not,
-; "left shore" half-blocks (such as the one in the east coast of Cinnabar), load grass encounters.	
+; "left shore" half-blocks (such as the one in the east coast of Cinnabar) load grass encounters.	
 .gotWildEncounterType
 	ld b, $0
 	add hl, bc
@@ -172,15 +174,15 @@
 	ld b, a
 	ld a, [W_CURENEMYLVL]
 	cp b
-	jr c, .CantEncounter
+	jr c, .CantEncounter2 ; repel prevents encounters if the leading party mon's level is higher than the wild mon
 	jr .willEncounter
 .lastRepelStep
 	ld [wRepelRemainingSteps], a
 	ld a, $d2
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	ld [H_DOWNARROWBLINKCNT2], a
 	call EnableAutoTextBoxDrawing
 	call DisplayTextID
-.CantEncounter
+.CantEncounter2
 	ld a, $1
 	and a
 	ret
@@ -205,16 +207,16 @@
 	db $FF, $12 ;  3/256 =  1.2% chance of slot 9
 
 RecoilEffect_: ; 1392c (4:792c)
-	ld a, [H_WHOSETURN] ; $fff3
+	ld a, [H_WHOSETURN]
 	and a
-	ld a, [W_PLAYERMOVENUM] ; wcfd2
-	ld hl, wBattleMonMaxHP ; wd023
+	ld a, [W_PLAYERMOVENUM]
+	ld hl, wBattleMonMaxHP
 	jr z, .asm_1393d
-	ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
-	ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
+	ld a, [W_ENEMYMOVENUM]
+	ld hl, wEnemyMonMaxHP
 .asm_1393d
 	ld d, a
-	ld a, [W_DAMAGE] ; W_DAMAGE
+	ld a, [W_DAMAGE]
 	ld b, a
 	ld a, [W_DAMAGE + 1]
 	ld c, a
@@ -258,7 +260,7 @@
 	ld [hl], a
 .asm_13982
 	hlCoord 10, 9
-	ld a, [H_WHOSETURN] ; $fff3
+	ld a, [H_WHOSETURN]
 	and a
 	ld a, $1
 	jr z, .asm_13990
@@ -265,9 +267,9 @@
 	hlCoord 2, 2
 	xor a
 .asm_13990
-	ld [wListMenuID], a ; wListMenuID
+	ld [wHPBarType], a
 	predef UpdateHPBar2
-	ld hl, HitWithRecoilText ; $799e
+	ld hl, HitWithRecoilText
 	jp PrintText
 HitWithRecoilText: ; 1399e (4:799e)
 	TX_FAR _HitWithRecoilText
@@ -293,8 +295,8 @@
 	inc de
 	ld a, [hl]
 	ld [de], a
-	ld hl, Func_3fba8
-	call Func_139d5
+	ld hl, PlayCurrentMoveAnimation
+	call CallBankF
 	ld hl, ConvertedTypeText
 	jp PrintText
 
@@ -304,7 +306,7 @@
 
 PrintButItFailedText: ; 139d2 (4:79d2)
 	ld hl, PrintButItFailedText_
-Func_139d5: ; 139d5 (4:79d5)
+CallBankF: ; 139d5 (4:79d5)
 	ld b, BANK(PrintButItFailedText_)
 	jp Bankswitch
 
@@ -311,15 +313,15 @@
 HazeEffect_: ; 139da (4:79da)
 	ld a, $7
 	ld hl, wPlayerMonAttackMod
-	call Func_13a43
+	call ResetStatMods
 	ld hl, wEnemyMonAttackMod
-	call Func_13a43
+	call ResetStatMods
 	ld hl, wPlayerMonUnmodifiedAttack
 	ld de, wBattleMonAttack
-	call Func_13a4a
+	call ResetStats
 	ld hl, wEnemyMonUnmodifiedAttack
 	ld de, wEnemyMonAttack
-	call Func_13a4a
+	call ResetStats
 	ld hl, wEnemyMonStatus
 	ld de, wEnemySelectedMove
 	ld a, [H_WHOSETURN]
@@ -347,8 +349,8 @@
 	call CureStatuses
 	ld hl, W_ENEMYBATTSTATUS1
 	call CureStatuses
-	ld hl, Func_3fba8
-	call Func_139d5
+	ld hl, PlayCurrentMoveAnimation
+	call CallBankF
 	ld hl, StatusChangesEliminatedText
 	jp PrintText
 
@@ -363,7 +365,7 @@
 	ld [hl], a
 	ret
 
-Func_13a43: ; 13a43 (4:7a43)
+ResetStatMods: ; 13a43 (4:7a43)
 	ld b, $8
 .loop
 	ld [hli], a
@@ -371,7 +373,7 @@
 	jr nz, .loop
 	ret
 
-Func_13a4a: ; 13a4a (4:7a4a)
+ResetStats: ; 13a4a (4:7a4a)
 	ld b, $8
 .loop
 	ld a, [hli]
@@ -390,8 +392,8 @@
 	ld a, [wLinkState]
 	and a
 	jr nz, .rival
-	ld hl, W_RIVALNAME ; wd34a
-	ld a, [W_TRAINERCLASS] ; wd031
+	ld hl, W_RIVALNAME
+	ld a, [W_TRAINERCLASS]
 	cp SONY1
 	jr z, .rival
 	cp SONY2
@@ -400,7 +402,7 @@
 	jr z, .rival
 	ld [wd0b5], a
 	ld a, TRAINER_NAME
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	ld a, BANK(TrainerNames)
 	ld [wPredefBank], a
 	call GetName
--- a/engine/battle/5.asm
+++ b/engine/battle/5.asm
@@ -4,7 +4,7 @@
 	ld hl, wBattleMonMaxHP
 	ld de, wPlayerSubstituteHP
 	ld bc, W_PLAYERBATTSTATUS2
-	ld a, [$fff3]  ;whose turn?
+	ld a, [H_WHOSETURN]
 	and a
 	jr z, .notEnemy
 	ld hl, wEnemyMonMaxHP
@@ -23,8 +23,8 @@
 	srl a
 	rr b
 	push de
-	ld de, $fff2  ;subtract 8 to point to [current hp] instead of [max hp]
-	add hl, de    ;HL -= 8
+	ld de, wBattleMonHP - wBattleMonMaxHP
+	add hl, de    ; point hl to current HP
 	pop de
 	ld a, b
 	ld [de], a    ;save copy of HP to subtract in ccd7/ccd8 [how much HP substitute has]
@@ -44,8 +44,8 @@
 	set HasSubstituteUp, [hl] ;set bit 4 of flags, user now has substitute
 	ld a, [W_OPTIONS]         ;load options
 	bit 7, a                  ;battle animation is enabled?
-	ld hl, Func_3fba8         ;animation enabled: 0F:7BA8
-	ld b, BANK(Func_3fba8)
+	ld hl, PlayCurrentMoveAnimation         ;animation enabled: 0F:7BA8
+	ld b, BANK(PlayCurrentMoveAnimation)
 	jr z, .animationEnabled
 	ld hl, AnimationSubstitute ;animation disabled: 1E:56E0
 	ld b, BANK(AnimationSubstitute)
--- a/engine/battle/9.asm
+++ b/engine/battle/9.asm
@@ -1,4 +1,6 @@
-Func_27d6b: ; 27d6b (9:7d6b)
+; [wd0b5] = pokemon ID
+; hl = dest addr
+PrintMonType: ; 27d6b (9:7d6b)
 	call GetPredefRegisters
 	push hl
 	call GetMonHeader
@@ -5,31 +7,37 @@
 	pop hl
 	push hl
 	ld a, [W_MONHTYPE1]
-	call Func_27d89
+	call PrintType
 	ld a, [W_MONHTYPE1]
 	ld b, a
 	ld a, [W_MONHTYPE2]
 	cp b
 	pop hl
-	jr z, asm_27d8c
-	ld bc, $28
+	jr z, EraseType2Text
+	ld bc, SCREEN_WIDTH * 2
 	add hl, bc
 
-Func_27d89: ; 27d89 (9:7d89)
+; a = type
+; hl = dest addr
+PrintType: ; 27d89 (9:7d89)
 	push hl
-	jr asm_27d9f
-asm_27d8c: ; 27d8c (9:7d8c)
-	ld a, $7f
+	jr PrintType_
+
+; erase "TYPE2/" if the mon only has 1 type
+EraseType2Text: ; 27d8c (9:7d8c)
+	ld a, " "
 	ld bc, $13
 	add hl, bc
 	ld bc, $6
 	jp FillMemory
 
-Func_27d98: ; 27d98 (9:7d98)
+PrintMoveType: ; 27d98 (9:7d98)
 	call GetPredefRegisters
 	push hl
-	ld a, [W_PLAYERMOVETYPE] ; wcfd5
-asm_27d9f: ; 27d9f (9:7d9f)
+	ld a, [W_PLAYERMOVETYPE]
+; fall through
+
+PrintType_: ; 27d9f (9:7d9f)
 	add a
 	ld hl, TypeNames
 	ld e, a
@@ -157,19 +165,19 @@
 	db "COOLTRAINER♀@"
 
 FocusEnergyEffect_: ; 27f86 (9:7f86)
-	ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
-	ld a, [H_WHOSETURN] ; $fff3
+	ld hl, W_PLAYERBATTSTATUS2
+	ld a, [H_WHOSETURN]
 	and a
-	jr z, .asm_27f91
-	ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
-.asm_27f91
+	jr z, .notEnemy
+	ld hl, W_ENEMYBATTSTATUS2
+.notEnemy
 	bit GettingPumped, [hl] ; is mon already using focus energy?
-	jr nz, .asm_27fa5
+	jr nz, .alreadyUsing
 	set GettingPumped, [hl] ; mon is now using focus energy
-	callab Func_3fba8
-	ld hl, GettingPumpedText ; $7fb2
+	callab PlayCurrentMoveAnimation
+	ld hl, GettingPumpedText
 	jp PrintText
-.asm_27fa5
+.alreadyUsing
 	ld c, $32
 	call DelayFrames
 	ld hl, PrintButItFailedText_
--- a/engine/battle/a.asm
+++ b/engine/battle/a.asm
@@ -21,7 +21,7 @@
 	bit Seeded, [hl]
 	jr nz, .asm_2bee7
 	set Seeded, [hl]
-	callab Func_3fba8
+	callab PlayCurrentMoveAnimation
 	ld hl, WasSeededText ; $7ef2
 	jp PrintText
 .asm_2bee7
--- a/engine/battle/c.asm
+++ b/engine/battle/c.asm
@@ -8,7 +8,7 @@
 	bit ProtectedByMist, [hl] ; is mon protected by mist?
 	jr nz, .asm_33f4a
 	set ProtectedByMist, [hl] ; mon is now protected by mist
-	callab Func_3fba8
+	callab PlayCurrentMoveAnimation
 	ld hl, ShroudedInMistText
 	jp PrintText
 .asm_33f4a
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -98,7 +98,7 @@
 
 SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c)
 	call LoadPlayerBackPic
-	ld a, $1 ; the usual text box at the bottom of the screen
+	ld a, MESSAGE_BOX ; the usual text box at the bottom of the screen
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	hlCoord 1, 5
@@ -768,7 +768,7 @@
 	xor a
 .playersTurn
 	push bc
-	ld [wListMenuID], a
+	ld [wHPBarType], a
 	predef UpdateHPBar2
 	pop bc
 	ret
@@ -839,7 +839,7 @@
 	res AttackingMultipleTimes, [hl]
 	xor a
 	ld [wPlayerNumHits], a
-	ld hl, wd065 ; clear enemy statuses
+	ld hl, wEnemyStatsToDouble ; clear enemy statuses
 	ld [hli], a
 	ld [hli], a
 	ld [hli], a
@@ -1137,7 +1137,7 @@
 .displayYesNoBox
 	hlCoord 13, 9
 	ld bc, $a0e
-	ld a, $14 ; yes/no text box
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	ld a, [wd12e]
@@ -1366,7 +1366,7 @@
 ; don't change wPartyGainExpFlags or wPartyFoughtCurrentEnemyFlags
 EnemySendOutFirstMon: ; 3c92a (f:492a)
 	xor a
-	ld hl,wd065 ; clear enemy statuses
+	ld hl,wEnemyStatsToDouble ; clear enemy statuses
 	ld [hli],a
 	ld [hli],a
 	ld [hli],a
@@ -1454,7 +1454,7 @@
 	call PrintText
 	hlCoord 0, 7
 	ld bc,$0801
-	ld a,$14
+	ld a,TWO_OPTION_MENU
 	ld [wTextBoxID],a
 	call DisplayTextBoxID
 	ld a,[wCurrentMenuItem]
@@ -1815,7 +1815,7 @@
 	ld hl, wPlayerUsedMove
 	ld [hli], a
 	ld [hl], a
-	ld hl, wd060
+	ld hl, wPlayerStatsToDouble
 	ld [hli], a
 	ld [hli], a
 	ld [hli], a
@@ -1899,23 +1899,23 @@
 	call CenterMonName
 	call PlaceString
 	ld hl, wBattleMonSpecies
-	ld de, wcf98
+	ld de, wLoadedMon
 	ld bc, $c
 	call CopyData
 	ld hl, wBattleMonLevel
-	ld de, wcfb9
+	ld de, wLoadedMonLevel
 	ld bc, $b
 	call CopyData
 	hlCoord 14, 8
 	push hl
 	inc hl
-	ld de, wcf9c
+	ld de, wLoadedMonStatus
 	call PrintStatusConditionNotFainted
 	pop hl
 	jr nz, .asm_3cdae
 	call PrintLevel
 .asm_3cdae
-	ld a, [wcf98]
+	ld a, [wLoadedMonSpecies]
 	ld [wcf91], a
 	hlCoord 10, 9
 	predef DrawHP
@@ -1965,7 +1965,7 @@
 	pop hl
 	jr nz, .skipPrintLevel ; if the mon has a status condition, skip printing the level
 	ld a, [wEnemyMonLevel]
-	ld [wcfb9], a
+	ld [wLoadedMonLevel], a
 	call PrintLevel
 .skipPrintLevel
 	ld hl, wEnemyMonHP
@@ -2029,7 +2029,7 @@
 	ld c, a
 .drawHPBar
 	xor a
-	ld [wListMenuID], a
+	ld [wHPBarType], a
 	hlCoord 2, 2
 	call DrawHPBar
 	ld a, $1
@@ -2080,9 +2080,9 @@
 .nonstandardbattle
 	ld a, [W_BATTLETYPE]
 	cp $2 ; safari
-	ld a, $b ; safari menu id
+	ld a, BATTLE_MENU_TEMPLATE
 	jr nz, .menuselected
-	ld a, $1b ; regular menu id
+	ld a, SAFARI_BATTLE_MENU_TEMPLATE
 .menuselected
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
@@ -2270,9 +2270,9 @@
 	jr nz, DisplayPlayerBag ; no, it is a normal battle
 	ld hl, OldManItemList
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
+	ld [wList + 1], a
 	jr DisplayBagMenu
 
 OldManItemList:
@@ -2284,9 +2284,9 @@
 	; get the pointer to player's bag when in a normal battle
 	ld hl, wNumBagItems
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
+	ld [wList + 1], a
 
 DisplayBagMenu:
 	xor a
@@ -2402,7 +2402,7 @@
 	call GoBackToPartyMenu
 	jr .checkIfPartyMonWasSelected
 .partyMonWasSelected
-	ld a, $c ; switch/stats/cancel menu
+	ld a, SWITCH_STATS_CANCEL_MENU_TEMPLATE
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	ld hl, wTopMenuItemY
@@ -2533,21 +2533,21 @@
 	jr .regularmenu
 
 .loadmoves
-	ld de, wd0dc
-	ld bc, $4
+	ld de, wMoves
+	ld bc, NUM_MOVES
 	call CopyData
-	callab Func_39b87
+	callab FormatMovesString
 	ret
 
 .writemoves
-	ld de, wd0e1
-	ld a, [$fff6]
+	ld de, wMovesString
+	ld a, [hFlags_0xFFF6]
 	set 2, a
-	ld [$fff6], a
+	ld [hFlags_0xFFF6], a
 	call PlaceString
-	ld a, [$fff6]
+	ld a, [hFlags_0xFFF6]
 	res 2, a
-	ld [$fff6], a
+	ld [hFlags_0xFFF6], a
 	ret
 
 .regularmenu
@@ -2666,10 +2666,10 @@
 	call AddNTimes
 	ld [hl], $ec
 .select
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	set 1, [hl]
 	call HandleMenuInput
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	res 1, [hl]
 	bit 6, a
 	jp nz, CursorUp ; up
@@ -2959,7 +2959,7 @@
 	call PrintNumber
 	call GetCurrentMove 
 	hlCoord 2, 10
-	predef Func_27d98
+	predef PrintMoveType
 .moveDisabled
 	ld a, $1
 	ld [H_AUTOBGTRANSFERENABLED], a
@@ -3554,7 +3554,7 @@
 	ld a,[hld]
 	add a
 	ld b,a
-	ld [wd0d8],a
+	ld [W_DAMAGE + 1],a
 	ld a,[hl]
 	rl a ; double the damage
 	ld [W_DAMAGE],a
@@ -4451,7 +4451,7 @@
 	ld [wd0b5], a
 	call GetMonHeader
 	ld hl, wEnemyMonDVs
-	ld de, wcfaf
+	ld de, wLoadedMonSpeedExp
 	ld a, [hli]
 	ld [de], a
 	inc de
@@ -4459,7 +4459,7 @@
 	ld [de], a
 	pop bc
 	ld b, $0
-	ld hl, wcfa4
+	ld hl, wLoadedMonSpeedExp - $b ; this base address makes CalcStat look in [wLoadedMonSpeedExp] for DVs
 	call CalcStat
 	pop de
 	ret
@@ -4899,7 +4899,7 @@
 	ld [wHPBarNewHP],a
 	hlCoord 2, 2
 	xor a
-	ld [wListMenuID],a
+	ld [wHPBarType],a
 	predef UpdateHPBar2 ; animate the HP bar shortening
 ApplyAttackToEnemyPokemonDone: ; 3e19d (f:619d)
 	jp DrawHUDsAndHPBars
@@ -5017,7 +5017,7 @@
 	ld [wHPBarMaxHP],a
 	hlCoord 10, 9
 	ld a,$01
-	ld [wListMenuID],a
+	ld [wHPBarType],a
 	predef UpdateHPBar2 ; animate the HP bar shortening
 ApplyAttackToPlayerPokemonDone
 	jp DrawHUDsAndHPBars
@@ -5671,7 +5671,7 @@
 	ld a, BANK(MoveNames)
 	ld [wPredefBank], a
 	ld a, MOVE_NAME
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	call GetName
 	ld de, wcd6d
 	call CopyStringToCF4B
@@ -6053,7 +6053,7 @@
 	ld a, [hld]
 	add a
 	ld b, a
-	ld [wd0d8], a
+	ld [W_DAMAGE + 1], a
 	ld a, [hl]
 	rl a
 	ld [W_DAMAGE], a
@@ -6148,7 +6148,7 @@
 	ld a, BANK(MoveNames)
 	ld [wPredefBank], a
 	ld a, MOVE_NAME
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	call GetName
 	ld de, wcd6d
 	jp CopyStringToCF4B
@@ -6339,7 +6339,7 @@
 	ld [hWY], a
 	ld [rWY], a
 	ld [hTilesetType], a
-	ld hl, wd060
+	ld hl, wPlayerStatsToDouble
 	ld [hli], a
 	ld [hli], a
 	ld [hli], a
@@ -6423,10 +6423,11 @@
 	hlCoord 1, 5
 	predef_jump Func_3f0c6
 
-Func_3ed02: ; 3ed02 (f:6d02)
-	callab Func_39680
-	ld hl, Func_396a7
-	ld b, BANK(Func_396a7)
+; does nothing since no stats are ever selected (barring glitches)
+DoubleOrHalveSelectedStats: ; 3ed02 (f:6d02)
+	callab DoubleSelectedStats
+	ld hl, HalveSelectedStats
+	ld b, BANK(HalveSelectedStats)
 	jp Bankswitch
 
 ScrollTrainerPicAfterBattle: ; 3ed12 (f:6d12)
@@ -6814,7 +6815,7 @@
 	ld a, [wNumberOfNoRandomBattleStepsLeft]
 	and a
 	ret nz
-	callab Func_13870
+	callab TryDoWildEncounter
 	ret nz
 asm_3ef3d: ; 3ef3d (f:6f3d)
 	ld a, [wMapPalOffset]
@@ -6823,7 +6824,7 @@
 	ld a, [hl]
 	push af
 	res 1, [hl]
-	callab Func_525af
+	callab InitBattleVariables
 	ld a, [wEnemyMonSpecies2]
 	sub $c8
 	jp c, InitWildBattle
@@ -7637,7 +7638,7 @@
 	call nz, Bankswitch ; play Minimize animation unless there's Substitute involved
 	pop de
 .asm_3f4f9
-	call Func_3fba8
+	call PlayCurrentMoveAnimation
 	ld a, [de]
 	cp MINIMIZE
 	jr nz, .applyBadgeBoostsAndStatusPenalties
@@ -8451,7 +8452,7 @@
 	ld [hl], a
 	ld [wd11e], a
 	call GetMoveName
-	call Func_3fba8
+	call PlayCurrentMoveAnimation
 	ld hl, MimicLearnedMoveText
 	jp PrintText
 .asm_3fa74
@@ -8467,7 +8468,7 @@
 	jp Bankswitch
 
 SplashEffect: ; 3fa84 (f:7a84)
-	call Func_3fba8
+	call PlayCurrentMoveAnimation
 	jp PrintNoEffectText
 
 DisableEffect: ; 3fa8a (f:7a8a)
@@ -8662,15 +8663,15 @@
 	ld [wcc5b], a
 	jp Func_3fbbc
 
-Func_3fba8: ; 3fba8 (f:7ba8)
+PlayCurrentMoveAnimation: ; 3fba8 (f:7ba8)
 	xor a
 	ld [wcc5b], a
 	ld a, [H_WHOSETURN]
 	and a
 	ld a, [W_PLAYERMOVENUM]
-	jr z, .asm_3fbb7
+	jr z, .notEnemyTurn
 	ld a, [W_ENEMYMOVENUM]
-.asm_3fbb7
+.notEnemyTurn
 	and a
 	ret z
 
--- a/engine/battle/e.asm
+++ b/engine/battle/e.asm
@@ -1,24 +1,25 @@
-Func_39680: ; 39680 (e:5680)
-	ld a, [H_WHOSETURN] ; $fff3
+; does nothing since no stats are ever selected (barring glitches)
+DoubleSelectedStats: ; 39680 (e:5680)
+	ld a, [H_WHOSETURN]
 	and a
-	ld a, [wd060]
+	ld a, [wPlayerStatsToDouble]
 	ld hl, wBattleMonAttack + 1
-	jr z, .asm_39691
-	ld a, [wd065]
+	jr z, .notEnemyTurn
+	ld a, [wEnemyStatsToDouble]
 	ld hl, wEnemyMonAttack + 1
-.asm_39691
-	ld c, $4
+.notEnemyTurn
+	ld c, 4
 	ld b, a
-.asm_39694
+.loop
 	srl b
-	call c, Func_3969f
+	call c, .doubleStat
 	inc hl
 	inc hl
 	dec c
 	ret z
-	jr .asm_39694
+	jr .loop
 
-Func_3969f: ; 3969f (e:569f)
+.doubleStat
 	ld a, [hl]
 	add a
 	ld [hld], a
@@ -27,35 +28,36 @@
 	ld [hli], a
 	ret
 
-Func_396a7: ; 396a7 (e:56a7)
-	ld a, [H_WHOSETURN] ; $fff3
+; does nothing since no stats are ever selected (barring glitches)
+HalveSelectedStats: ; 396a7 (e:56a7)
+	ld a, [H_WHOSETURN]
 	and a
-	ld a, [wd061]
+	ld a, [wPlayerStatsToHalve]
 	ld hl, wBattleMonAttack
-	jr z, .asm_396b8
-	ld a, [wd066]
+	jr z, .notEnemyTurn
+	ld a, [wEnemyStatsToHalve]
 	ld hl, wEnemyMonAttack
-.asm_396b8
-	ld c, $4
+.notEnemyTurn
+	ld c, 4
 	ld b, a
-.asm_396bb
+.loop
 	srl b
-	call c, Func_396c6
+	call c, .halveStat
 	inc hl
 	inc hl
 	dec c
 	ret z
-	jr .asm_396bb
+	jr .loop
 
-Func_396c6: ; 396c6 (e:56c6)
+.halveStat
 	ld a, [hl]
 	srl a
 	ld [hli], a
 	rr [hl]
 	or [hl]
-	jr nz, .asm_396d1
-	ld [hl], $1
-.asm_396d1
+	jr nz, .nonzeroStat
+	ld [hl], 1
+.nonzeroStat
 	dec hl
 	ret
 
@@ -69,41 +71,42 @@
 	callab _LoadTrainerPic
 	hlCoord 19, 0
 	ld c, $0
-.asm_396e9
+.scrollLoop
 	inc c
 	ld a, c
-	cp $7
+	cp 7
 	ret z
 	ld d, $0
 	push bc
 	push hl
-.asm_396f2
-	call Func_39707
+.drawTrainerPicLoop
+	call DrawTrainerPicColumn
 	inc hl
-	ld a, $7
+	ld a, 7
 	add d
 	ld d, a
 	dec c
-	jr nz, .asm_396f2
-	ld c, $4
+	jr nz, .drawTrainerPicLoop
+	ld c, 4
 	call DelayFrames
 	pop hl
 	pop bc
 	dec hl
-	jr .asm_396e9
+	jr .scrollLoop
 
-Func_39707: ; 39707 (e:5707)
+; write one 7-tile column of the trainer pic to the tilemap
+DrawTrainerPicColumn: ; 39707 (e:5707)
 	push hl
 	push de
 	push bc
-	ld e, $7
-.asm_3970c
+	ld e, 7
+.loop
 	ld [hl], d
-	ld bc, $14
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	inc d
 	dec e
-	jr nz, .asm_3970c
+	jr nz, .loop
 	pop bc
 	pop de
 	pop hl
@@ -577,121 +580,124 @@
 
 INCLUDE "text/trainer_names.asm"
 
-Func_39b87: ; 39b87 (e:5b87)
-	ld hl, wd0dc
-	ld de, wd0e1
+; formats a string at wMovesString that lists the moves at wMoves
+FormatMovesString: ; 39b87 (e:5b87)
+	ld hl, wMoves
+	ld de, wMovesString
 	ld b, $0
-.asm_39b8f
+.printMoveNameLoop
 	ld a, [hli]
-	and a
-	jr z, .asm_39bc1
+	and a ; end of move list?
+	jr z, .printDashLoop ; print dashes when no moves are left
 	push hl
 	ld [wd0b5], a
 	ld a, BANK(MoveNames)
 	ld [wPredefBank], a
 	ld a, MOVE_NAME
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	call GetName
 	ld hl, wcd6d
-.asm_39ba7
+.copyNameLoop
 	ld a, [hli]
 	cp $50
-	jr z, .asm_39bb0
+	jr z, .doneCopyingName
 	ld [de], a
 	inc de
-	jr .asm_39ba7
-.asm_39bb0
+	jr .copyNameLoop
+.doneCopyingName
 	ld a, b
 	ld [wcd6c], a
 	inc b
-	ld a, $4e
+	ld a, $4e ; line break
 	ld [de], a
 	inc de
 	pop hl
 	ld a, b
-	cp $4
-	jr z, .asm_39bd1
-	jr .asm_39b8f
-.asm_39bc1
+	cp NUM_MOVES
+	jr z, .done
+	jr .printMoveNameLoop
+.printDashLoop
 	ld a, "-"
 	ld [de], a
 	inc de
 	inc b
 	ld a, b
-	cp $4
-	jr z, .asm_39bd1
-	ld a, $4e
+	cp NUM_MOVES
+	jr z, .done
+	ld a, $4e ; line break
 	ld [de], a
 	inc de
-	jr .asm_39bc1
-.asm_39bd1
+	jr .printDashLoop
+.done
 	ld a, "@"
 	ld [de], a
 	ret
 
+; XXX this is called in a few places, but it doesn't appear to do anything useful
 Func_39bd5: ; 39bd5 (e:5bd5)
 	ld a, [wd11b]
 	cp $1
 	jr nz, .asm_39be6
-	ld hl, wEnemyPartyCount ; wEnemyPartyCount
-	ld de, wEnemyMonOT ; wd9ac OT names of other player
-	ld a, $6
+	ld hl, wEnemyPartyCount
+	ld de, wEnemyMonOT
+	ld a, ENEMYOT_NAME
 	jr .asm_39c18
 .asm_39be6
 	cp $4
 	jr nz, .calcAttackStat4
-	ld hl, wPartyCount ; wPartyCount
-	ld de, wPartyMonOT ; wd273
-	ld a, $5
+	ld hl, wPartyCount
+	ld de, wPartyMonOT
+	ld a, PLAYEROT_NAME
 	jr .asm_39c18
 .calcAttackStat4
 	cp $5
 	jr nz, .asm_39c02
 	ld hl, wStringBuffer2 + 11
-	ld de, MonsterNames ; $421e
-	ld a, $1
+	ld de, MonsterNames
+	ld a, MONSTER_NAME
 	jr .asm_39c18
 .asm_39c02
 	cp $2
 	jr nz, .asm_39c10
-	ld hl, wNumBagItems ; wNumBagItems
-	ld de, ItemNames ; $472b
-	ld a, $4
+	ld hl, wNumBagItems
+	ld de, ItemNames
+	ld a, ITEM_NAME
 	jr .asm_39c18
 .asm_39c10
 	ld hl, wStringBuffer2 + 11
-	ld de, ItemNames ; $472b
+	ld de, ItemNames
 	ld a, ITEM_NAME
 .asm_39c18
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
+	ld [wList + 1], a
 	ld a, e
 	ld [wcf8d], a
 	ld a, d
 	ld [wcf8e], a
-	ld bc, ItemPrices ; $4608
+	ld bc, ItemPrices
 	ld a, c
-	ld [wcf8f], a
+	ld [wItemPrices], a
 	ld a, b
-	ld [wcf90], a
+	ld [wItemPrices + 1], a
 	ret
 
-Func_39c37: ; 39c37 (e:5c37)
+; get species of mon e in list [wcc49] for LoadMonData
+GetMonSpecies: ; 39c37 (e:5c37)
 	ld hl, wPartySpecies
 	ld a, [wcc49]
 	and a
-	jr z, .asm_39c4b
+	jr z, .getSpecies
 	dec a
-	jr z, .asm_39c48
+	jr z, .enemyParty
 	ld hl, wBoxSpecies
-	jr .asm_39c4b
-.asm_39c48
+	jr .getSpecies
+.enemyParty
 	ld hl, wEnemyPartyMons
-.asm_39c4b
-	ld d, $0
+.getSpecies
+	ld d, 0
 	add hl, de
 	ld a, [hl]
 	ld [wcf91], a
@@ -954,7 +960,7 @@
 JugglerAI: ; 3a5e9 (e:65e9)
 	cp $40
 	ret nc
-	jp Func_3a72a
+	jp AISwitchIfEnoughMons
 
 BlackbeltAI: ; 3a5ef (e:65ef)
 	cp $20
@@ -974,12 +980,12 @@
 CooltrainerFAI: ; 3a601 (e:6601)
 	cp $40
 	ld a,$A
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	jp c,AIUseHyperPotion
 	ld a,5
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	ret nc
-	jp Func_3a72a
+	jp AISwitchIfEnoughMons
 
 BrockAI: ; 3a614 (e:6614)
 ; if his active monster has a status condition, use a full heal
@@ -1002,7 +1008,7 @@
 	cp $80
 	ret nc
 	ld a,$A
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	ret nc
 	jp AIUseSuperPotion
 
@@ -1020,7 +1026,7 @@
 	cp $40
 	ret nc
 	ld a,$A
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	ret nc
 	jp AIUseHyperPotion
 
@@ -1028,7 +1034,7 @@
 	cp $20
 	ret nc
 	ld a,5
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	ret nc
 	jp AIUsePotion
 
@@ -1036,7 +1042,7 @@
 	cp $20
 	ret nc
 	ld a,5
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	ret nc
 	jp AIUseFullRestore
 
@@ -1044,7 +1050,7 @@
 	cp $80
 	ret nc
 	ld a,5
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	ret nc
 	jp AIUseSuperPotion
 
@@ -1055,11 +1061,11 @@
 
 AgathaAI: ; 3a676 (e:6676)
 	cp $14
-	jp c,Func_3a72a
+	jp c,AISwitchIfEnoughMons
 	cp $80
 	ret nc
 	ld a,4
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	ret nc
 	jp AIUseSuperPotion
 
@@ -1067,7 +1073,7 @@
 	cp $80
 	ret nc
 	ld a,5
-	call Func_3a7cf
+	call AICheckIfHPBelowFraction
 	ret nc
 	jp AIUseHyperPotion
 
@@ -1109,7 +1115,7 @@
 	ld [de],a
 	ld [wHPBarMaxHP+1],a
 	ld [wEnemyMonHP],a
-	jr Func_3a718
+	jr AIPrintItemUseAndUpdateHPBar
 
 AIUsePotion: ; 3a6ca (e:66ca)
 ; enemy trainer heals his monster with a potion
@@ -1159,7 +1165,7 @@
 	ld a,[de]
 	ld [wHPBarMaxHP+1],a
 	sbc b
-	jr nc,Func_3a718
+	jr nc,AIPrintItemUseAndUpdateHPBar
 	inc de
 	ld a,[de]
 	dec de
@@ -1170,15 +1176,16 @@
 	ld [wHPBarNewHP+1],a
 	; fallthrough
 
-Func_3a718: ; 3a718 (e:6718)
+AIPrintItemUseAndUpdateHPBar: ; 3a718 (e:6718)
 	call AIPrintItemUse_
 	hlCoord 2, 2
 	xor a
-	ld [wListMenuID],a
+	ld [wHPBarType],a
 	predef UpdateHPBar2
 	jp DecrementAICount
 
-Func_3a72a: ; 3a72a (e:672a)
+AISwitchIfEnoughMons: ; 3a72a (e:672a)
+; enemy trainer switches if there are 3 or more unfainted mons in party
 	ld a,[wEnemyPartyCount]
 	ld c,a
 	ld hl,wEnemyMon1HP
@@ -1280,7 +1287,8 @@
 	ld a,DIRE_HIT
 	jp AIPrintItemUse
 
-Func_3a7cf: ; 3a7cf (e:67cf)
+AICheckIfHPBelowFraction: ; 3a7cf (e:67cf)
+; return carry if enemy trainer's current HP is below 1 / a of the maximum
 	ld [H_DIVISOR],a
 	ld hl,wEnemyMonMaxHP
 	ld a,[hli]
@@ -1394,7 +1402,7 @@
 	ld a, $8
 	ld [wTrainerEngageDistance], a
 	ld hl, wOAMBuffer
-	jp Func_3a8e1
+	jp WritePokeballOAMData
 
 SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
 	call PlaceEnemyHUDTiles
@@ -1408,7 +1416,7 @@
 	ld a, $f8
 	ld [wTrainerEngageDistance], a
 	ld hl, wOAMBuffer + PARTY_LENGTH * 4
-	jp Func_3a8e1
+	jp WritePokeballOAMData
 
 SetupPokeballs: ; 0x3a8a6
 	ld a, [de]
@@ -1420,7 +1428,7 @@
 	ld [de], a
 	inc de
 	dec c
-	jr nz, .emptyloop ; 0x3a8b2 $fb
+	jr nz, .emptyloop
 	pop af
 	ld de, wBuffer
 .monloop
@@ -1460,10 +1468,10 @@
 	add hl, bc
 	ret
 
-Func_3a8e1: ; 3a8e1 (e:68e1)
-	ld de, wHPBarMaxHP
+WritePokeballOAMData: ; 3a8e1 (e:68e1)
+	ld de, wBuffer
 	ld c, PARTY_LENGTH
-.asm_3a8e6
+.loop
 	ld a, [W_BASECOORDY] ; wd082
 	ld [hli], a
 	ld a, [W_BASECOORDX] ; wd081
@@ -1479,7 +1487,7 @@
 	ld [W_BASECOORDX], a ; wd081
 	inc de
 	dec c
-	jr nz, .asm_3a8e6
+	jr nz, .loop
 	ret
 
 PlacePlayerHUDTiles: ; 3a902 (e:6902)
@@ -1541,7 +1549,7 @@
 	ld a, $8
 	ld [wTrainerEngageDistance], a
 	ld hl, wOAMBuffer
-	call Func_3a8e1
+	call WritePokeballOAMData
 	ld hl, wEnemyMons ; wEnemyMon1Species
 	ld de, wEnemyPartyCount ; wEnemyPartyCount
 	call SetupPokeballs
@@ -1550,7 +1558,7 @@
 	ld [hli], a
 	ld [hl], $68
 	ld hl, wOAMBuffer + $18
-	jp Func_3a8e1
+	jp WritePokeballOAMData
 
 ; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (faited) and pokeball slot (no mon)
 PokeballTileGraphics:: ; 3a97e (e:697e)
--- a/engine/battle/e_2.asm
+++ b/engine/battle/e_2.asm
@@ -1,13 +1,13 @@
 HealEffect_: ; 3b9ec (e:79ec)
-	ld a, [H_WHOSETURN] ; $fff3
+	ld a, [H_WHOSETURN]
 	and a
-	ld de, wBattleMonHP ; wd015
-	ld hl, wBattleMonMaxHP ; wd023
-	ld a, [W_PLAYERMOVENUM] ; wcfd2
+	ld de, wBattleMonHP
+	ld hl, wBattleMonMaxHP
+	ld a, [W_PLAYERMOVENUM]
 	jr z, .asm_3ba03
-	ld de, wEnemyMonHP ; wEnemyMonHP
-	ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
-	ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
+	ld de, wEnemyMonHP
+	ld hl, wEnemyMonMaxHP
+	ld a, [W_ENEMYMOVENUM]
 .asm_3ba03
 	ld b, a
 	ld a, [de]
@@ -16,7 +16,7 @@
 	inc hl
 	ld a, [de]
 	sbc [hl]
-	jp z, Func_3ba97
+	jp z, .failed
 	ld a, b
 	cp REST
 	jr nz, .asm_3ba37
@@ -23,20 +23,20 @@
 	push hl
 	push de
 	push af
-	ld c, $32
+	ld c, 50
 	call DelayFrames
-	ld hl, wBattleMonStatus ; wBattleMonStatus
-	ld a, [H_WHOSETURN] ; $fff3
+	ld hl, wBattleMonStatus
+	ld a, [H_WHOSETURN]
 	and a
 	jr z, .asm_3ba25
-	ld hl, wEnemyMonStatus ; wcfe9
+	ld hl, wEnemyMonStatus
 .asm_3ba25
 	ld a, [hl]
 	and a
 	ld [hl], 2 ; Number of turns from Rest
-	ld hl, StartedSleepingEffect ; $7aa2
+	ld hl, StartedSleepingEffect
 	jr z, .asm_3ba31
-	ld hl, FellAsleepBecameHealthyText ; $7aa7
+	ld hl, FellAsleepBecameHealthyText
 .asm_3ba31
 	call PrintText
 	pop af
@@ -81,9 +81,9 @@
 	ld [de], a
 	ld [wHPBarNewHP], a
 .asm_3ba6f
-	ld hl, Func_3fba8 ; $7ba8
+	ld hl, PlayCurrentMoveAnimation
 	call BankswitchEtoF
-	ld a, [H_WHOSETURN] ; $fff3
+	ld a, [H_WHOSETURN]
 	and a
 	hlCoord 10, 9
 	ld a, $1
@@ -91,15 +91,14 @@
 	hlCoord 2, 2
 	xor a
 .asm_3ba83
-	ld [wListMenuID], a ; wListMenuID
+	ld [wHPBarType], a
 	predef UpdateHPBar2
-	ld hl, DrawHUDsAndHPBars ; $4d5a
+	ld hl, DrawHUDsAndHPBars
 	call BankswitchEtoF
-	ld hl, RegainedHealthText ; $7aac
+	ld hl, RegainedHealthText
 	jp PrintText
-
-Func_3ba97: ; 3ba97 (e:7a97)
-	ld c, $32
+.failed
+	ld c, 50
 	call DelayFrames
 	ld hl, PrintButItFailedText_
 	jp BankswitchEtoF
@@ -119,27 +118,27 @@
 TransformEffect_: ; 3bab1 (e:7ab1)
 	ld hl, wBattleMonSpecies
 	ld de, wEnemyMonSpecies
-	ld bc, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
-	ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1
-	ld a, [H_WHOSETURN] ; $fff3
+	ld bc, W_ENEMYBATTSTATUS3
+	ld a, [W_ENEMYBATTSTATUS1]
+	ld a, [H_WHOSETURN]
 	and a
 	jr nz, .asm_3bad1
 	ld hl, wEnemyMonSpecies
 	ld de, wBattleMonSpecies
-	ld bc, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
-	ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
-	ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
+	ld bc, W_PLAYERBATTSTATUS3
+	ld [wPlayerMoveListIndex], a
+	ld a, [W_PLAYERBATTSTATUS1]
 .asm_3bad1
 	bit Invulnerable, a ; is mon invulnerable to typical attacks? (fly/dig)
-	jp nz, Func_3bb8c
+	jp nz, .failed
 	push hl
 	push de
 	push bc
-	ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
-	ld a, [H_WHOSETURN] ; $fff3
+	ld hl, W_PLAYERBATTSTATUS2
+	ld a, [H_WHOSETURN]
 	and a
 	jr z, .asm_3bae4
-	ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
+	ld hl, W_ENEMYBATTSTATUS2
 .asm_3bae4
 	bit HasSubstituteUp, [hl]
 	push af
@@ -146,10 +145,10 @@
 	ld hl, Func_79747
 	ld b, BANK(Func_79747)
 	call nz, Bankswitch
-	ld a, [W_OPTIONS] ; W_OPTIONS
+	ld a, [W_OPTIONS]
 	add a
-	ld hl, Func_3fba8 ; $7ba8
-	ld b, BANK(Func_3fba8)
+	ld hl, PlayCurrentMoveAnimation
+	ld b, BANK(PlayCurrentMoveAnimation)
 	jr nc, .asm_3baff
 	ld hl, AnimationTransformMon
 	ld b, BANK(AnimationTransformMon)
@@ -178,7 +177,7 @@
 	inc bc
 	inc bc
 	call CopyData
-	ld a, [H_WHOSETURN] ; $fff3
+	ld a, [H_WHOSETURN]
 	and a
 	jr z, .asm_3bb32
 	ld a, [de]
@@ -228,15 +227,15 @@
 	call GetMonName
 	ld hl, wEnemyMonUnmodifiedAttack
 	ld de, wPlayerMonUnmodifiedAttack
-	call Func_3bb7d
-	ld hl, wEnemyMonStatMods ; wcd2e
-	ld de, wPlayerMonStatMods ; wcd1a
-	call Func_3bb7d
-	ld hl, TransformedText ; $7b92
+	call .copyBasedOnTurn
+	ld hl, wEnemyMonStatMods
+	ld de, wPlayerMonStatMods
+	call .copyBasedOnTurn
+	ld hl, TransformedText
 	jp PrintText
 
-Func_3bb7d: ; 3bb7d (e:7b7d)
-	ld a, [H_WHOSETURN] ; $fff3
+.copyBasedOnTurn
+	ld a, [H_WHOSETURN]
 	and a
 	jr z, .asm_3bb86
 	push hl
@@ -247,8 +246,8 @@
 	ld bc, $8
 	jp CopyData
 
-Func_3bb8c: ; 3bb8c (e:7b8c)
-	ld hl, PrintButItFailedText_ ; $7b53
+.failed
+	ld hl, PrintButItFailedText_
 	jp BankswitchEtoF
 
 TransformedText: ; 3bb92 (e:7b92)
@@ -256,13 +255,13 @@
 	db "@"
 
 ReflectLightScreenEffect_: ; 3bb97 (e:7b97)
-	ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
-	ld de, W_PLAYERMOVEEFFECT ; wcfd3
-	ld a, [H_WHOSETURN] ; $fff3
+	ld hl, W_PLAYERBATTSTATUS3
+	ld de, W_PLAYERMOVEEFFECT
+	ld a, [H_WHOSETURN]
 	and a
 	jr z, .asm_3bba8
-	ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
-	ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
+	ld hl, W_ENEMYBATTSTATUS3
+	ld de, W_ENEMYMOVEEFFECT
 .asm_3bba8
 	ld a, [de]
 	cp LIGHT_SCREEN_EFFECT
@@ -270,16 +269,16 @@
 	bit HasLightScreenUp, [hl] ; is mon already protected by light screen?
 	jr nz, .moveFailed
 	set HasLightScreenUp, [hl] ; mon is now protected by light screen
-	ld hl, LightScreenProtectedText ; $7bd7
+	ld hl, LightScreenProtectedText
 	jr .asm_3bbc1
 .reflect
 	bit HasReflectUp, [hl] ; is mon already protected by reflect?
 	jr nz, .moveFailed
 	set HasReflectUp, [hl] ; mon is now protected by reflect
-	ld hl, ReflectGainedArmorText ; $7bdc
+	ld hl, ReflectGainedArmorText
 .asm_3bbc1
 	push hl
-	ld hl, Func_3fba8 ; $7ba8
+	ld hl, PlayCurrentMoveAnimation
 	call BankswitchEtoF
 	pop hl
 	jp PrintText
@@ -286,7 +285,7 @@
 .moveFailed
 	ld c, $32
 	call DelayFrames
-	ld hl, PrintButItFailedText_ ; $7b53
+	ld hl, PrintButItFailedText_
 	jp BankswitchEtoF
 
 LightScreenProtectedText: ; 3bbd7 (e:7bd7)
--- a/engine/cable_club.asm
+++ b/engine/cable_club.asm
@@ -338,10 +338,10 @@
 	ld a, 1
 	ld [wTopMenuItemX], a
 .enemyMonMenu_HandleInput
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	set 1, [hl]
 	call HandleMenuInput
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	res 1, [hl]
 	and a
 	jp z, .getNewInput
@@ -403,10 +403,10 @@
 	ld bc, $0601
 	call ClearScreenArea
 .playerMonMenu_HandleInput
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	set 1, [hl]
 	call HandleMenuInput
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	res 1, [hl]
 	and a ; was anything pressed?
 	jr nz, .playerMonMenu_SomethingPressed
@@ -578,7 +578,7 @@
 
 ReturnToCableClubRoom: ; 577d (1:577d)
 	call GBPalWhiteOutWithDelay3
-	ld hl, wcfc4
+	ld hl, wFontLoaded
 	ld a, [hl]
 	push af
 	push hl
@@ -716,7 +716,7 @@
 	ld bc, $080b
 	ld a, TRADE_CANCEL_MENU
 	ld [wTwoOptionMenuID], a
-	ld a, $14
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	call LoadScreenTilesFromBuffer1
@@ -808,7 +808,7 @@
 	ld a, c
 	ld bc, wEnemyMon2 - wEnemyMon1
 	call AddNTimes
-	ld de, wcf98
+	ld de, wLoadedMon
 	ld bc, wEnemyMon2 - wEnemyMon1
 	call CopyData
 	call AddEnemyMonToPlayerParty
--- a/engine/clear_save.asm
+++ b/engine/clear_save.asm
@@ -1,4 +1,4 @@
-Func_1c98a: ; 1c98a (7:498a)
+DoClearSaveDialogue: ; 1c98a (7:498a)
 	call ClearScreen
 	call GoPAL_SET_CF1C
 	call LoadFontTilePatterns
@@ -9,13 +9,13 @@
 	ld bc, $80f
 	ld a, NO_YES_MENU
 	ld [wTwoOptionMenuID], a
-	ld a, $14
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	and a
 	jp z, Init
-	callba Func_73b6a
+	callba ClearSAV
 	jp Init
 
 ClearSaveDataText: ; 1c9c1 (7:49c1)
--- a/engine/evos_moves.asm
+++ b/engine/evos_moves.asm
@@ -88,7 +88,7 @@
 	jp nz, .nextEvoEntry1 ; if not trading, go to the next evolution entry
 	ld a, [hli] ; level requirement
 	ld b, a
-	ld a, [wcfb9]
+	ld a, [wLoadedMonLevel]
 	cp b ; is the mon's level greater than the evolution requirement?
 	jp c, Evolution_PartyMonLoop ; if so, go the next mon
 	jr .asm_3adb6
@@ -101,7 +101,7 @@
 .checkLevel
 	ld a, [hli] ; level requirement
 	ld b, a
-	ld a, [wcfb9]
+	ld a, [wLoadedMonLevel]
 	cp b ; is the mon's level greater than the evolution requirement?
 	jp c, .nextEvoEntry2 ; if so, go the next evolution entry
 .asm_3adb6
@@ -136,10 +136,10 @@
 	pop hl
 	ld a, [hl]
 	ld [wd0b5], a
-	ld [wcf98], a
+	ld [wLoadedMonSpecies], a
 	ld [wHPBarMaxHP + 1], a
 	ld a, MONSTER_NAME
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	ld a, BANK(TrainerNames) ; bank is not used for monster names
 	ld [wPredefBank], a
 	call GetName
@@ -169,8 +169,8 @@
 	ld [W_MONHDEXNUM], a
 	pop af
 	ld [wd11e], a
-	ld hl, wcfa8
-	ld de, wcfba
+	ld hl, wLoadedMonHPExp - 1
+	ld de, wLoadedMonStats
 	ld b, $1
 	call CalcStats
 	ld a, [wWhichPokemon]
@@ -186,7 +186,7 @@
 	ld a, [hli]
 	ld b, a
 	ld c, [hl]
-	ld hl, wcfbb
+	ld hl, wLoadedMonMaxHP + 1
 	ld a, [hld]
 	sub c
 	ld c, a
@@ -193,7 +193,7 @@
 	ld a, [hl]
 	sbc b
 	ld b, a
-	ld hl, wcf9a
+	ld hl, wLoadedMonHP + 1
 	ld a, [hl]
 	add c
 	ld [hld], a
@@ -226,7 +226,7 @@
 	call Evolution_FlagAction
 	pop de
 	pop hl
-	ld a, [wcf98]
+	ld a, [wLoadedMonSpecies]
 	ld [hl], a
 	push hl
 	ld l, e
@@ -364,7 +364,7 @@
 	dec b
 	jr nz, .checkCurrentMovesLoop
 	ld a, d
-	ld [wd0e0], a
+	ld [wMoveNum], a
 	ld [wd11e], a
 	call GetMoveName
 	call CopyStringToCF4B
--- a/engine/experience.asm
+++ b/engine/experience.asm
@@ -1,6 +1,6 @@
 ; calculates the level a mon should be based on its current exp
 CalcLevelFromExperience: ; 58f43 (16:4f43)
-	ld a, [wcf98]
+	ld a, [wLoadedMonSpecies]
 	ld [wd0b5], a
 	call GetMonHeader
 	ld d, $1 ; init level to 1
@@ -8,7 +8,7 @@
 	inc d ; increment level
 	call CalcExperience
 	push hl
-	ld hl, wcfa8 ; current exp
+	ld hl, wLoadedMonExp + 2 ; current exp
 ; compare exp needed for level d with current exp
 	ld a, [H_MULTIPLICAND + 2]
 	ld c, a
--- a/engine/give_pokemon.asm
+++ b/engine/give_pokemon.asm
@@ -14,7 +14,7 @@
 	ld [wEnemyMonSpecies2], a
 	callab LoadEnemyMonData
 	call SetPokedexOwnedFlag
-	callab Func_e7a4
+	callab SendNewMonToBox
 	ld hl, wcf4b
 	ld a, [wd5a0]
 	and $7f
--- a/engine/hall_of_fame.asm
+++ b/engine/hall_of_fame.asm
@@ -170,7 +170,7 @@
 	ld a, [wWhichTrade] ; wWhichTrade
 	ld [wd0b5], a
 	hlCoord 3, 9
-	predef Func_27d6b
+	predef PrintMonType
 	ld a, [wWhichTrade] ; wWhichTrade
 	jp PlayCry
 
--- a/engine/hidden_object_functions17.asm
+++ b/engine/hidden_object_functions17.asm
@@ -66,7 +66,7 @@
 	xor a
 	ld [hWY], a
 	call SaveScreenTilesToBuffer1
-	ld a, $11
+	ld a, MON_SPRITE_POPUP
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	call UpdateSprites
--- a/engine/hp_bar.asm
+++ b/engine/hp_bar.asm
@@ -203,7 +203,7 @@
 UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
 	push af
 	push de
-	ld a, [wListMenuID] ; wListMenuID
+	ld a, [wHPBarType]
 	and a
 	jr z, .asm_fb2d
 	ld a, [wHPBarOldHP]
@@ -211,7 +211,7 @@
 	ld a, [wHPBarOldHP+1]
 	ld [wcef0], a
 	push hl
-	ld a, [$fff6]
+	ld a, [hFlags_0xFFF6]
 	bit 0, a
 	jr z, .asm_fb15
 	ld de, $9
--- a/engine/items/items.asm
+++ b/engine/items/items.asm
@@ -430,7 +430,7 @@
 	jr .End
 .sendToBox	;$5907
 	call ClearSprites
-	call Func_e7a4
+	call SendNewMonToBox
 	ld hl,ItemUseBallText07
 	ld a,[wd7f1]
 	bit 0,a		;already met Bill?
@@ -777,7 +777,7 @@
 	ld de,wBattleMonMaxHP
 	ld bc,10
 	call CopyData ; copy party stats to in-battle stat data
-	predef Func_3ed02
+	predef DoubleOrHalveSelectedStats
 	jp .doneHealing
 .healHP
 	inc hl ; hl = address of current HP
@@ -919,15 +919,15 @@
 	call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled
 	ld a,(SFX_02_3d - SFX_Headers_02) / 3
 	call PlaySoundWaitForCurrent ; play sound
-	ld a,[$fff6]
+	ld a,[hFlags_0xFFF6]
 	set 0,a
-	ld [$fff6],a
+	ld [hFlags_0xFFF6],a
 	ld a,$02
-	ld [wListMenuID],a
+	ld [wHPBarType],a
 	predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled
-	ld a,[$fff6]
+	ld a,[hFlags_0xFFF6]
 	res 0,a
-	ld [$fff6],a
+	ld [hFlags_0xFFF6],a
 	pop af
 	ld b,a ; store heal amount (1/5 of max HP)
 	ld hl,wHPBarOldHP + 1
@@ -1069,15 +1069,15 @@
 	jr z,.playStatusAilmentCuringSound
 	ld a,(SFX_02_3d - SFX_Headers_02) / 3 ; HP healing sound
 	call PlaySoundWaitForCurrent ; play sound
-	ld a,[$fff6]
+	ld a,[hFlags_0xFFF6]
 	set 0,a
-	ld [$fff6],a
+	ld [hFlags_0xFFF6],a
 	ld a,$02
-	ld [wListMenuID],a
+	ld [wHPBarType],a
 	predef UpdateHPBar2 ; animate the HP bar lengthening
-	ld a,[$fff6]
+	ld a,[hFlags_0xFFF6]
 	res 0,a
-	ld [$fff6],a
+	ld [hFlags_0xFFF6],a
 	ld a,$f7 ; revived message
 	ld [wd07d],a
 	ld a,[wcf91]
@@ -1090,7 +1090,7 @@
 	jr .showHealingItemMessage
 .playStatusAilmentCuringSound
 	ld a,(SFX_02_3e - SFX_Headers_02) / 3 ; status ailment curing sound
-	call PlaySoundWaitForCurrent ; play sound
+	call PlaySoundWaitForCurrent
 .showHealingItemMessage
 	xor a
 	ld [H_AUTOBGTRANSFERENABLED],a
@@ -1102,7 +1102,7 @@
 	ld [H_AUTOBGTRANSFERENABLED],a
 	ld c,50
 	call DelayFrames
-	call WaitForTextScrollButtonPress ; wait for a button press
+	call WaitForTextScrollButtonPress
 	jr .done
 .canceledItemUse
 	xor a
@@ -1118,7 +1118,7 @@
 	ld a,[W_ISINBATTLE]
 	and a
 	ret nz
-	jp ReloadMapData ; restore saved screen
+	jp ReloadMapData
 .useVitamin
 	push hl
 	ld a,[hl]
@@ -2084,7 +2084,7 @@
 	ld [wd11e],a
 	predef TMToMove ; get move ID from TM/HM ID
 	ld a,[wd11e]
-	ld [wd0e0],a
+	ld [wMoveNum],a
 	call GetMoveName
 	call CopyStringToCF4B ; copy name to wcf4b
 	pop af
@@ -2097,7 +2097,7 @@
 	call PrintText
 	hlCoord 14, 7
 	ld bc,$080f
-	ld a,$14
+	ld a,TWO_OPTION_MENU
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; yes/no menu
 	ld a,[wCurrentMenuItem]
@@ -2488,7 +2488,7 @@
 	call PrintText
 	hlCoord 14, 7
 	ld bc,$080f
-	ld a,$14
+	ld a,TWO_OPTION_MENU
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; yes/no menu
 	ld a,[wd12e]
@@ -2567,7 +2567,7 @@
 
 INCLUDE "data/key_items.asm"
 
-Func_e7a4: ; e7a4 (3:67a4)
+SendNewMonToBox: ; e7a4 (3:67a4)
 	ld de, W_NUMINBOX ; wda80
 	ld a, [de]
 	inc a
@@ -2818,15 +2818,17 @@
 	call LoadCurrentMapView
 	jp UpdateSprites
 
-Func_e9cb: ; e9cb (3:69cb)
-	ld hl, WildDataPointers ; $4eeb
-	ld de, wHPBarMaxHP
+; creates a list at wBuffer of maps where the mon in [wd11e] can be found.
+; this is used by the pokedex to display locations the mon can be found on the map.
+FindWildLocationsOfMon: ; e9cb (3:69cb)
+	ld hl, WildDataPointers
+	ld de, wBuffer
 	ld c, $0
-.asm_e9d3
+.loop
 	inc hl
 	ld a, [hld]
 	inc a
-	jr z, .asm_e9ec
+	jr z, .done
 	push hl
 	ld a, [hli]
 	ld h, [hl]
@@ -2833,34 +2835,34 @@
 	ld l, a
 	ld a, [hli]
 	and a
-	call nz, Func_e9f0
+	call nz, CheckMapForMon ; land
 	ld a, [hli]
 	and a
-	call nz, Func_e9f0
+	call nz, CheckMapForMon ; water
 	pop hl
 	inc hl
 	inc hl
 	inc c
-	jr .asm_e9d3
-.asm_e9ec
-	ld a, $ff
+	jr .loop
+.done
+	ld a, $ff ; list terminator
 	ld [de], a
 	ret
 
-Func_e9f0: ; e9f0 (3:69f0)
+CheckMapForMon: ; e9f0 (3:69f0)
 	inc hl
 	ld b, $a
-.asm_e9f3
+.loop
 	ld a, [wd11e]
 	cp [hl]
-	jr nz, .asm_e9fc
+	jr nz, .nextEntry
 	ld a, c
 	ld [de], a
 	inc de
-.asm_e9fc
+.nextEntry
 	inc hl
 	inc hl
 	dec b
-	jr nz, .asm_e9f3
+	jr nz, .loop
 	dec hl
 	ret
--- a/engine/items/tmhm.asm
+++ b/engine/items/tmhm.asm
@@ -1,12 +1,12 @@
-; checks if the mon in wWhichPokemon already knows the move in wd0e0
+; checks if the mon in [wWhichPokemon] already knows the move in [wMoveNum]
 CheckIfMoveIsKnown: ; 2fe18 (b:7e18)
 	ld a, [wWhichPokemon]
 	ld hl, wPartyMon1Moves
-	ld bc, $2c
+	ld bc, wPartyMon2 - wPartyMon1
 	call AddNTimes
-	ld a, [wd0e0]
+	ld a, [wMoveNum]
 	ld b, a
-	ld c, $4 ; nubmer of moves
+	ld c, NUM_MOVES
 .loop
 	ld a, [hli]
 	cp b
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -1,4 +1,4 @@
-; tests if mon [wcf91] can learn move [wd0e0]
+; tests if mon [wcf91] can learn move [wMoveNum]
 CanLearnTM: ; 1373e (4:773e)
 	ld a, [wcf91]
 	ld [wd0b5], a
@@ -5,7 +5,7 @@
 	call GetMonHeader
 	ld hl, W_MONHLEARNSET
 	push hl
-	ld a, [wd0e0]
+	ld a, [wMoveNum]
 	ld b, a
 	ld c, $0
 	ld hl, TechnicalMachines
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -1,7 +1,7 @@
 LearnMove: ; 6e43 (1:6e43)
 	call SaveScreenTilesToBuffer1
-	ld a, [wWhichPokemon] ; wWhichPokemon
-	ld hl, wPartyMonNicks ; wPartyMonNicks
+	ld a, [wWhichPokemon]
+	ld hl, wPartyMonNicks
 	call GetPartyMonName
 	ld hl, wcd6d
 	ld de, wd036
@@ -9,9 +9,9 @@
 	call CopyData
 
 DontAbandonLearning: ; 6e5b (1:6e5b)
-	ld hl, wPartyMon1Moves ; wPartyMon1Moves
+	ld hl, wPartyMon1Moves
 	ld bc, $2c
-	ld a, [wWhichPokemon] ; wWhichPokemon
+	ld a, [wWhichPokemon]
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -36,7 +36,7 @@
 	pop de
 	pop hl
 .asm_6e8b
-	ld a, [wd0e0]
+	ld a, [wMoveNum]
 	ld [hl], a
 	ld bc, $15
 	add hl, bc
@@ -43,7 +43,7 @@
 	push hl
 	push de
 	dec a
-	ld hl, Moves ; $4000
+	ld hl, Moves
 	ld bc, $6
 	call AddNTimes
 	ld de, wHPBarMaxHP
@@ -53,22 +53,22 @@
 	pop de
 	pop hl
 	ld [hl], a
-	ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+	ld a, [W_ISINBATTLE]
 	and a
 	jp z, PrintLearnedMove
-	ld a, [wWhichPokemon] ; wWhichPokemon
+	ld a, [wWhichPokemon]
 	ld b, a
-	ld a, [wPlayerMonNumber] ; wPlayerMonNumber
+	ld a, [wPlayerMonNumber]
 	cp b
 	jp nz, PrintLearnedMove
 	ld h, d
 	ld l, e
 	ld de, wBattleMonMoves
-	ld bc, $4
+	ld bc, NUM_MOVES
 	call CopyData
 	ld bc, $11
 	add hl, bc
-	ld de, wBattleMonPP ; wBattleMonPP
+	ld de, wBattleMonPP
 	ld bc, $4
 	call CopyData
 	jp PrintLearnedMove
@@ -78,10 +78,10 @@
 	call PrintText
 	hlCoord 14, 7
 	ld bc, $80f
-	ld a, $14
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
-	call DisplayTextBoxID
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	call DisplayTextBoxID ; yes/no menu
+	ld a, [wCurrentMenuItem]
 	and a
 	jp nz, DontAbandonLearning
 	ld hl, DidNotLearnText
@@ -101,20 +101,20 @@
 	call PrintText
 	hlCoord 14, 7
 	ld bc, $80f
-	ld a, $14
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
-	call DisplayTextBoxID
+	call DisplayTextBoxID ; yes/no menu
 	pop hl
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	rra
 	ret c
 	ld bc, $fffc
 	add hl, bc
 	push hl
-	ld de, wd0dc
-	ld bc, $4
+	ld de, wMoves
+	ld bc, NUM_MOVES
 	call CopyData
-	callab Func_39b87
+	callab FormatMovesString
 	pop hl
 .asm_6f39
 	push hl
@@ -125,15 +125,15 @@
 	ld c, $e
 	call TextBoxBorder
 	hlCoord 6, 8
-	ld de, wd0e1
-	ld a, [$fff6]
+	ld de, wMovesString
+	ld a, [hFlags_0xFFF6]
 	set 2, a
-	ld [$fff6], a
+	ld [hFlags_0xFFF6], a
 	call PlaceString
-	ld a, [$fff6]
+	ld a, [hFlags_0xFFF6]
 	res 2, a
-	ld [$fff6], a
-	ld hl, wTopMenuItemY ; wTopMenuItemY
+	ld [hFlags_0xFFF6], a
+	ld hl, wTopMenuItemY
 	ld a, $8
 	ld [hli], a
 	ld a, $5
@@ -146,10 +146,10 @@
 	ld a, $3
 	ld [hli], a
 	ld [hl], $0
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	set 1, [hl]
 	call HandleMenuInput
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	res 1, [hl]
 	push af
 	call LoadScreenTilesFromBuffer1
@@ -158,7 +158,7 @@
 	bit 1, a
 	jr nz, .asm_6fab
 	push hl
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	ld c, a
 	ld b, $0
 	add hl, bc
--- a/engine/menu/bills_pc.asm
+++ b/engine/menu/bills_pc.asm
@@ -1,6 +1,6 @@
 Func_213c8:: ; 213c8 (8:53c8)
 	xor a
-	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+	ld [H_AUTOBGTRANSFERENABLED], a
 	call SaveScreenTilesToBuffer2
 	ld a, [wd5a2]
 	and a
@@ -28,64 +28,64 @@
 	call TextBoxBorder
 	call UpdateSprites
 	ld a, $3
-	ld [wMaxMenuItem], a ; wMaxMenuItem
+	ld [wMaxMenuItem], a
 	ld a, [wd7f1]
 	bit 0, a
 	jr nz, .asm_21414
 	hlCoord 2, 2
-	ld de, SomeonesPCText ; $548b
+	ld de, SomeonesPCText
 	jr .asm_2141a
 .asm_21414
 	hlCoord 2, 2
-	ld de, BillsPCText ; $5497
+	ld de, BillsPCText
 .asm_2141a
 	call PlaceString
 	hlCoord 2, 4
-	ld de, wPlayerName ; wd158
+	ld de, wPlayerName
 	call PlaceString
 	ld l, c
 	ld h, b
-	ld de, PlayersPCText ; $54a0
+	ld de, PlayersPCText
 	call PlaceString
 	ld a, [wd74b]
 	bit 5, a
 	jr z, .asm_21462
 	hlCoord 2, 6
-	ld de, OaksPCText ; $54a5
+	ld de, OaksPCText
 	call PlaceString
 	ld a, [wd5a2]
 	and a
 	jr z, .asm_2145a
 	ld a, $4
-	ld [wMaxMenuItem], a ; wMaxMenuItem
+	ld [wMaxMenuItem], a
 	hlCoord 2, 8
-	ld de, PKMNLeaguePCText ; $54b2
+	ld de, PKMNLeaguePCText
 	call PlaceString
 	hlCoord 2, 10
-	ld de, LogOffPCText ; $54ba
+	ld de, LogOffPCText
 	jr .asm_2146d
 .asm_2145a
 	hlCoord 2, 8
-	ld de, LogOffPCText ; $54ba
+	ld de, LogOffPCText
 	jr .asm_2146d
 .asm_21462
 	ld a, $2
-	ld [wMaxMenuItem], a ; wMaxMenuItem
+	ld [wMaxMenuItem], a
 	hlCoord 2, 6
-	ld de, LogOffPCText ; $54ba
+	ld de, LogOffPCText
 .asm_2146d
 	call PlaceString
 	ld a, $3
-	ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+	ld [wMenuWatchedKeys], a
 	ld a, $2
-	ld [wTopMenuItemY], a ; wTopMenuItemY
+	ld [wTopMenuItemY], a
 	ld a, $1
-	ld [wTopMenuItemX], a ; wTopMenuItemX
+	ld [wTopMenuItemX], a
 	xor a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
-	ld [wLastMenuItem], a ; wLastMenuItem
+	ld [wCurrentMenuItem], a
+	ld [wLastMenuItem], a
 	ld a, $1
-	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+	ld [H_AUTOBGTRANSFERENABLED], a
 	ret
 
 SomeonesPCText:   db "SOMEONE's PC@"
@@ -101,9 +101,9 @@
 	xor a
 	ld [wccd3], a
 	inc a               ; MONSTER_NAME
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	call LoadHpBarAndStatusTilePatterns
-	ld a, [wListScrollOffset] ; wcc36
+	ld a, [wListScrollOffset]
 	push af
 	ld a, [wFlags_0xcd60]
 	bit 3, a
@@ -116,9 +116,9 @@
 Func_214e8: ; 214e8 (8:54e8)
 BillsPCMenu:
 	ld a, [wccd3]
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	ld hl, vChars2 + $780
-	ld de, PokeballTileGraphics ; $697e
+	ld de, PokeballTileGraphics
 	ld bc, (BANK(PokeballTileGraphics) << 8) + $01
 	call CopyVideoData
 	call LoadScreenTilesFromBuffer2DisableBGTransfer
@@ -127,9 +127,9 @@
 	ld c, $c
 	call TextBoxBorder
 	hlCoord 2, 2
-	ld de, BillsPCMenuText ; $56e1
+	ld de, BillsPCMenuText
 	call PlaceString
-	ld hl, wTopMenuItemY ; wTopMenuItemY
+	ld hl, wTopMenuItemY
 	ld a, $2
 	ld [hli], a
 	dec a
@@ -143,10 +143,10 @@
 	xor a
 	ld [hli], a
 	ld [hli], a
-	ld hl, wListScrollOffset ; wcc36
+	ld hl, wListScrollOffset
 	ld [hli], a
 	ld [hl], a
-	ld [wPlayerMonNumber], a ; wPlayerMonNumber
+	ld [wPlayerMonNumber], a
 	ld hl, WhatText
 	call PrintText
 	hlCoord 9, 14
@@ -167,16 +167,16 @@
 .asm_21551
 	Coorda 18, 16
 	hlCoord 10, 16
-	ld de, BoxNoPCText ; $5713
+	ld de, BoxNoPCText
 	call PlaceString
 	ld a, $1
-	ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
+	ld [H_AUTOBGTRANSFERENABLED], a
 	call Delay3
 	call HandleMenuInput
 	bit 1, a
 	jp nz, Func_21588 ; b button
 	call PlaceUnfilledArrowMenuCursor
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	ld [wccd3], a
 	and a
 	jp z, Func_21618 ; withdraw
@@ -200,7 +200,7 @@
 	res 5, [hl]
 	call LoadScreenTilesFromBuffer2
 	pop af
-	ld [wListScrollOffset], a ; wcc36
+	ld [wListScrollOffset], a
 	ld hl, wd730
 	res 6, [hl]
 	ret
@@ -207,7 +207,7 @@
 
 Func_215ac: ; 215ac (8:55ac)
 BillsPCDeposit:
-	ld a, [wPartyCount] ; wPartyCount
+	ld a, [wPartyCount]
 	dec a
 	jr nz, .asm_215bb
 	ld hl, CantDepositLastMonText
@@ -214,14 +214,14 @@
 	call PrintText
 	jp BillsPCMenu
 .asm_215bb
-	ld a, [W_NUMINBOX] ; wda80
+	ld a, [W_NUMINBOX]
 	cp MONS_PER_BOX
 	jr nz, .asm_215cb
-	ld hl, BoxFullText ; $5802
+	ld hl, BoxFullText
 	call PrintText
 	jp BillsPCMenu
 .asm_215cb
-	ld hl, wPartyCount ; wPartyCount
+	ld hl, wPartyCount
 	call Func_216be
 	jp c, BillsPCMenu
 	call Func_2174b
@@ -236,7 +236,7 @@
 	ld [wcf95], a
 	call RemovePokemon
 	call WaitForSoundToFinish
-	ld hl, wWhichTrade ; wWhichTrade
+	ld hl, wWhichTrade
 	ld a, [wd5a0]
 	and $7f
 	cp 9
@@ -251,31 +251,31 @@
 .asm_2160c
 	ld [hli], a
 	ld [hl], $50
-	ld hl, MonWasStoredText ; $57f8
+	ld hl, MonWasStoredText
 	call PrintText
 	jp BillsPCMenu
 
 Func_21618: ; 21618 (8:5618)
-	ld a, [W_NUMINBOX] ; wda80
+	ld a, [W_NUMINBOX]
 	and a
 	jr nz, .asm_21627
-	ld hl, NoMonText ; $580c
+	ld hl, NoMonText
 	call PrintText
 	jp Func_214e8
 .asm_21627
-	ld a, [wPartyCount] ; wPartyCount
+	ld a, [wPartyCount]
 	cp PARTY_LENGTH
 	jr nz, .asm_21637
-	ld hl, CantTakeMonText ; $5811
+	ld hl, CantTakeMonText
 	call PrintText
 	jp Func_214e8
 .asm_21637
-	ld hl, W_NUMINBOX ; wda80
+	ld hl, W_NUMINBOX
 	call Func_216be
 	jp c, Func_214e8
 	call Func_2174b
 	jp nc, Func_214e8
-	ld a, [wWhichPokemon] ; wWhichPokemon
+	ld a, [wWhichPokemon]
 	ld hl, wBoxMonNicks
 	call GetPartyMonName
 	ld a, [wcf91]
@@ -288,25 +288,25 @@
 	ld [wcf95], a
 	call RemovePokemon
 	call WaitForSoundToFinish
-	ld hl, MonIsTakenOutText ; $5807
+	ld hl, MonIsTakenOutText
 	call PrintText
 	jp Func_214e8
 
 Func_21673: ; 21673 (8:5673)
-	ld a, [W_NUMINBOX] ; wda80
+	ld a, [W_NUMINBOX]
 	and a
 	jr nz, .asm_21682
-	ld hl, NoMonText ; $580c
+	ld hl, NoMonText
 	call PrintText
 	jp Func_214e8
 .asm_21682
-	ld hl, W_NUMINBOX ; wda80
+	ld hl, W_NUMINBOX
 	call Func_216be
 	jp c, Func_214e8
-	ld hl, OnceReleasedText ; $581b
+	ld hl, OnceReleasedText
 	call PrintText
 	call YesNoChoice
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	and a
 	jr nz, .asm_21682
 	inc a
@@ -315,7 +315,7 @@
 	call WaitForSoundToFinish
 	ld a, [wcf91]
 	call PlayCry
-	ld hl, MonWasReleasedText ; $5820
+	ld hl, MonWasReleasedText
 	call PrintText
 	jp Func_214e8
 
@@ -325,18 +325,18 @@
 
 Func_216be: ; 216be (8:56be)
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
+	ld [wList + 1], a
 	xor a
 	ld [wcf93], a
-	ld [wListMenuID], a ; wListMenuID
+	ld [wListMenuID], a
 	inc a                ; MONSTER_NAME
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	ld a, [wcc2b]
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	call DisplayListMenuID
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	ld [wcc2b], a
 	ret
 
@@ -368,7 +368,7 @@
 	ld a, [hli]
 	push hl
 	push bc
-	ld hl, HMMoveArray ; $5745
+	ld hl, HMMoveArray
 	ld de, 1
 	call IsInArray
 	pop bc
@@ -394,16 +394,16 @@
 	call TextBoxBorder
 	ld a, [wccd3]
 	and a
-	ld de, DepositPCText ; $57cb
+	ld de, DepositPCText
 	jr nz, .asm_21761
-	ld de, WithdrawPCText ; $57d3
+	ld de, WithdrawPCText
 .asm_21761
 	hlCoord 11, 12
 	call PlaceString
 	hlCoord 11, 14
-	ld de, StatsCancelPCText ; $57dc
+	ld de, StatsCancelPCText
 	call PlaceString
-	ld hl, wTopMenuItemY ; wTopMenuItemY
+	ld hl, wTopMenuItemY
 	ld a, $c
 	ld [hli], a
 	ld a, $a
@@ -417,16 +417,16 @@
 	ld [hli], a
 	xor a
 	ld [hl], a
-	ld hl, wListScrollOffset ; wcc36
+	ld hl, wListScrollOffset
 	ld [hli], a
 	ld [hl], a
-	ld [wPlayerMonNumber], a ; wPlayerMonNumber
+	ld [wPlayerMonNumber], a
 	ld [wcc2b], a
 .asm_2178f
 	call HandleMenuInput
 	bit 1, a
 	jr nz, .asm_2179f
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	and a
 	jr z, .asm_217a1
 	dec a
--- a/engine/menu/naming_screen.asm
+++ b/engine/menu/naming_screen.asm
@@ -2,7 +2,7 @@
 	call SaveScreenTilesToBuffer1
 	call GetPredefRegisters
 	push hl
-	ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+	ld a, [W_ISINBATTLE]
 	dec a
 	ld hl, wTileMap
 	ld b, $4
@@ -15,11 +15,11 @@
 	call PrintText
 	hlCoord 14, 7
 	ld bc, $80f
-	ld a, $14
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	pop hl
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	and a
 	jr nz, .asm_654c
 	ld a, [wUpdateSpritesEnabled]
@@ -30,7 +30,7 @@
 	ld a, $2
 	ld [wd07d], a
 	call DisplayNamingScreen
-	ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+	ld a, [W_ISINBATTLE]
 	and a
 	jr nz, .asm_653e
 	call ReloadMapSpriteTilePatterns
@@ -66,9 +66,9 @@
 	ld a, [wcf4b]
 	cp $50
 	jr z, .asm_6594
-	ld hl, wPartyMonNicks ; wPartyMonNicks
+	ld hl, wPartyMonNicks
 	ld bc, $b
-	ld a, [wWhichPokemon] ; wWhichPokemon
+	ld a, [wWhichPokemon]
 	call AddNTimes
 	ld e, l
 	ld d, h
@@ -99,15 +99,15 @@
 	call TextBoxBorder
 	call PrintNamingText
 	ld a, $3
-	ld [wTopMenuItemY], a ; wTopMenuItemY
+	ld [wTopMenuItemY], a
 	ld a, $1
-	ld [wTopMenuItemX], a ; wTopMenuItemX
-	ld [wLastMenuItem], a ; wLastMenuItem
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wTopMenuItemX], a
+	ld [wLastMenuItem], a
+	ld [wCurrentMenuItem], a
 	ld a, $ff
-	ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+	ld [wMenuWatchedKeys], a
 	ld a, $7
-	ld [wMaxMenuItem], a ; wMaxMenuItem
+	ld [wMaxMenuItem], a
 	ld a, $50
 	ld [wcf4b], a
 	xor a
@@ -114,7 +114,7 @@
 	ld hl, wHPBarMaxHP + 1
 	ld [hli], a
 	ld [hli], a
-	ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+	ld [W_SUBANIMTRANSFORM], a
 .asm_65ed
 	call PrintAlphabet
 	call GBPalNormal
@@ -126,16 +126,16 @@
 .asm_65fc
 	call PlaceMenuCursor
 .asm_65ff
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	push af
 	callba AnimatePartyMon_ForceSpeed1
 	pop af
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	call JoypadLowSensitivity
 	ld a, [hJoyPressed]
 	and a
 	jr z, .asm_65ff
-	ld hl, .unknownPointerTable_665e ; $665e
+	ld hl, .unknownPointerTable_665e
 .asm_661a
 	sla a
 	jr c, .asm_6624
@@ -165,10 +165,10 @@
 	call GoPAL_SET_CF1C
 	call GBPalNormal
 	xor a
-	ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
+	ld [W_SUBANIMTRANSFORM], a
 	ld hl, wd730
 	res 6, [hl]
-	ld a, [W_ISINBATTLE] ; W_ISINBATTLE
+	ld a, [W_ISINBATTLE]
 	and a
 	jp z, LoadTextBoxTilePatterns
 	ld hl, LoadHudTilePatterns
@@ -207,21 +207,21 @@
 	ld [wHPBarMaxHP + 1], a
 	ret
 .asm_6692
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	cp $5
 	jr nz, .asm_66a0
-	ld a, [wTopMenuItemX] ; wTopMenuItemX
+	ld a, [wTopMenuItemX]
 	cp $11
 	jr z, .asm_668c
 .asm_66a0
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	cp $6
 	jr nz, .asm_66ae
-	ld a, [wTopMenuItemX] ; wTopMenuItemX
+	ld a, [wTopMenuItemX]
 	cp $1
 	jr z, .asm_667e
 .asm_66ae
-	ld hl, wMenuCursorLocation ; wMenuCursorLocation
+	ld hl, wMenuCursorLocation
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -270,10 +270,10 @@
 	ld [hl], $50
 	ret
 .asm_6702
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	cp $6
 	ret z
-	ld a, [wTopMenuItemX] ; wTopMenuItemX
+	ld a, [wTopMenuItemX]
 	cp $11
 	jp z, .asm_6714
 	inc a
@@ -283,10 +283,10 @@
 	ld a, $1
 	jr .asm_6755
 .asm_6718
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	cp $6
 	ret z
-	ld a, [wTopMenuItemX] ; wTopMenuItemX
+	ld a, [wTopMenuItemX]
 	dec a
 	jp z, .asm_6728
 	dec a
@@ -295,23 +295,23 @@
 	ld a, $11
 	jr .asm_6755
 .asm_672c
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	dec a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	and a
 	ret nz
 	ld a, $6
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	ld a, $1
 	jr .asm_6755
 .asm_673e
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	inc a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	cp $7
 	jr nz, .asm_6750
 	ld a, $1
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	jr .asm_6755
 .asm_6750
 	cp $6
@@ -318,7 +318,7 @@
 	ret nz
 	ld a, $1
 .asm_6755
-	ld [wTopMenuItemX], a ; wTopMenuItemX
+	ld [wTopMenuItemX], a
 	jp EraseMenuCursor
 
 LoadEDTile: ; 675b (1:675b)
@@ -402,9 +402,9 @@
 	jr nz, .asm_6867
 	call EraseMenuCursor
 	ld a, $11
-	ld [wTopMenuItemX], a ; wTopMenuItemX
+	ld [wTopMenuItemX], a
 	ld a, $5
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	ld a, [wd07d]
 	cp $2
 	ld a, $9
@@ -463,10 +463,10 @@
 PrintNamingText: ; 68f8 (1:68f8)
 	hlCoord 0, 1
 	ld a, [wd07d]
-	ld de, YourTextString ; $693f
+	ld de, YourTextString
 	and a
 	jr z, .notNickname
-	ld de, RivalsTextString ; $6945
+	ld de, RivalsTextString
 	dec a
 	jr z, .notNickname
 	ld a, [wcf91]
@@ -482,13 +482,13 @@
 	add hl, bc
 	ld [hl], $c9
 	hlCoord 1, 3
-	ld de, NicknameTextString ; $6953
+	ld de, NicknameTextString
 	jr .placeString
 .notNickname
 	call PlaceString
 	ld l, c
 	ld h, b
-	ld de, NameTextString ; $694d
+	ld de, NameTextString
 .placeString
 	jp PlaceString
 
--- a/engine/menu/party_menu.asm
+++ b/engine/menu/party_menu.asm
@@ -83,19 +83,19 @@
 	push hl
 	ld bc,14 ; 14 columns to the right
 	add hl,bc
-	ld de,wcf9c
+	ld de,wLoadedMonStatus
 	call PrintStatusCondition
 	pop hl
 	push hl
 	ld bc,20 + 1 ; down 1 row and right 1 column
-	ld a,[$FFF6]
+	ld a,[hFlags_0xFFF6]
 	set 0,a
-	ld [$FFF6],a
+	ld [hFlags_0xFFF6],a
 	add hl,bc
-	predef Func_128f6 ; draw HP bar and prints current / max HP
-	ld a,[$FFF6]
+	predef DrawHP2 ; draw HP bar and prints current / max HP
+	ld a,[hFlags_0xFFF6]
 	res 0,a
-	ld [$FFF6],a
+	ld [hFlags_0xFFF6],a
 	call SetPartyMenuHealthBarColor ; color the HP bar (on SGB)
 	pop hl
 	jr .printLevel
@@ -134,7 +134,7 @@
 	push hl
 	ld hl,EvosMovesPointerTable
 	ld b,0
-	ld a,[wcf98] ; pokemon ID
+	ld a,[wLoadedMonSpecies]
 	dec a
 	add a
 	rl b
--- a/engine/menu/players_pc.asm
+++ b/engine/menu/players_pc.asm
@@ -2,7 +2,7 @@
 	ld hl, wd730
 	set 6, [hl]
 	ld a, ITEM_NAME
-	ld [W_LISTTYPE], a
+	ld [wNameListType], a
 	call SaveScreenTilesToBuffer1
 	xor a
 	ld [wcc2c], a
@@ -17,7 +17,7 @@
 
 Func_790c: ; 790c (1:790c)
 	ld a, [wccd3]
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
+	ld [wCurrentMenuItem], a
 	ld hl, wFlags_0xcd60
 	set 5, [hl]
 	call LoadScreenTilesFromBuffer2
@@ -27,9 +27,9 @@
 	call TextBoxBorder
 	call UpdateSprites
 	hlCoord 2, 2
-	ld de, PlayersPCMenuEntries ; $7af5
+	ld de, PlayersPCMenuEntries
 	call PlaceString
-	ld hl, wTopMenuItemY ; wTopMenuItemY
+	ld hl, wTopMenuItemY
 	ld a, $2
 	ld [hli], a
 	dec a
@@ -42,10 +42,10 @@
 	ld [hli], a
 	xor a
 	ld [hl], a
-	ld hl, wListScrollOffset ; wcc36
+	ld hl, wListScrollOffset
 	ld [hli], a
 	ld [hl], a
-	ld [wPlayerMonNumber], a ; wPlayerMonNumber
+	ld [wPlayerMonNumber], a
 	ld hl, WhatDoYouWantText
 	call PrintText
 	call HandleMenuInput
@@ -52,7 +52,7 @@
 	bit 1, a
 	jp nz, Func_796d
 	call PlaceUnfilledArrowMenuCursor
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	ld [wccd3], a
 	and a
 	jp z, Func_7a12
@@ -73,7 +73,7 @@
 	res 5, [hl]
 	call LoadScreenTilesFromBuffer2
 	xor a
-	ld [wListScrollOffset], a ; wcc36
+	ld [wListScrollOffset], a
 	ld [wcc2c], a
 	ld hl, wd730
 	res 6, [hl]
@@ -83,9 +83,9 @@
 
 Func_7995: ; 7995 (1:7995)
 	xor a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
-	ld [wListScrollOffset], a ; wcc36
-	ld a, [wNumBagItems] ; wNumBagItems
+	ld [wCurrentMenuItem], a
+	ld [wListScrollOffset], a
+	ld a, [wNumBagItems]
 	and a
 	jr nz, Func_79ab
 	ld hl, NothingToDepositText
@@ -95,15 +95,15 @@
 Func_79ab: ; 79ab (1:79ab)
 	ld hl, WhatToDepositText
 	call PrintText
-	ld hl, wNumBagItems ; wNumBagItems
+	ld hl, wNumBagItems
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
+	ld [wList + 1], a
 	xor a
 	ld [wcf93], a
 	ld a, $3
-	ld [wListMenuID], a ; wListMenuID
+	ld [wListMenuID], a
 	call DisplayListMenuID
 	jp c, Func_790c
 	call IsKeyItem
@@ -118,7 +118,7 @@
 	cp $ff
 	jp z, Func_79ab
 .asm_79e7
-	ld hl, wNumBoxItems ; wNumBoxItems
+	ld hl, wNumBoxItems
 	call AddItemToInventory
 	jr c, .asm_79f8
 	ld hl, NoRoomToStoreText
@@ -125,7 +125,7 @@
 	call PrintText
 	jp Func_79ab
 .asm_79f8
-	ld hl, wNumBagItems ; wNumBagItems
+	ld hl, wNumBagItems
 	call RemoveItemFromInventory
 	call WaitForSoundToFinish
 	ld a, (SFX_02_55 - SFX_Headers_02) / 3
@@ -137,9 +137,9 @@
 
 Func_7a12: ; 7a12 (1:7a12)
 	xor a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
-	ld [wListScrollOffset], a ; wcc36
-	ld a, [wNumBoxItems] ; wNumBoxItems
+	ld [wCurrentMenuItem], a
+	ld [wListScrollOffset], a
+	ld a, [wNumBoxItems]
 	and a
 	jr nz, Func_7a28
 	ld hl, NothingStoredText
@@ -149,15 +149,15 @@
 Func_7a28: ; 7a28 (1:7a28)
 	ld hl, WhatToWithdrawText
 	call PrintText
-	ld hl, wNumBoxItems ; wNumBoxItems
+	ld hl, wNumBoxItems
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
+	ld [wList + 1], a
 	xor a
 	ld [wcf93], a
 	ld a, $3
-	ld [wListMenuID], a ; wListMenuID
+	ld [wListMenuID], a
 	call DisplayListMenuID
 	jp c, Func_790c
 	call IsKeyItem
@@ -172,7 +172,7 @@
 	cp $ff
 	jp z, Func_7a28
 .asm_7a64
-	ld hl, wNumBagItems ; wNumBagItems
+	ld hl, wNumBagItems
 	call AddItemToInventory
 	jr c, .asm_7a75
 	ld hl, CantCarryMoreText
@@ -179,7 +179,7 @@
 	call PrintText
 	jp Func_7a28
 .asm_7a75
-	ld hl, wNumBoxItems ; wNumBoxItems
+	ld hl, wNumBoxItems
 	call RemoveItemFromInventory
 	call WaitForSoundToFinish
 	ld a, (SFX_02_55 - SFX_Headers_02) / 3
@@ -191,9 +191,9 @@
 
 Func_7a8f: ; 7a8f (1:7a8f)
 	xor a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
-	ld [wListScrollOffset], a ; wcc36
-	ld a, [wNumBoxItems] ; wNumBoxItems
+	ld [wCurrentMenuItem], a
+	ld [wListScrollOffset], a
+	ld a, [wNumBoxItems]
 	and a
 	jr nz, Func_7aa5
 	ld hl, NothingStoredText
@@ -203,15 +203,15 @@
 Func_7aa5: ; 7aa5 (1:7aa5)
 	ld hl, WhatToTossText
 	call PrintText
-	ld hl, wNumBoxItems ; wNumBoxItems
+	ld hl, wNumBoxItems
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
+	ld [wList + 1], a
 	xor a
 	ld [wcf93], a
 	ld a, $3
-	ld [wListMenuID], a ; wListMenuID
+	ld [wListMenuID], a
 	push hl
 	call DisplayListMenuID
 	pop hl
--- a/engine/menu/start_sub_menus.asm
+++ b/engine/menu/start_sub_menus.asm
@@ -29,8 +29,8 @@
 	call LoadGBPal
 	jp RedisplayStartMenu
 .chosePokemon
-	call SaveScreenTilesToBuffer1 ; save screen
-	ld a,$04
+	call SaveScreenTilesToBuffer1
+	ld a,FIELD_MOVE_MON_MENU
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; display pokemon menu options
 	ld hl,wWhichTrade
@@ -308,10 +308,10 @@
 	jr .exitMenu
 .notInCableClubRoom
 	ld bc,wNumBagItems
-	ld hl,wcf8b
+	ld hl,wList
 	ld a,c
 	ld [hli],a
-	ld [hl],b ; store item bag pointer at wcf8b (for DisplayListMenuID)
+	ld [hl],b ; store item bag pointer at wList (for DisplayListMenuID)
 	xor a
 	ld [wcf93],a
 	ld a,ITEMLISTMENU
@@ -341,7 +341,7 @@
 	cp a,BICYCLE
 	jp z,.useOrTossItem
 .notBicycle1
-	ld a,$06 ; use/toss menu
+	ld a,USE_TOSS_MENU_TEMPLATE
 	ld [wTextBoxID],a
 	call DisplayTextBoxID
 	ld hl,wTopMenuItemY
--- a/engine/menu/status_screen.asm
+++ b/engine/menu/status_screen.asm
@@ -4,11 +4,11 @@
 	ld a, [wcc49]
 	cp $2 ; 2 means we're in a PC box
 	jr c, .DontRecalculate ; 0x1295b $14
-	ld a, [wcf9b]
-	ld [wcfb9], a
+	ld a, [wLoadedMonBoxLevel]
+	ld [wLoadedMonLevel], a
 	ld [W_CURENEMYLVL], a
-	ld hl, wcfa8
-	ld de, wcfba
+	ld hl, wLoadedMonHPExp - 1
+	ld de, wLoadedMonStats
 	ld b, $1
 	call CalcStats ; Recalculate stats
 .DontRecalculate
@@ -55,13 +55,13 @@
 	ld de, Type1Text
 	call PlaceString ; "TYPE1/"
 	hlCoord 11, 3
-	predef DrawHP ; predef $5f
+	predef DrawHP
 	ld hl, wcf25
 	call GetHealthBarColor
 	ld b, $3
 	call GoPAL_SET ; SGB palette
 	hlCoord 16, 6
-	ld de, wcf9c
+	ld de, wLoadedMonStatus
 	call PrintStatusCondition
 	jr nz, .StatusWritten ; 0x129fc $9
 	hlCoord 16, 6
@@ -82,7 +82,7 @@
 	ld bc, $8103 ; Zero-padded, 3
 	call PrintNumber ; Pokémon no.
 	hlCoord 11, 10
-	predef Func_27d6b ; Prints the type (?)
+	predef PrintMonType
 	ld hl, NamePointers2 ; $6a9d
 	call .unk_12a7e
 	ld d, h
@@ -96,7 +96,7 @@
 	hlCoord 12, 16
 	call PlaceString ; OT
 	hlCoord 12, 14
-	ld de, wcfa4
+	ld de, wLoadedMonOTID
 	ld bc, $8205 ; 5
 	call PrintNumber ; ID Number
 	ld d, $0
@@ -203,14 +203,14 @@
 	pop hl
 	pop bc
 	add hl, bc
-	ld de, wcfbc
+	ld de, wLoadedMonAttack
 	ld bc, $0203 ; three digits
 	call PrintStat
-	ld de, wcfbe
+	ld de, wLoadedMonDefense
 	call PrintStat
-	ld de, wcfc0
+	ld de, wLoadedMonSpeed
 	call PrintStat
-	ld de, wcfc2
+	ld de, wLoadedMonSpecial
 	jp PrintNumber
 PrintStat
 	push hl
@@ -233,13 +233,13 @@
 	ld [hTilesetType], a
 	ld [$ffba], a
 	ld bc, $0005
-	ld hl, wd0dc
+	ld hl, wMoves
 	call FillMemory
-	ld hl, wcfa0
-	ld de, wd0dc
-	ld bc, $0004
+	ld hl, wLoadedMonMoves
+	ld de, wMoves
+	ld bc, NUM_MOVES
 	call CopyData
-	callab Func_39b87
+	callab FormatMovesString
 	hlCoord 9, 2
 	ld bc, $050a
 	call ClearScreenArea ; Clear under name
@@ -250,7 +250,7 @@
 	ld c, $12
 	call TextBoxBorder ; Draw move container
 	hlCoord 2, 9
-	ld de, wd0e1
+	ld de, wMovesString
 	call PlaceString ; Print moves
 	ld a, [wcd6c]
 	inc a
@@ -269,7 +269,7 @@
 	ld a, "-"
 	call Func_12ccb ; Fill the rest with --
 .InitPP ; 12bbb
-	ld hl, wcfa0
+	ld hl, wLoadedMonMoves
 	deCoord 14, 10
 	ld b, $0
 .PrintPP ; 12bc3
@@ -323,12 +323,12 @@
 	hlCoord 9, 3
 	ld de, EXPPointsText
 	call PlaceString
-	ld a, [wcfb9] ; level
+	ld a, [wLoadedMonLevel] ; level
 	push af
 	cp MAX_LEVEL
 	jr z, .Level100 ; 0x12c20 $4
 	inc a
-	ld [wcfb9], a ; Increase temporarily if not 100
+	ld [wLoadedMonLevel], a ; Increase temporarily if not 100
 .Level100
 	hlCoord 14, 6
 	ld [hl], $70 ; 1-tile "to"
@@ -336,13 +336,13 @@
 	inc hl
 	call PrintLevel
 	pop af
-	ld [wcfb9], a
-	ld de, wcfa6
+	ld [wLoadedMonLevel], a
+	ld de, wLoadedMonExp
 	hlCoord 12, 4
 	ld bc, $0307
 	call PrintNumber ; exp
 	call .asm_12c86
-	ld de, wcfa6
+	ld de, wLoadedMonExp
 	hlCoord 7, 6
 	ld bc, $0307
 	call PrintNumber
@@ -368,13 +368,13 @@
 	call GBPalWhiteOut
 	jp ClearScreen
 .asm_12c86 ; This does some magic with lvl/exp?
-	ld a, [wcfb9] ; Load level
+	ld a, [wLoadedMonLevel] ; Load level
 	cp MAX_LEVEL
 	jr z, .asm_12ca7 ; 0x12c8b $1a ; If 100
 	inc a
 	ld d, a
 	callab CalcExperience
-	ld hl, wcfa8
+	ld hl, wLoadedMonExp + 2
 	ld a, [$ff98]
 	sub [hl]
 	ld [hld], a
@@ -386,7 +386,7 @@
 	ld [hld], a
 	ret
 .asm_12ca7
-	ld hl, wcfa6
+	ld hl, wLoadedMonExp
 	xor a
 	ld [hli], a
 	ld [hli], a
--- a/engine/menu/vending_machine.asm
+++ b/engine/menu/vending_machine.asm
@@ -1,20 +1,20 @@
 VendingMachineMenu: ; 74ee0 (1d:4ee0)
 	ld hl, VendingMachineText1
 	call PrintText
-	ld a, $13
+	ld a, MONEY_BOX
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	xor a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
-	ld [wLastMenuItem], a ; wLastMenuItem
+	ld [wCurrentMenuItem], a
+	ld [wLastMenuItem], a
 	ld a, $3
-	ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+	ld [wMenuWatchedKeys], a
 	ld a, $3
-	ld [wMaxMenuItem], a ; wMaxMenuItem
+	ld [wMaxMenuItem], a
 	ld a, $5
-	ld [wTopMenuItemY], a ; wTopMenuItemY
+	ld [wTopMenuItemY], a
 	ld a, $1
-	ld [wTopMenuItemX], a ; wTopMenuItemX
+	ld [wTopMenuItemX], a
 	ld hl, wd730
 	set 6, [hl]
 	hlCoord 0, 3
@@ -33,7 +33,7 @@
 	call HandleMenuInput
 	bit 1, a
 	jr nz, .asm_74f93
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	cp $3
 	jr z, .asm_74f93
 	xor a
@@ -66,10 +66,10 @@
 	ld hl, VendingMachineText5
 	call PrintText
 	ld hl, $ffde
-	ld de, wPlayerMoney + 2 ; wd349
+	ld de, wPlayerMoney + 2
 	ld c, $3
 	predef SubBCDPredef
-	ld a, $13
+	ld a, MONEY_BOX
 	ld [wTextBoxID], a
 	jp DisplayTextBoxID
 .BagFull
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -48,7 +48,7 @@
 	ld [wc0ee], a
 	call PlaySound
 	ld d, $28
-	call Func_704f3
+	call FlashSprite8Times
 .asm_704a2
 	ld a, [wc026]
 	cp MUSIC_PKMN_HEALED
@@ -74,16 +74,17 @@
 	db $35,$30,$7D,$10
 	db $35,$38,$7D,$30
 
-Func_704f3: ; 704f3 (1c:44f3)
-	ld b, $8
-.asm_704f5
-	ld a, [rOBP1] ; $ff49
+; d = value to xor with palette
+FlashSprite8Times: ; 704f3 (1c:44f3)
+	ld b, 8
+.loop
+	ld a, [rOBP1]
 	xor d
-	ld [rOBP1], a ; $ff49
-	ld c, $a
+	ld [rOBP1], a
+	ld c, 10
 	call DelayFrames
 	dec b
-	jr nz, .asm_704f5
+	jr nz, .loop
 	ret
 
 Func_70503: ; 70503 (1c:4503)
--- a/engine/overworld/map_sprites.asm
+++ b/engine/overworld/map_sprites.asm
@@ -159,7 +159,7 @@
 	ld l,e
 	pop de
 	ld b,a
-	ld a,[wcfc4]
+	ld a,[wFontLoaded]
 	bit 0,a ; reloading upper half of tile patterns after displaying text?
 	jr nz,.skipFirstLoad ; if so, skip loading data into the lower half
 	ld a,b
@@ -180,7 +180,7 @@
 	jr nc,.noCarry3
 	inc d
 .noCarry3
-	ld a,[wcfc4]
+	ld a,[wFontLoaded]
 	bit 0,a ; reloading upper half of tile patterns after displaying text?
 	jr nz,.loadWhileLCDOn
 	pop af
@@ -264,7 +264,7 @@
 	cp a,$f0 ; does the map have 2 sprite sets?
 	call nc,GetSplitMapSpriteSetID ; if so, choose the appropriate one
 	ld b,a ; b = spriteSetID
-	ld a,[wcfc4]
+	ld a,[wFontLoaded]
 	bit 0,a ; reloading upper half of tile patterns after displaying text?
 	jr nz,.loadSpriteSet ; if so, forcibly reload the sprite set
 	ld a,[W_SPRITESETID]
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -52,7 +52,7 @@
 	jr .asm_4eab
 .asm_4e86
 	ld [wSpriteStateData1 + 9], a
-	ld a, [wcfc4]
+	ld a, [wFontLoaded]
 	bit 0, a
 	jr nz, .asm_4e7d
 .asm_4e90
@@ -130,7 +130,7 @@
 	bit 7, a
 	jp nz, InitializeSpriteFacingDirection  ; c1x1 >= $80
 	ld b, a
-	ld a, [wcfc4]
+	ld a, [wFontLoaded]
 	bit 0, a
 	jp nz, notYetMoving
 	ld a, b
--- a/engine/overworld/pokemart.asm
+++ b/engine/overworld/pokemart.asm
@@ -11,10 +11,10 @@
 	ld [wPlayerMonNumber],a
 	inc a
 	ld [wcf93],a
-	ld a,$13
+	ld a,MONEY_BOX
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; draw money text box
-	ld a,$15
+	ld a,BUY_SELL_QUIT_MENU
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; do buy/sell/quit menu
 	ld hl,wd128 ; pointer to this pokemart's inventory
@@ -45,14 +45,14 @@
 	call SaveScreenTilesToBuffer1 ; save screen
 .sellMenuLoop
 	call LoadScreenTilesFromBuffer1 ; restore saved screen
-	ld a,$13
+	ld a,MONEY_BOX
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; draw money text box
 	ld hl,wNumBagItems
 	ld a,l
-	ld [wcf8b],a
+	ld [wList],a
 	ld a,h
-	ld [wcf8c],a
+	ld [wList + 1],a
 	xor a
 	ld [wcf93],a
 	ld [wCurrentMenuItem],a
@@ -79,7 +79,7 @@
 	call PrintText
 	hlCoord 14, 7
 	ld bc,$080f
-	ld a,$14
+	ld a,TWO_OPTION_MENU
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; yes/no menu
 	ld a,[wd12e]
@@ -119,14 +119,14 @@
 	call SaveScreenTilesToBuffer1 ; save screen
 .buyMenuLoop
 	call LoadScreenTilesFromBuffer1 ; restore saved screen
-	ld a,$13
+	ld a,MONEY_BOX
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; draw money text box
 	ld hl,wStringBuffer2 + 11
 	ld a,l
-	ld [wcf8b],a
+	ld [wList],a
 	ld a,h
-	ld [wcf8c],a
+	ld [wList + 1],a
 	xor a
 	ld [wCurrentMenuItem],a
 	inc a
@@ -150,7 +150,7 @@
 	call PrintText
 	hlCoord 14, 7
 	ld bc,$080f
-	ld a,$14
+	ld a,TWO_OPTION_MENU
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; yes/no menu
 	ld a,[wd12e]
@@ -180,7 +180,7 @@
 	jp .buyMenuLoop
 .returnToMainPokemartMenu
 	call LoadScreenTilesFromBuffer1
-	ld a,$13
+	ld a,MONEY_BOX
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; draw money text box
 	ld hl,PokemartAnythingElseText
--- a/engine/predefs.asm
+++ b/engine/predefs.asm
@@ -92,7 +92,7 @@
 	add_predef UpdateHPBar
 	add_predef HPBarLength
 	add_predef Diploma_TextBoxBorder
-	add_predef Func_3ed02
+	add_predef DoubleOrHalveSelectedStats
 	add_predef ShowPokedexMenu
 	add_predef EvolutionAfterBattle
 	add_predef SaveSAVtoSRAM0
@@ -127,7 +127,7 @@
 	add_predef UpdateHPBar2
 	add_predef DrawEnemyHUDAndHPBar
 	add_predef LoadTownMap_Nest
-	add_predef Func_27d6b
+	add_predef PrintMonType
 	add_predef EmotionBubble; 4C player exclamation
 	add_predef EmptyFunc3; return immediately
 	add_predef AskName
@@ -145,9 +145,9 @@
 	add_predef CheckForCollisionWhenPushingBoulder
 	add_predef PrintStrengthTxt
 	add_predef PickupItem
-	add_predef Func_27d98
+	add_predef PrintMoveType
 	add_predef LoadMovePPs
 	add_predef DrawHP ; 5F
-	add_predef Func_128f6
+	add_predef DrawHP2
 	add_predef Func_1c9c6
 	add_predef OaksAideScript
--- a/engine/predefs7.asm
+++ b/engine/predefs7.asm
@@ -3,26 +3,26 @@
 	call PrintText
 	ld hl, wStringBuffer2 + 11
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
-	ld a, [wListScrollOffset] ; wcc36
+	ld [wList + 1], a
+	ld a, [wListScrollOffset]
 	push af
 	xor a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
-	ld [wListScrollOffset], a ; wcc36
+	ld [wCurrentMenuItem], a
+	ld [wListScrollOffset], a
 	ld [wcf93], a
 	ld a, $4
-	ld [wListMenuID], a ; wListMenuID
+	ld [wListMenuID], a
 	call DisplayListMenuID
 	pop bc
 	ld a, b
-	ld [wListScrollOffset], a ; wcc36
+	ld [wListScrollOffset], a
 	ret c
 	ld hl, wd126
 	set 7, [hl]
 	ld hl, wcc5b
-	ld a, [wWhichPokemon] ; wWhichPokemon
+	ld a, [wWhichPokemon]
 	add a
 	ld d, $0
 	ld e, a
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -173,10 +173,10 @@
 SaveSAVConfirm: ; 73768 (1c:7768)
 	call PrintText
 	hlCoord 0, 7
-	ld bc,$0801     ;arrow's coordinates |b = Y|c = X|
-	ld a,$14        ;one line shifting ($28 = 2 lines)
+	ld bc,$0801
+	ld a,TWO_OPTION_MENU
 	ld [wTextBoxID],a
-	call DisplayTextBoxID      ;handle Yes/No KeyPress
+	call DisplayTextBoxID ; yes/no menu
 	ld a,[wCurrentMenuItem]
 	ret
 
@@ -346,10 +346,10 @@
 	call z, Func_73a29
 	call Func_7393f
 	call UpdateSprites
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	set 1, [hl]
 	call HandleMenuInput
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	res 1, [hl]
 	bit 1, a
 	ret nz
@@ -436,12 +436,12 @@
 	ld b, $c
 	ld c, $7
 	call TextBoxBorder
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	set 2, [hl]
 	ld de, BoxNames ; $79d9
 	hlCoord 13, 1
 	call PlaceString
-	ld hl, $fff6
+	ld hl, hFlags_0xFFF6
 	res 2, [hl]
 	ld a, [wd5a0]
 	and $7f
@@ -665,7 +665,7 @@
 	ld [MBC1SRamEnable], a
 	ret
 
-Func_73b6a: ; 73b6a (1c:7b6a)
+ClearSAV: ; 73b6a (1c:7b6a)
 	ld a, SRAM_ENABLE
 	ld [MBC1SRamEnable], a
 	ld a, $1
--- a/engine/slot_machine.asm
+++ b/engine/slot_machine.asm
@@ -137,7 +137,7 @@
 	ld bc, $0d0f
 	xor a ; YES_NO_MENU
 	ld [wTwoOptionMenuID], a
-	ld a, $14
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	ld a, [wCurrentMenuItem]
--- a/engine/titlescreen.asm
+++ b/engine/titlescreen.asm
@@ -237,14 +237,14 @@
 	call LoadGBPal
 	ld a, [hJoyHeld]
 	ld b, a
-	and $46
-	cp $46
-	jp z, Func_448e
+	and D_UP | SELECT | B_BUTTON
+	cp D_UP | SELECT | B_BUTTON
+	jp z, .doClearSaveDialogue
 	jp MainMenu
 
-Func_448e: ; 448e (1:448e)
-	ld b, BANK(Func_1c98a)
-	ld hl, Func_1c98a
+.doClearSaveDialogue
+	ld b, BANK(DoClearSaveDialogue)
+	ld hl, DoClearSaveDialogue
 	jp Bankswitch
 
 Func_4496: ; 4496 (1:4496)
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -364,10 +364,10 @@
 	jp CopyData
 
 Func_711ef: ; 711ef (1c:51ef)
-	callba Func_e9cb
+	callba FindWildLocationsOfMon
 	call Func_712d9
 	ld hl, wOAMBuffer
-	ld de, wHPBarMaxHP
+	ld de, wBuffer
 .asm_71200
 	ld a, [de]
 	cp $ff
--- a/home.asm
+++ b/home.asm
@@ -173,7 +173,7 @@
 DrawHPBar:: ; 1336 (0:1336)
 ; Draw an HP bar d tiles long, and fill it to e pixels.
 ; If c is nonzero, show at least a sliver regardless.
-; The right end of the bar changes with [wListMenuID].
+; The right end of the bar changes with [wHPBarType].
 
 	push hl
 	push de
@@ -195,7 +195,7 @@
 	jr nz, .draw
 
 	; Right
-	ld a,[wListMenuID]
+	ld a,[wHPBarType]
 	dec a
 	ld a, $6d ; status screen and battle
 	jr z, .ok
@@ -239,7 +239,7 @@
 	ret
 
 
-; loads pokemon data from one of multiple sources to wcf98
+; loads pokemon data from one of multiple sources to wLoadedMon
 ; loads base stats to W_MONHDEXNUM
 ; INPUT:
 ; [wWhichPokemon] = index of pokemon within party/box
@@ -250,7 +250,7 @@
 ; 03: daycare
 ; OUTPUT:
 ; [wcf91] = pokemon ID
-; wcf98 = base address of pokemon data
+; wLoadedMon = base address of pokemon data
 ; W_MONHDEXNUM = base address of base stats
 LoadMonData:: ; 1372 (0:1372)
 	ld hl, LoadMonData_
@@ -259,8 +259,8 @@
 
 
 Func_137a:: ; 137a (0:137a)
-; Write c to [wd0dc + b]. Unused.
-	ld hl, wd0dc
+; Write c to [wMoves + b]. Unused.
+	ld hl, wMoves
 	ld e, b
 	ld d, 0
 	add hl, de
@@ -515,12 +515,12 @@
 ; function to print pokemon level, leaving off the ":L" if the level is at least 100
 ; INPUT:
 ; hl = destination address
-; [wcfb9] = level
+; [wLoadedMonLevel] = level
 PrintLevel:: ; 150b (0:150b)
 	ld a,$6e ; ":L" tile ID
 	ld [hli],a
 	ld c,2 ; number of digits
-	ld a,[wcfb9] ; level
+	ld a,[wLoadedMonLevel] ; level
 	cp a,100
 	jr c,PrintLevelCommon
 ; if level at least 100, write over the ":L" tile
@@ -531,12 +531,12 @@
 ; prints the level without leaving off ":L" regardless of level
 ; INPUT:
 ; hl = destination address
-; [wcfb9] = level
+; [wLoadedMonLevel] = level
 PrintLevelFull:: ; 151b (0:151b)
 	ld a,$6e ; ":L" tile ID
 	ld [hli],a
 	ld c,3 ; number of digits
-	ld a,[wcfb9] ; level
+	ld a,[wLoadedMonLevel] ; level
 
 PrintLevelCommon:: ; 1523 (0:1523)
 	ld [wd11e],a
@@ -546,7 +546,7 @@
 
 Func_152e:: ; 152e (0:152e)
 ; Unused.
-	ld hl,wd0dc
+	ld hl,wMoves
 	ld c,a
 	ld b,0
 	add hl,bc
@@ -1183,7 +1183,7 @@
 	ld [H_LOADEDROMBANK],a
 	ld [$2000],a
 	call InitMapSprites ; reload sprite tile pattern data (since it was partially overwritten by text tile patterns)
-	ld hl,wcfc4
+	ld hl,wFontLoaded
 	res 0,[hl]
 	ld a,[wd732]
 	bit 3,a ; used fly warp
@@ -1325,7 +1325,7 @@
 	ld hl,$ffa1 ; total price of items
 	ld c,3 ; length of money in bytes
 	predef AddBCDPredef ; add total price to money
-	ld a,$13
+	ld a,MONEY_BOX
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; redraw money text box
 	ld a, (SFX_02_5a - SFX_Headers_02) / 3
@@ -1372,7 +1372,7 @@
 
 ; INPUT:
 ; [wListMenuID] = list menu ID
-; [wcf8b] = address of the list (2 bytes)
+; [wList] = address of the list (2 bytes)
 DisplayListMenuID:: ; 2be6 (0:2be6)
 	xor a
 	ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer
@@ -1392,13 +1392,13 @@
 	xor a
 	ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped
 	ld [wd12a],a
-	ld a,[wcf8b]
+	ld a,[wList]
 	ld l,a
-	ld a,[wcf8c]
+	ld a,[wList + 1]
 	ld h,a ; hl = address of the list
 	ld a,[hl]
 	ld [wd12a],a ; [wd12a] = number of list entries
-	ld a,$0d ; list menu text box ID
+	ld a,LIST_MENU_BOX
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; draw the menu text box
 	call UpdateSprites ; disable sprites behind the text box
@@ -1485,9 +1485,9 @@
 ; if it's an item menu
 	sla c ; item entries are 2 bytes long, so multiply by 2
 .skipMultiplying
-	ld a,[wcf8b]
+	ld a,[wList]
 	ld l,a
-	ld a,[wcf8c]
+	ld a,[wList + 1]
 	ld h,a
 	inc hl ; hl = beginning of list entries
 	ld b,0
@@ -1516,7 +1516,7 @@
 	jr .storeChosenEntry
 .pokemonList
 	ld hl,wPartyCount
-	ld a,[wcf8b]
+	ld a,[wList]
 	cp l ; is it a list of party pokemon or box pokemon?
 	ld hl,wPartyMonNicks
 	jr z,.getPokemonName
@@ -1707,9 +1707,9 @@
 	ld b,$09
 	ld c,$0e
 	call ClearScreenArea
-	ld a,[wcf8b]
+	ld a,[wList]
 	ld e,a
-	ld a,[wcf8c]
+	ld a,[wList + 1]
 	ld d,a
 	inc de ; de = beginning of list entries
 	ld a,[wListScrollOffset]
@@ -1753,7 +1753,7 @@
 .pokemonPCMenu
 	push hl
 	ld hl,wPartyCount
-	ld a,[wcf8b]
+	ld a,[wList]
 	cp l ; is it a list of party pokemon or box pokemon?
 	ld hl,wPartyMonNicks
 	jr z,.getPokemonName
@@ -1798,7 +1798,7 @@
 	push af
 	push hl
 	ld hl,wPartyCount
-	ld a,[wcf8b]
+	ld a,[wList]
 	cp l ; is it a list of party pokemon or box pokemon?
 	ld a,$00
 	jr z,.next
@@ -1819,8 +1819,8 @@
 	and a ; is it a list of party pokemon or box pokemon?
 	jr z,.skipCopyingLevel
 .copyLevel
-	ld a,[wcf9b]
-	ld [wcfb9],a
+	ld a,[wLoadedMonBoxLevel]
+	ld [wLoadedMonLevel],a
 .skipCopyingLevel
 	pop hl
 	ld bc,$001c
@@ -1931,7 +1931,7 @@
 
 	ld [wd0b5],a
 	ld a,ITEM_NAME
-	ld [W_LISTTYPE],a
+	ld [wNameListType],a
 	ld a,BANK(ItemNames)
 	ld [wPredefBank],a
 	call GetName
@@ -2028,7 +2028,7 @@
 GetMoveName:: ; 3058 (0:3058)
 	push hl
 	ld a,MOVE_NAME
-	ld [W_LISTTYPE],a
+	ld [wNameListType],a
 	ld a,[wd11e]
 	ld [wd0b5],a
 	ld a,BANK(MoveNames)
@@ -2996,7 +2996,7 @@
 	jr DisplayYesNoChoice
 
 Func_35f4:: ; 35f4 (0:35f4)
-	ld a, $14
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
 	call InitYesNoTextBoxParameters
 	jp DisplayTextBoxID
@@ -3023,7 +3023,7 @@
 	hlCoord 12, 7
 	ld bc, $080d
 DisplayYesNoChoice:: ; 3628 (0:3628)
-	ld a, $14
+	ld a, TWO_OPTION_MENU
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	jp LoadScreenTilesFromBuffer1
@@ -3252,7 +3252,7 @@
 GetName:: ; 376b (0:376b)
 ; arguments:
 ; [wd0b5] = which name
-; [wd0b6] = which list (W_LISTTYPE)
+; [wNameListType] = which list
 ; [wPredefBank] = bank of list
 ;
 ; returns pointer to name in de
@@ -3269,7 +3269,7 @@
 	push hl
 	push bc
 	push de
-	ld a,[W_LISTTYPE]    ;List3759_entrySelector
+	ld a,[wNameListType]    ;List3759_entrySelector
 	dec a
 	jr nz,.otherEntries
 	;1 = MON_NAMES
@@ -3284,7 +3284,7 @@
 	ld a,[wPredefBank]
 	ld [H_LOADEDROMBANK],a
 	ld [$2000],a
-	ld a,[W_LISTTYPE]    ;VariousNames' entryID
+	ld a,[wNameListType]    ;VariousNames' entryID
 	dec a
 	add a
 	ld d,0
@@ -3335,11 +3335,11 @@
 	ret
 
 GetItemPrice:: ; 37df (0:37df)
-; Stores item's price as BCD in [H_DOWNARROWBLINKCNT1] and [[H_DOWNARROWBLINKCNT2]
+; Stores item's price as BCD at hItemPrice (3 bytes)
 ; Input: [wcf91] = item id
 	ld a, [H_LOADEDROMBANK]
 	push af
-	ld a, [wListMenuID] ; wListMenuID
+	ld a, [wListMenuID]
 	cp MOVESLISTMENU
 	ld a, BANK(ItemPrices)
 	jr nz, .asm_37ed
@@ -3347,7 +3347,7 @@
 .asm_37ed
 	ld [H_LOADEDROMBANK], a
 	ld [$2000], a
-	ld hl, wcf8f
+	ld hl, wItemPrices
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
@@ -3361,11 +3361,11 @@
 	jr nz, .asm_3802
 	dec hl
 	ld a, [hld]
-	ld [$ff8d], a
+	ld [hItemPrice + 2], a
 	ld a, [hld]
-	ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+	ld [hItemPrice + 1], a
 	ld a, [hl]
-	ld [H_DOWNARROWBLINKCNT1], a ; $ff8b
+	ld [hItemPrice], a
 	jr .asm_381c
 .getTMPrice
 	ld a, Bank(GetMachinePrice)
@@ -3373,7 +3373,7 @@
 	ld [$2000], a
 	call GetMachinePrice
 .asm_381c
-	ld de, H_DOWNARROWBLINKCNT1 ; $ff8b
+	ld de, hItemPrice
 	pop af
 	ld [H_LOADEDROMBANK], a
 	ld [$2000], a
@@ -4046,7 +4046,7 @@
 	and a ; was the previous menu id 0?
 	jr z,.checkForArrow1
 	push af
-	ld a,[$fff6]
+	ld a,[hFlags_0xFFF6]
 	bit 1,a ; is the menu double spaced?
 	jr z,.doubleSpaced1
 	ld bc,20
@@ -4072,7 +4072,7 @@
 	and a
 	jr z,.checkForArrow2
 	push af
-	ld a,[$fff6]
+	ld a,[hFlags_0xFFF6]
 	bit 1,a ; is the menu double spaced?
 	jr z,.doubleSpaced2
 	ld bc,20
@@ -4193,7 +4193,7 @@
 PrintText:: ; 3c49 (0:3c49)
 ; Print text hl at (1, 14).
 	push hl
-	ld a,1
+	ld a,MESSAGE_BOX
 	ld [wTextBoxID],a
 	call DisplayTextBoxID
 	call UpdateSprites
@@ -4540,7 +4540,7 @@
 ; Copy the current map's sprites' tile patterns to VRAM again after they have
 ; been overwritten by other tile patterns.
 ReloadMapSpriteTilePatterns:: ; 3e08 (0:3e08)
-	ld hl, wcfc4
+	ld hl, wFontLoaded
 	ld a, [hl]
 	push af
 	res 0, [hl]
--- a/home/text.asm
+++ b/home/text.asm
@@ -62,7 +62,7 @@
 	cp $4E
 	jr nz,.next
 	ld bc,$0028
-	ld a,[$FFF6]
+	ld a,[hFlags_0xFFF6]
 	bit 2,a
 	jr z,.next2
 	ld bc,$14
--- a/hram.asm
+++ b/hram.asm
@@ -12,6 +12,8 @@
 
 hBaseTileID EQU $FF8B
 
+hItemPrice EQU $FF8B
+
 ; counters for blinking down arrow
 H_DOWNARROWBLINKCNT1 EQU $FF8B
 H_DOWNARROWBLINKCNT2 EQU $FF8C
@@ -150,6 +152,10 @@
 H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
 
 H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
+
+; bit 0: draw HP fraction to the right of bar instead of below (for party menu)
+; bit 1: menu is double spaced
+hFlags_0xFFF6 EQU $FFF6
 
 hJoyInput EQU $FFF8
 
--- a/main.asm
+++ b/main.asm
@@ -85,7 +85,7 @@
 ;  1: enemymon
 ;  2: boxmon
 ;  3: daycaremon
-; Return monster id at wcf91 and its data at wcf98.
+; Return monster id at wcf91 and its data at wLoadedMon.
 ; Also load base stats at W_MONHDEXNUM for convenience.
 
 	ld a, [wDayCareMonSpecies]
@@ -96,7 +96,7 @@
 
 	ld a, [wWhichPokemon]
 	ld e, a
-	callab Func_39c37 ; get pokemon ID
+	callab GetMonSpecies
 
 .GetMonHeader
 	ld a, [wcf91]
@@ -125,8 +125,8 @@
 	call AddNTimes
 
 .copyMonData
-	ld de, wcf98
-	ld bc, 44
+	ld de, wLoadedMon
+	ld bc, wPartyMon2 - wPartyMon1
 	jp CopyData
 
 
@@ -797,7 +797,7 @@
 	ld hl,$ffa1 ; total price of items
 	ld c,3 ; length of money in bytes
 	predef SubBCDPredef ; subtract total price from money
-	ld a,$13
+	ld a,MONEY_BOX
 	ld [wTextBoxID],a
 	call DisplayTextBoxID ; redraw money text box
 	and a
@@ -808,7 +808,7 @@
 	cp a,ITEMLISTMENU
 	jp nz,DisplayListMenuIDLoop ; only rearrange item list menus
 	push hl
-	ld hl,wcf8b
+	ld hl,wList
 	ld a,[hli]
 	ld h,[hl]
 	ld l,a
@@ -854,7 +854,7 @@
 	call DelayFrames
 	push hl
 	push de
-	ld hl,wcf8b
+	ld hl,wList
 	ld a,[hli]
 	ld h,[hl]
 	ld l,a
@@ -916,7 +916,7 @@
 	jr .done
 .combineItemSlots
 	ld [hl],a ; put the sum in the second item slot
-	ld hl,wcf8b
+	ld hl,wList
 	ld a,[hli]
 	ld h,[hl]
 	ld l,a
@@ -1022,7 +1022,7 @@
 .drawTextBoxBorder
 	call TextBoxBorder
 .skipDrawingTextBoxBorder
-	ld hl,wcfc4
+	ld hl,wFontLoaded
 	set 0,[hl]
 	ld hl,wFlags_0xcd60
 	bit 4,[hl]
@@ -1166,7 +1166,7 @@
 ; function to draw various text boxes
 DisplayTextBoxID_: ; 72ea (1:72ea)
 	ld a,[wTextBoxID]
-	cp a,$14
+	cp a,TWO_OPTION_MENU
 	jp z,DisplayTwoOptionMenu
 	ld c,a
 	ld hl,TextBoxFunctionTable
@@ -1294,9 +1294,9 @@
 ; 00: text box ID
 ; 01-02: function address
 TextBoxFunctionTable: ; 7387 (1:7387)
-	dbw $13, Func_74ba
-	dbw $15, Func_74ea
-	dbw $04, Func_76e1
+	dbw MONEY_BOX, DisplayMoneyBox
+	dbw BUY_SELL_QUIT_MENU, DoBuySellQuitMenu
+	dbw FIELD_MOVE_MON_MENU, DisplayFieldMoveMonMenu
 	db $ff ; terminator
 
 ; Format:
@@ -1306,12 +1306,12 @@
 ; 03: column of lower right corner
 ; 04: row of lower right corner
 TextBoxCoordTable: ; 7391 (1:7391)
-	db $01,  0, 12, 19, 17
-	db $03,  0,  0, 19, 14
-	db $07,  0,  0, 11,  6
-	db $0d,  4,  2, 19, 12
-	db $10,  7,  0, 19, 17
-	db $11,  6,  4, 14, 13
+	db MESSAGE_BOX,       0, 12, 19, 17
+	db $03,               0,  0, 19, 14
+	db $07,               0,  0, 11,  6
+	db LIST_MENU_BOX,     4,  2, 19, 12
+	db $10,               7,  0, 19, 17
+	db MON_SPRITE_POPUP,  6,  4, 14, 13
 	db $ff ; terminator
 
 ; Format:
@@ -1325,57 +1325,57 @@
 ; 08: row of beginning of text
 ; table of window positions and corresponding text [key, start column, start row, end column, end row, text pointer [2 bytes], text column, text row]
 TextBoxTextAndCoordTable: ; 73b0 (1:73b0)
-	db $05 ; text box ID
+	db JP_MOCHIMONO_MENU_TEMPLATE
 	db 0,0,14,17   ; text box coordinates
 	dw JapaneseMochimonoText
 	db 3,0   ; text coordinates
 
-	db $06 ; text box ID
+	db USE_TOSS_MENU_TEMPLATE
 	db 13,10,19,14 ; text box coordinates
 	dw UseTossText
 	db 15,11 ; text coordinates
 
-	db $08 ; text box ID
+	db JP_SAVE_MESSAGE_MENU_TEMPLATE
 	db 0,0,7,5     ; text box coordinates
 	dw JapaneseSaveMessageText
 	db 2,2   ; text coordinates
 
-	db $09 ; text box ID
+	db JP_SPEED_OPTIONS_MENU_TEMPLATE
 	db 0,6,5,10    ; text box coordinates
 	dw JapaneseSpeedOptionsText
 	db 2,7   ; text coordinates
 
-	db $0b ; text box ID
+	db BATTLE_MENU_TEMPLATE
 	db 8,12,19,17  ; text box coordinates
 	dw BattleMenuText
 	db 10,14 ; text coordinates
 
-	db $1b ; text box ID
+	db SAFARI_BATTLE_MENU_TEMPLATE
 	db 0,12,19,17  ; text box coordinates
 	dw SafariZoneBattleMenuText
 	db 2,14  ; text coordinates
 
-	db $0c ; text box ID
+	db SWITCH_STATS_CANCEL_MENU_TEMPLATE
 	db 11,11,19,17 ; text box coordinates
 	dw SwitchStatsCancelText
 	db 13,12 ; text coordinates
 
-	db $0e ; text box ID
+	db BUY_SELL_QUIT_MENU_TEMPLATE
 	db 0,0,10,6    ; text box coordinates
 	dw BuySellQuitText
 	db 2,1   ; text coordinates
 
-	db $0f ; text box ID
+	db MONEY_BOX_TEMPLATE
 	db 11,0,19,2   ; text box coordinates
 	dw MoneyText
 	db 13,0  ; text coordinates
 
-	db $12 ; text box ID
+	db JP_AH_MENU_TEMPLATE
 	db 7,6,11,10   ; text box coordinates
 	dw JapaneseAhText
 	db 8,8   ; text coordinates
 
-	db $1a ; text box ID
+	db JP_POKEDEX_MENU_TEMPLATE
 	db 11,8,19,17  ; text box coordinates
 	dw JapanesePokedexMenu
 	db 12,10 ; text coordinates
@@ -1431,10 +1431,10 @@
 	next "ぶんぷをみる"
 	next "キャンセル@"
 
-Func_74ba: ; 74ba (1:74ba)
+DisplayMoneyBox: ; 74ba (1:74ba)
 	ld hl, wd730
 	set 6, [hl]
-	ld a, $f
+	ld a, MONEY_BOX_TEMPLATE
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
 	hlCoord 13, 1
@@ -1442,7 +1442,7 @@
 	ld c, $6
 	call ClearScreenArea
 	hlCoord 12, 1
-	ld de, wPlayerMoney ; wPlayerMoney
+	ld de, wPlayerMoney
 	ld c, $a3
 	call PrintBCDNumber
 	ld hl, wd730
@@ -1452,26 +1452,26 @@
 CurrencyString: ; 74e2 (1:74e2)
 	db "      ¥@"
 
-Func_74ea: ; 74ea (1:74ea)
+DoBuySellQuitMenu: ; 74ea (1:74ea)
 	ld a, [wd730]
 	set 6, a ; no printing delay
 	ld [wd730], a
 	xor a
 	ld [wd12d], a
-	ld a, $e
+	ld a, BUY_SELL_QUIT_MENU_TEMPLATE
 	ld [wTextBoxID], a
 	call DisplayTextBoxID
-	ld a, $3
-	ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
+	ld a, A_BUTTON | B_BUTTON
+	ld [wMenuWatchedKeys], a
 	ld a, $2
-	ld [wMaxMenuItem], a ; wMaxMenuItem
+	ld [wMaxMenuItem], a
 	ld a, $1
-	ld [wTopMenuItemY], a ; wTopMenuItemY
+	ld [wTopMenuItemY], a
 	ld a, $1
-	ld [wTopMenuItemX], a ; wTopMenuItemX
+	ld [wTopMenuItemX], a
 	xor a
-	ld [wCurrentMenuItem], a ; wCurrentMenuItem
-	ld [wLastMenuItem], a ; wLastMenuItem
+	ld [wCurrentMenuItem], a
+	ld [wLastMenuItem], a
 	ld [wcc37], a
 	ld a, [wd730]
 	res 6, a ; turn on the printing delay
@@ -1478,27 +1478,27 @@
 	ld [wd730], a
 	call HandleMenuInput
 	call PlaceUnfilledArrowMenuCursor
-	bit 0, a
-	jr nz, .asm_7539
-	bit 1, a
-	jr z, .asm_7539
+	bit 0, a ; was A pressed?
+	jr nz, .pressedA
+	bit 1, a ; was B pressed? (always true since only A/B are watched)
+	jr z, .pressedA
 	ld a, $2
 	ld [wd12e], a
-	jr .asm_754c
-.asm_7539
+	jr .quit
+.pressedA
 	ld a, $1
 	ld [wd12e], a
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	ld [wd12d], a
 	ld b, a
-	ld a, [wMaxMenuItem] ; wMaxMenuItem
+	ld a, [wMaxMenuItem]
 	cp b
-	jr z, .asm_754c
+	jr z, .quit
 	ret
-.asm_754c
+.quit
 	ld a, $2
 	ld [wd12e], a
-	ld a, [wCurrentMenuItem] ; wCurrentMenuItem
+	ld a, [wCurrentMenuItem]
 	ld [wd12d], a
 	scf
 	ret
@@ -1716,9 +1716,9 @@
 .HealCancelMenu ; 76d5 (1:36d5)
 	db "HEAL",$4E,"CANCEL@"
 
-Func_76e1: ; 76e1 (1:36e1)
+DisplayFieldMoveMonMenu: ; 76e1 (1:36e1)
 	xor a
-	ld hl, wWhichTrade ; wWhichTrade
+	ld hl, wWhichTrade
 	ld [hli], a
 	ld [hli], a
 	ld [hli], a
@@ -1737,7 +1737,7 @@
 	ld a, $c
 	ld [$fff7], a
 	hlCoord 13, 12
-	ld de, PokemonMenuEntries ; $77c2
+	ld de, PokemonMenuEntries
 	jp PlaceString
 .asm_770f
 	push af
@@ -1778,10 +1778,10 @@
 	jr nz, .asm_7747
 	xor a
 	ld [wTrainerScreenX], a
-	ld de, wWhichTrade ; wWhichTrade
+	ld de, wWhichTrade
 .asm_7752
 	push hl
-	ld hl, FieldMoveNames ; $778d
+	ld hl, FieldMoveNames
 	ld a, [de]
 	and a
 	jr z, .asm_7776
@@ -1817,7 +1817,7 @@
 	ld e, a
 	ld d, $0
 	add hl, de
-	ld de, PokemonMenuEntries ; $77c2
+	ld de, PokemonMenuEntries
 	jp PlaceString
 
 FieldMoveNames: ; 778d (1:778d)
@@ -1837,14 +1837,14 @@
 	next "CANCEL@"
 
 GetMonFieldMoves: ; 77d6 (1:77d6)
-	ld a, [wWhichPokemon] ; wWhichPokemon
-	ld hl, wPartyMon1Moves ; wPartyMon1Moves
+	ld a, [wWhichPokemon]
+	ld hl, wPartyMon1Moves
 	ld bc, $2c
 	call AddNTimes
 	ld d, h
 	ld e, l
 	ld c, $5
-	ld hl, wWhichTrade ; wWhichTrade
+	ld hl, wWhichTrade
 .asm_77e9
 	push hl
 .asm_77ea
@@ -1855,7 +1855,7 @@
 	jr z, .asm_7821
 	ld b, a
 	inc de ; go to next move
-	ld hl, FieldMoveDisplayData ; $7823
+	ld hl, FieldMoveDisplayData
 .asm_77f6
 	ld a, [hli]
 	cp $ff
@@ -3823,8 +3823,8 @@
 	call AddNTimes
 	ld e, l
 	ld d, h
-	ld hl, wcf98
-	call CopyData    ; write new mon's data (from wcf98)
+	ld hl, wLoadedMon
+	call CopyData    ; write new mon's data (from wLoadedMon)
 	ld hl, wPartyMonOT
 	ld a, [wPartyCount]
 	dec a
--- a/scripts/ceruleanhouse2.asm
+++ b/scripts/ceruleanhouse2.asm
@@ -22,9 +22,9 @@
 	call LoadItemList
 	ld hl, wStringBuffer2 + 11
 	ld a, l
-	ld [wcf8b], a
+	ld [wList], a
 	ld a, h
-	ld [wcf8c], a
+	ld [wList + 1], a
 	xor a
 	ld [wcf93], a
 	ld [wMenuItemToSwap], a
--- a/wram.asm
+++ b/wram.asm
@@ -786,12 +786,15 @@
 wStringBuffer3:: ; cf81
 	ds 9 + 1
 
-wcf8b:: ds 1
-wcf8c:: ds 1
+wList:: ; cf8b
+	ds 2
+
 wcf8d:: ds 1
 wcf8e:: ds 1
-wcf8f:: ds 1
-wcf90:: ds 1
+
+wItemPrices:: ; cf8f
+	ds 2
+
 wcf91:: ds 1
 
 wWhichPokemon:: ; cf92
@@ -800,6 +803,12 @@
 
 wcf93:: ds 1
 
+wHPBarType:: ; cf94
+; type of HP bar
+; $00 = enemy HUD in battle
+; $01 = player HUD in battle / status screen
+; $02 = party menu
+
 wListMenuID:: ; cf94
 ; ID used by DisplayListMenuID
 	ds 1
@@ -807,25 +816,17 @@
 wcf95:: ds 1
 wcf96:: ds 1
 wcf97:: ds 1
-wcf98:: ds 1
-wcf99:: ds 1
-wcf9a:: ds 1
-wcf9b:: ds 1
-wcf9c:: ds 4
-wcfa0:: ds 4
-wcfa4:: ds 2
-wcfa6:: ds 2
-wcfa8:: ds 7
-wcfaf:: ds 10
-wcfb9:: ds 1
-wcfba:: ds 1
-wcfbb:: ds 1
-wcfbc:: ds 2
-wcfbe:: ds 2
-wcfc0:: ds 2
-wcfc2:: ds 2
-wcfc4:: ds 1
 
+; LoadMonData copies mon data here
+wLoadedMon:: party_struct wLoadedMon ; cf98
+
+wFontLoaded:: ; cfc4
+; bit 0: The space in VRAM that is used to store walk animation tile patterns
+;        for the player and NPCs is in use for font tile patterns.
+;        This means that NPC movement must be disabled.
+; The other bits are unused.
+	ds 1
+
 wWalkCounter:: ; cfc5
 ; walk animation counter
 	ds 1
@@ -979,9 +980,14 @@
 W_MOVEMISSED:: ; d05f
 	ds 1
 
-wd060:: ds 1
-wd061:: ds 1
+wPlayerStatsToDouble:: ; d060
+; always 0
+	ds 1
 
+wPlayerStatsToHalve:: ; d061
+; always 0
+	ds 1
+
 W_PLAYERBATTSTATUS1:: ; d062
 ; bit 0 - bide
 ; bit 1 - thrash / petal dance
@@ -1010,9 +1016,14 @@
 ; bit 3 - tranformed
 	ds 1
 
-wd065:: ds 1
-wd066:: ds 1
+wEnemyStatsToDouble:: ; d065
+; always 0
+	ds 1
 
+wEnemyStatsToHalve:: ; d066
+; always 0
+	ds 1
+
 W_ENEMYBATTSTATUS1:: ; d067
 	ds 1
 W_ENEMYBATTSTATUS2:: ; d068
@@ -1213,7 +1224,7 @@
 
 wd0b5:: ds 1
 
-W_LISTTYPE:: ; d0b6
+wNameListType:: ; d0b6
 	ds 1
 
 wPredefBank:: ; d0b7
@@ -1269,16 +1280,23 @@
 
 
 W_DAMAGE:: ; d0d7
-	ds 1
+	ds 2
 
-wd0d8:: ds 3
+ds 2
 
 wRepelRemainingSteps:: ; wd0db
     ds 1
-	
-wd0dc:: ds 4
-wd0e0:: ds 1
-wd0e1:: ds 56
+
+wMoves:: ; wd0dc
+; list of moves for FormatMovesString
+	ds 4
+
+wMoveNum:: ; d0e0
+	ds 1
+
+wMovesString:: ; d0e1
+	ds 56
+
 wd119:: ds 1
 
 wWalkBikeSurfStateCopy:: ; d11a