shithub: pokecrystal

Download patch

ref: 91f749101724a17398363745d8ac95cd4feeb1c1
parent: 1ff37608b6b71f831608c1319d71eec3ac0583a9
author: PikalaxALT <PikalaxALT@gmail.com>
date: Wed Nov 18 13:35:44 EST 2015

items/item_effects.asm; engine/evolution.asm

--- a/battle/core.asm
+++ b/battle/core.asm
@@ -8745,7 +8745,7 @@
 	call CheckPayDay
 	xor a
 	ld [wd1e9], a
-	predef Function421e6
+	predef EvolveAfterBattle
 	callba Function2ed44
 	ret
 ; 3f6d0
--- a/engine/breeding/egg.asm
+++ b/engine/breeding/egg.asm
@@ -219,7 +219,7 @@
 
 	push de
 
-	callba Function4dbb8
+	callba SetEggMonCaughtData
 	callba MobileFn_10608d
 	ld a, [CurPartyMon]
 	ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
--- /dev/null
+++ b/engine/evolve.asm
@@ -1,0 +1,682 @@
+EvolvePokemon: ; 421d8
+	ld hl, EvolvableFlags
+	xor a
+	ld [hl], a
+	ld a, [CurPartyMon]
+	ld c, a
+	ld b, SET_FLAG
+	call EvoFlagAction
+
+EvolveAfterBattle: ; 421e6
+	xor a
+	ld [wd268], a
+	dec a
+	ld [CurPartyMon], a
+	push hl
+	push bc
+	push de
+	ld hl, PartyCount
+
+	push hl
+
+CheckForEvolvablePokemon: ; 421f5
+	ld hl, CurPartyMon
+	inc [hl]
+
+	pop hl
+
+	inc hl
+	ld a, [hl]
+	cp $ff
+	jp z, Evolution_ReturnToMap
+
+	ld [Buffer1], a
+
+	push hl
+	ld a, [CurPartyMon]
+	ld c, a
+	ld hl, EvolvableFlags
+	ld b, CHECK_FLAG
+	call EvoFlagAction
+	ld a, c
+	and a
+	jp z, CheckForEvolvablePokemon
+
+	ld a, [Buffer1]
+	dec a
+	ld b, 0
+	ld c, a
+	ld hl, EvosAttacksPointers
+rept 2
+	add hl, bc
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+
+	push hl
+	xor a
+	ld [MonType], a
+	predef CopyPkmnToTempMon
+	pop hl
+
+.loop
+	ld a, [hli]
+	and a
+	jr z, CheckForEvolvablePokemon
+
+	ld b, a
+
+	cp EVOLVE_TRADE
+	jr z, .trade
+
+	ld a, [wLinkMode]
+	and a
+	jp nz, .dont_evolve_2
+
+	ld a, b
+	cp EVOLVE_ITEM
+	jp z, .item
+
+	ld a, [wd1e9]
+	and a
+	jp nz, .dont_evolve_2
+
+	ld a, b
+	cp EVOLVE_LEVEL
+	jp z, .level
+
+	cp EVOLVE_HAPPINESS
+	jr z, .happiness
+
+
+; EVOLVE_STAT
+	ld a, [TempMonLevel]
+	cp [hl]
+	jp c, .dont_evolve_1
+
+	call IsMonHoldingEverstone
+	jp z, .dont_evolve_1
+
+	push hl
+	ld de, TempMonAttack
+	ld hl, TempMonDefense
+	ld c, 2
+	call StringCmp
+	ld a, ATK_EQ_DEF
+	jr z, .got_tyrogue_evo
+	ld a, ATK_LT_DEF
+	jr c, .got_tyrogue_evo
+	ld a, ATK_GT_DEF
+.got_tyrogue_evo
+	pop hl
+
+	inc hl
+	cp [hl]
+	jp nz, .dont_evolve_2
+
+	inc hl
+	jr .proceed
+
+
+.happiness
+	ld a, [TempMonHappiness]
+	cp 220
+	jp c, .dont_evolve_2
+
+	call IsMonHoldingEverstone
+	jp z, .dont_evolve_2
+
+	ld a, [hli]
+	cp TR_ANYTIME
+	jr z, .proceed
+	cp TR_MORNDAY
+	jr z, .happiness_daylight
+
+; TR_NITE
+	ld a, [TimeOfDay]
+	cp NITE
+	jp nz, .dont_evolve_3
+	jr .proceed
+
+.happiness_daylight
+	ld a, [TimeOfDay]
+	cp NITE
+	jp z, .dont_evolve_3
+	jr .proceed
+
+
+.trade
+	ld a, [wLinkMode]
+	and a
+	jp z, .dont_evolve_2
+
+	call IsMonHoldingEverstone
+	jp z, .dont_evolve_2
+
+	ld a, [hli]
+	ld b, a
+	inc a
+	jr z, .proceed
+
+	ld a, [wLinkMode]
+	cp LINK_TIMECAPSULE
+	jp z, .dont_evolve_3
+
+	ld a, [TempMonItem]
+	cp b
+	jp nz, .dont_evolve_3
+
+	xor a
+	ld [TempMonItem], a
+	jr .proceed
+
+
+.item
+	ld a, [hli]
+	ld b, a
+	ld a, [CurItem]
+	cp b
+	jp nz, .dont_evolve_3
+
+	ld a, [wd1e9]
+	and a
+	jp z, .dont_evolve_3
+	ld a, [wLinkMode]
+	and a
+	jp nz, .dont_evolve_3
+	jr .proceed
+
+
+.level
+	ld a, [hli]
+	ld b, a
+	ld a, [TempMonLevel]
+	cp b
+	jp c, .dont_evolve_3
+	call IsMonHoldingEverstone
+	jp z, .dont_evolve_3
+
+.proceed
+	ld a, [TempMonLevel]
+	ld [CurPartyLevel], a
+	ld a, $1
+	ld [wd268], a
+
+	push hl
+
+	ld a, [hl]
+	ld [Buffer2], a
+	ld a, [CurPartyMon]
+	ld hl, PartyMonNicknames
+	call GetNick
+	call CopyName1
+	ld hl, Text_WhatEvolving
+	call PrintText
+
+	ld c, 50
+	call DelayFrames
+
+	xor a
+	ld [hBGMapMode], a
+	hlcoord 0, 0
+	lb bc, 12, 20
+	call ClearBox
+
+	ld a, $1
+	ld [hBGMapMode], a
+	call ClearSprites
+
+	callba EvolutionAnimation
+
+	push af
+	call ClearSprites
+	pop af
+	jp c, CancelEvolution
+
+	ld hl, Text_CongratulationsYourPokemon
+	call PrintText
+
+	pop hl
+
+	ld a, [hl]
+	ld [CurSpecies], a
+	ld [TempMonSpecies], a
+	ld [Buffer2], a
+	ld [wd265], a
+	call GetPokemonName
+
+	push hl
+	ld hl, Text_EvolvedIntoPKMN
+	call PrintTextBoxText
+	callba MobileFn_106094
+
+	ld de, MUSIC_NONE
+	call PlayMusic
+	ld de, SFX_CAUGHT_MON
+	call PlaySFX
+	call WaitSFX
+
+	ld c, 40
+	call DelayFrames
+
+	call ClearTileMap
+	call UpdateSpeciesNameIfNotNicknamed
+	call GetBaseData
+
+	ld hl, TempMonExp + 2
+	ld de, TempMonMaxHP
+	ld b, $1
+	predef CalcPkmnStats
+
+	ld a, [CurPartyMon]
+	ld hl, PartyMons
+	ld bc, PARTYMON_STRUCT_LENGTH
+	call AddNTimes
+	ld e, l
+	ld d, h
+	ld bc, MON_MAXHP
+	add hl, bc
+	ld a, [hli]
+	ld b, a
+	ld c, [hl]
+	ld hl, TempMonMaxHP + 1
+	ld a, [hld]
+	sub c
+	ld c, a
+	ld a, [hl]
+	sbc b
+	ld b, a
+	ld hl, TempMonHP + 1
+	ld a, [hl]
+	add c
+	ld [hld], a
+	ld a, [hl]
+	adc b
+	ld [hl], a
+
+	ld hl, TempMonSpecies
+	ld bc, PARTYMON_STRUCT_LENGTH
+	call CopyBytes
+
+	ld a, [CurSpecies]
+	ld [wd265], a
+	xor a
+	ld [MonType], a
+	call LearnLevelMoves
+	ld a, [wd265]
+	dec a
+	call SetSeenAndCaughtMon
+
+	ld a, [wd265]
+	cp UNOWN
+	jr nz, .skip_unown
+
+	ld hl, TempMonDVs
+	predef GetUnownLetter
+	callab UpdateUnownDex
+
+.skip_unown
+	pop de
+	pop hl
+	ld a, [TempMonSpecies]
+	ld [hl], a
+	push hl
+	ld l, e
+	ld h, d
+	jp CheckForEvolvablePokemon
+; 423f8
+
+.dont_evolve_1
+	inc hl
+.dont_evolve_2
+	inc hl
+.dont_evolve_3
+	inc hl
+	jp .loop
+; 423fe
+
+; dummy pop
+	pop hl
+
+Evolution_ReturnToMap: ; 423ff
+	pop de
+	pop bc
+	pop hl
+	ld a, [wLinkMode]
+	and a
+	ret nz
+	ld a, [wBattleMode]
+	and a
+	ret nz
+	ld a, [wd268]
+	and a
+	call nz, RestartMapMusic
+	ret
+; 42414
+
+UpdateSpeciesNameIfNotNicknamed: ; 42414
+	ld a, [CurSpecies]
+	push af
+	ld a, [BaseDexNo]
+	ld [wd265], a
+	call GetPokemonName
+	pop af
+	ld [CurSpecies], a
+	ld hl, StringBuffer1
+	ld de, StringBuffer2
+.loop
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	ret nz
+	cp "@"
+	jr nz, .loop
+
+	ld a, [CurPartyMon]
+	ld bc, PKMN_NAME_LENGTH
+	ld hl, PartyMonNicknames
+	call AddNTimes
+	push hl
+	ld a, [CurSpecies]
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, StringBuffer1
+	pop de
+	ld bc, PKMN_NAME_LENGTH
+	jp CopyBytes
+; 42454
+
+CancelEvolution: ; 42454
+	ld hl, Text_StoppedEvolving
+	call PrintText
+	call ClearTileMap
+	pop hl
+	jp CheckForEvolvablePokemon
+; 42461
+
+IsMonHoldingEverstone: ; 42461
+	push hl
+	ld a, [CurPartyMon]
+	ld hl, PartyMon1Item
+	ld bc, PARTYMON_STRUCT_LENGTH
+	call AddNTimes
+	ld a, [hl]
+	cp EVERSTONE
+	pop hl
+	ret
+; 42473
+
+Text_CongratulationsYourPokemon: ; 0x42473
+	; Congratulations! Your @ @
+	text_jump UnknownText_0x1c4b92
+	db "@"
+; 0x42478
+
+Text_EvolvedIntoPKMN: ; 0x42478
+	; evolved into @ !
+	text_jump UnknownText_0x1c4baf
+	db "@"
+; 0x4247d
+
+Text_StoppedEvolving: ; 0x4247d
+	; Huh? @ stopped evolving!
+	text_jump UnknownText_0x1c4bc5
+	db "@"
+; 0x42482
+
+Text_WhatEvolving: ; 0x42482
+	; What? @ is evolving!
+	text_jump UnknownText_0x1c4be3
+	db "@"
+; 0x42487
+
+
+LearnLevelMoves: ; 42487
+	ld a, [wd265]
+	ld [CurPartySpecies], a
+	dec a
+	ld b, 0
+	ld c, a
+	ld hl, EvosAttacksPointers
+rept 2
+	add hl, bc
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+
+.skip_evos
+	ld a, [hli]
+	and a
+	jr nz, .skip_evos
+
+.find_move
+	ld a, [hli]
+	and a
+	jr z, .done
+
+	ld b, a
+	ld a, [CurPartyLevel]
+	cp b
+	ld a, [hli]
+	jr nz, .find_move
+
+	push hl
+	ld d, a
+	ld hl, PartyMon1Moves
+	ld a, [CurPartyMon]
+	ld bc, PARTYMON_STRUCT_LENGTH
+	call AddNTimes
+
+	ld b, NUM_MOVES
+.check_move
+	ld a, [hli]
+	cp d
+	jr z, .has_move
+	dec b
+	jr nz, .check_move
+	jr .learn
+.has_move
+
+	pop hl
+	jr .find_move
+
+.learn
+	ld a, d
+	ld [wd262], a
+	ld [wd265], a
+	call GetMoveName
+	call CopyName1
+	predef LearnMove
+	pop hl
+	jr .find_move
+
+.done
+	ld a, [CurPartySpecies]
+	ld [wd265], a
+	ret
+; 424e1
+
+
+FillMoves: ; 424e1
+; Fill in moves at de for CurPartySpecies at CurPartyLevel
+
+	push hl
+	push de
+	push bc
+	ld hl, EvosAttacksPointers
+	ld b, 0
+	ld a, [CurPartySpecies]
+	dec a
+	add a
+	rl b
+	ld c, a
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+.GoToAttacks
+	ld a, [hli]
+	and a
+	jr nz, .GoToAttacks
+	jr .GetLevel
+
+.NextMove
+	pop de
+.GetMove
+	inc hl
+.GetLevel
+	ld a, [hli]
+	and a
+	jp z, .done
+	ld b, a
+	ld a, [CurPartyLevel]
+	cp b
+	jp c, .done
+	ld a, [Buffer1]
+	and a
+	jr z, .CheckMove
+	ld a, [wd002]
+	cp b
+	jr nc, .GetMove
+
+.CheckMove
+	push de
+	ld c, NUM_MOVES
+.CheckRepeat
+	ld a, [de]
+	inc de
+	cp [hl]
+	jr z, .NextMove
+	dec c
+	jr nz, .CheckRepeat
+	pop de
+	push de
+	ld c, NUM_MOVES
+.CheckSlot
+	ld a, [de]
+	and a
+	jr z, .LearnMove
+	inc de
+	dec c
+	jr nz, .CheckSlot
+	pop de
+	push de
+	push hl
+	ld h, d
+	ld l, e
+	call ShiftMoves
+	ld a, [Buffer1]
+	and a
+	jr z, .ShiftedMove
+	push de
+	ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1)
+	add hl, bc
+	ld d, h
+	ld e, l
+	call ShiftMoves
+	pop de
+
+.ShiftedMove
+	pop hl
+
+.LearnMove
+	ld a, [hl]
+	ld [de], a
+	ld a, [Buffer1]
+	and a
+	jr z, .NextMove
+	push hl
+	ld a, [hl]
+	ld hl, MON_PP - MON_MOVES
+	add hl, de
+	push hl
+	dec a
+	ld hl, Moves + MOVE_PP
+	ld bc, MOVE_LENGTH
+	call AddNTimes
+	ld a, BANK(Moves)
+	call GetFarByte
+	pop hl
+	ld [hl], a
+	pop hl
+	jr .NextMove
+
+.done
+	pop bc
+	pop de
+	pop hl
+	ret
+; 4256e
+
+ShiftMoves: ; 4256e
+	ld c, NUM_MOVES - 1
+.loop
+	inc de
+	ld a, [de]
+	ld [hli], a
+	dec c
+	jr nz, .loop
+	ret
+; 42577
+
+
+EvoFlagAction: ; 42577
+	push de
+	ld d, $0
+	predef FlagPredef
+	pop de
+	ret
+; 42581
+
+GetPreEvolution: ; 42581
+; Find the first mon to evolve into CurPartySpecies.
+
+; Return carry and the new species in CurPartySpecies
+; if a pre-evolution is found.
+
+	ld c, 0
+.loop ; For each Pokemon...
+	ld hl, EvosAttacksPointers
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+.loop2 ; For each evolution...
+	ld a, [hli]
+	and a
+	jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies.
+	cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison.
+	jr nz, .not_tyrogue
+	inc hl
+
+.not_tyrogue
+	inc hl
+	ld a, [CurPartySpecies]
+	cp [hl]
+	jr z, .found_preevo
+	inc hl
+	ld a, [hl]
+	and a
+	jr nz, .loop2
+
+.no_evolve
+	inc c
+	ld a, c
+	cp NUM_POKEMON
+	jr c, .loop
+	and a
+	ret
+
+.found_preevo
+	inc c
+	ld a, c
+	ld [CurPartySpecies], a
+	scf
+	ret
+; 425b1
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -1920,7 +1920,7 @@
 	ld a, [PartyCount]
 	dec a
 	ld [CurPartyMon], a
-	callab Function421d8
+	callab EvolvePokemon
 	call ClearScreen
 	call Function28ef8
 	call Function28eff
--- a/engine/party_menu.asm
+++ b/engine/party_menu.asm
@@ -839,85 +839,85 @@
 	db "You have no <PK><MN>!@"
 
 
-Function50566: ; 50566
+PrintPartyMenuActionText: ; 50566
 	ld a, [CurPartyMon]
 	ld hl, PartyMonNicknames
 	call GetNick
 	ld a, [PartyMenuActionText]
 	and $f
-	ld hl, Unknown_5057b
-	call Function505c1
+	ld hl, .MenuActionTexts
+	call .PrintText
 	ret
 ; 5057b
 
-Unknown_5057b: ; 5057b
-	dw UnknownText_0x50594
-	dw UnknownText_0x5059e
-	dw UnknownText_0x505a3
-	dw UnknownText_0x505a8
-	dw UnknownText_0x50599
-	dw UnknownText_0x5058f
-	dw UnknownText_0x505ad
-	dw UnknownText_0x505b2
-	dw UnknownText_0x505b7
-	dw UnknownText_0x505bc
+.MenuActionTexts: ; 5057b
+	dw .Text_CuredOfPoison
+	dw .Text_BurnWasHealed
+	dw .Text_Defrosted
+	dw .Text_WokeUp
+	dw .Text_RidOfParalysis
+	dw .Text_RecoveredSomeHP
+	dw .Text_HealthReturned
+	dw .Text_Revitalized
+	dw .Text_GrewToLevel
+	dw .Text_CameToItsSenses
 ; 5058f
 
-UnknownText_0x5058f: ; 0x5058f
+.Text_RecoveredSomeHP: ; 0x5058f
 	; recovered @ HP!
 	text_jump UnknownText_0x1bc0a2
 	db "@"
 ; 0x50594
 
-UnknownText_0x50594: ; 0x50594
+.Text_CuredOfPoison: ; 0x50594
 	; 's cured of poison.
 	text_jump UnknownText_0x1bc0bb
 	db "@"
 ; 0x50599
 
-UnknownText_0x50599: ; 0x50599
+.Text_RidOfParalysis: ; 0x50599
 	; 's rid of paralysis.
 	text_jump UnknownText_0x1bc0d2
 	db "@"
 ; 0x5059e
 
-UnknownText_0x5059e: ; 0x5059e
+.Text_BurnWasHealed: ; 0x5059e
 	; 's burn was healed.
 	text_jump UnknownText_0x1bc0ea
 	db "@"
 ; 0x505a3
 
-UnknownText_0x505a3: ; 0x505a3
+.Text_Defrosted: ; 0x505a3
 	; was defrosted.
 	text_jump UnknownText_0x1bc101
 	db "@"
 ; 0x505a8
 
-UnknownText_0x505a8: ; 0x505a8
+.Text_WokeUp: ; 0x505a8
 	; woke up.
 	text_jump UnknownText_0x1bc115
 	db "@"
 ; 0x505ad
 
-UnknownText_0x505ad: ; 0x505ad
+.Text_HealthReturned: ; 0x505ad
 	; 's health returned.
 	text_jump UnknownText_0x1bc123
 	db "@"
 ; 0x505b2
 
-UnknownText_0x505b2: ; 0x505b2
+.Text_Revitalized: ; 0x505b2
 	; is revitalized.
 	text_jump UnknownText_0x1bc13a
 	db "@"
 ; 0x505b7
 
-UnknownText_0x505b7: ; 0x505b7
+.Text_GrewToLevel: ; 0x505b7
 	; grew to level @ !@ @
 	text_jump UnknownText_0x1bc14f
 	db "@"
 ; 0x505bc
 
-UnknownText_0x505bc: ; 0x505bc
+.Text_CameToItsSenses: ; 0x505bc
 	; came to its senses.
 	text_jump UnknownText_0x1bc16e
 	db "@"
@@ -924,7 +924,7 @@
 ; 0x505c1
 
 
-Function505c1: ; 505c1
+.PrintText: ; 505c1
 	ld e, a
 	ld d, 0
 rept 2
@@ -935,7 +935,7 @@
 	ld l, a
 	ld a, [Options]
 	push af
-	set 4, a
+	set NO_TEXT_SCROLL, a
 	ld [Options], a
 	call PrintText
 	pop af
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -330,7 +330,7 @@
 .kanto
 	ld e, 1
 .ok
-	callba Function91ae1
+	callba PokegearMap
 	ld a, $7
 	ld bc, $12
 	hlcoord 1, 2
@@ -1919,7 +1919,8 @@
 .kanto
 	jp LoadStation_PlacesAndPeople
 ; 91ae1
-Function91ae1: ; 91ae1
+
+PokegearMap: ; 91ae1
 	ld a, e
 	and a
 	jr nz, .kanto
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -58,7 +58,7 @@
 	add_predef GetMonFrontpic
 	add_predef LearnLevelMoves
 	add_predef FillMoves
-	add_predef Function421e6
+	add_predef EvolveAfterBattle
 	add_predef Function28f63
 	add_predef Function28f24
 	add_predef CopyPkmnToTempMon
@@ -97,7 +97,7 @@
 	add_predef DecompressPredef ; $40
 	add_predef CheckTypeMatchup
 	add_predef ConvertMon_1to2
-	add_predef Functionfb877
+	add_predef NewPokedexEntry
 	add_predef AnimateMon_Slow_Normal
 	add_predef PlaceStatusString
 	add_predef LoadMonAnimation
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -215,7 +215,7 @@
 	call FadeToMenu
 	ld a, [ScriptVar]
 	ld [wd265], a
-	callba Functionfb877
+	callba NewPokedexEntry
 	call ExitAllMenus
 	ret
 ; c252
--- a/engine/startmenu.asm
+++ b/engine/startmenu.asm
@@ -664,7 +664,7 @@
 
 CantUseItem: ; 12a60
 	ld hl, CantUseItemText
-	call Function2012
+	call MenuTextBoxWaitButton
 	ret
 ; 12a67
 
@@ -1241,14 +1241,14 @@
 
 MonMenu_Cut: ; 12e1b
 	callba CutFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $1
-	jr nz, .asm_12e2d
+	jr nz, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12e2d
+.Fail
 	ld a, $3
 	ret
 ; 12e30
@@ -1256,25 +1256,25 @@
 
 MonMenu_Fly: ; 12e30
 	callba FlyFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $2
-	jr z, .asm_12e4c
+	jr z, .Fail
 	cp $0
-	jr z, .asm_12e4f
+	jr z, .Error
 	callba MobileFn_1060b5
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12e4c
+.Fail
 	ld a, $3
 	ret
 
-.asm_12e4f
+.Error
 	ld a, $0
 	ret
 
-.asm_12e52
+.Unused
 	ld a, $1
 	ret
 ; 12e55
@@ -1281,14 +1281,14 @@
 
 MonMenu_Flash: ; 12e55
 	callba Functionc8ac
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $1
-	jr nz, .asm_12e67
+	jr nz, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12e67
+.Fail
 	ld a, $3
 	ret
 ; 12e6a
@@ -1295,14 +1295,14 @@
 
 MonMenu_Strength: ; 12e6a
 	callba StrengthFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $1
-	jr nz, .asm_12e7c
+	jr nz, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12e7c
+.Fail
 	ld a, $3
 	ret
 ; 12e7f
@@ -1309,14 +1309,14 @@
 
 MonMenu_Whirlpool: ; 12e7f
 	callba WhirlpoolFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $1
-	jr nz, .asm_12e91
+	jr nz, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12e91
+.Fail
 	ld a, $3
 	ret
 ; 12e94
@@ -1323,14 +1323,14 @@
 
 MonMenu_Waterfall: ; 12e94
 	callba Functioncade
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $1
-	jr nz, .asm_12ea6
+	jr nz, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12ea6
+.Fail
 	ld a, $3
 	ret
 ; 12ea9
@@ -1337,14 +1337,14 @@
 
 MonMenu_Teleport: ; 12ea9
 	callba TeleportFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	and a
-	jr z, .asm_12eba
+	jr z, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12eba
+.Fail
 	ld a, $3
 	ret
 ; 12ebd
@@ -1351,14 +1351,14 @@
 
 MonMenu_Surf: ; 12ebd
 	callba SurfFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	and a
-	jr z, .asm_12ece
+	jr z, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12ece
+.Fail
 	ld a, $3
 	ret
 ; 12ed1
@@ -1365,29 +1365,29 @@
 
 MonMenu_Dig: ; 12ed1
 	callba DigFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $1
-	jr nz, .asm_12ee3
+	jr nz, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12ee3
+.Fail
 	ld a, $3
 	ret
 ; 12ee6
 
 MonMenu_Softboiled_MilkDrink: ; 12ee6
-	call Function12f05
-	jr nc, .asm_12ef3
-	callba Functionf3df
-	jr .asm_12ef9
+	call .CheckMonHasEnoughHP
+	jr nc, .NotEnoughHP
+	callba Softboiled_MilkDrinkFunction
+	jr .finish
 
-.asm_12ef3
-	ld hl, UnknownText_0x12f00
+.NotEnoughHP
+	ld hl, .Text_NotEnoughHP
 	call PrintText
 
-.asm_12ef9
+.finish
 	xor a
 	ld [PartyMenuActionText], a
 	ld a, $3
@@ -1394,13 +1394,14 @@
 	ret
 ; 12f00
 
-UnknownText_0x12f00: ; 0x12f00
+.Text_NotEnoughHP: ; 0x12f00
 	; Not enough HP!
 	text_jump UnknownText_0x1c1ce3
 	db "@"
 ; 0x12f05
 
-Function12f05: ; 12f05
+.CheckMonHasEnoughHP: ; 12f05
+; Need to have at least (MaxHP / 5) HP left.
 	ld a, MON_MAXHP
 	call GetPartyParamLocation
 	ld a, [hli]
@@ -1407,9 +1408,9 @@
 	ld [hDividend + 0], a
 	ld a, [hl]
 	ld [hDividend + 1], a
-	ld a, $5
+	ld a, 5
 	ld [hDivisor], a
-	ld b, $2
+	ld b, 2
 	call Divide
 	ld a, MON_HP + 1
 	call GetPartyParamLocation
@@ -1423,14 +1424,14 @@
 
 MonMenu_Headbutt: ; 12f26
 	callba HeadbuttFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $1
-	jr nz, .asm_12f38
+	jr nz, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12f38
+.Fail
 	ld a, $3
 	ret
 ; 12f3b
@@ -1437,14 +1438,14 @@
 
 MonMenu_RockSmash: ; 12f3b
 	callba RockSmashFunction
-	ld a, [wd0ec]
+	ld a, [wFieldMoveSucceeded]
 	cp $1
-	jr nz, .asm_12f4d
+	jr nz, .Fail
 	ld b, $4
 	ld a, $2
 	ret
 
-.asm_12f4d
+.Fail
 	ld a, $3
 	ret
 ; 12f50
--- a/engine/town_map.asm
+++ b/engine/town_map.asm
@@ -147,7 +147,7 @@
 	ld e, $1
 
 .okay
-	callba Function91ae1
+	callba PokegearMap
 	ld a, $7
 	ld bc, 6
 	hlcoord 1, 0
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -546,7 +546,7 @@
 	ret
 ; 0x2012
 
-Function2012:: ; 2012
+MenuTextBoxWaitButton:: ; 2012
 	call MenuTextBox
 	call CloseText
 	call ExitMenu
--- a/home/text.asm
+++ b/home/text.asm
@@ -714,7 +714,7 @@
 	ret
 ; 13e0
 
-Function13e0:: ; 13e0
+PokeFluteTerminatorCharacter:: ; 13e0
 	ld hl, .stop
 	ret
 
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -228,7 +228,7 @@
 	ld [wWildMon], a
 	ld a, [CurItem]
 	cp PARK_BALL
-	call nz, Functionedfa
+	call nz, ReturnToBattle_UseBall
 
 	ld hl, Options
 	res NO_TEXT_SCROLL, [hl]
@@ -421,16 +421,16 @@
 	jr nz, .caught
 	ld a, [Buffer2]
 	cp $1
-	ld hl, UnknownText_0xedb5
+	ld hl, Text_NoShake
 	jp z, .shake_and_break_free
 	cp $2
-	ld hl, UnknownText_0xedba
+	ld hl, Text_OneShake
 	jp z, .shake_and_break_free
 	cp $3
-	ld hl, UnknownText_0xedbf
+	ld hl, Text_TwoShakes
 	jp z, .shake_and_break_free
 	cp $4
-	ld hl, UnknownText_0xedc4
+	ld hl, Text_ThreeShakes
 	jp z, .shake_and_break_free
 .caught
 
@@ -535,7 +535,7 @@
 	call CheckReceivedDex
 	jr z, .skip_pokedex
 
-	ld hl, UnknownText_0xedf0
+	ld hl, Text_AddedToPokedex
 	call PrintText
 
 	call ClearSprites
@@ -542,7 +542,7 @@
 
 	ld a, [EnemyMonSpecies]
 	ld [wd265], a
-	predef Functionfb877
+	predef NewPokedexEntry
 
 .skip_pokedex
 	ld a, [BattleType]
@@ -564,7 +564,7 @@
 
 	predef TryAddMonToParty
 
-	callba Function4db49
+	callba SetCaughtData
 
 	ld a, [CurItem]
 	cp FRIEND_BALL
@@ -580,7 +580,7 @@
 	ld [hl], a
 .SkipPartyMonFriendBall
 
-	ld hl, UnknownText_0xedf5
+	ld hl, Text_AskNicknameNewlyCaughtMon
 	call PrintText
 
 	ld a, [CurPartySpecies]
@@ -620,7 +620,7 @@
 
 	predef SentPkmnIntoBox
 
-	callba Function4db83
+	callba SetBoxMonCaughtData
 
 	ld a, BANK(sBoxCount)
 	call GetSRAMBank
@@ -640,7 +640,7 @@
 .SkipBoxMonFriendBall
 	call CloseSRAM
 
-	ld hl, UnknownText_0xedf5
+	ld hl, Text_AskNicknameNewlyCaughtMon
 	call PrintText
 
 	ld a, [CurPartySpecies]
@@ -683,7 +683,7 @@
 
 	call CloseSRAM
 
-	ld hl, UnknownText_0xedeb
+	ld hl, Text_SentToBillsPC
 	call PrintText
 
 	call FadeToWhite
@@ -1092,37 +1092,40 @@
 	ld b, $ff
 	ret
 
-UnknownText_0xedab: ; 0xedab
+; These two texts were carried over from gen 1.
+; They are not used in gen 2, and are dummied out.
+
+Text_RBY_CatchMarowak: ; 0xedab
 	; It dodged the thrown BALL! This #MON can't be caught!
 	text_jump UnknownText_0x1c5a5a
 	db "@"
 ; 0xedb0
 
-UnknownText_0xedb0: ; 0xedb0
+Text_RBY_NoShake: ; 0xedb0
 	; You missed the #MON!
 	text_jump UnknownText_0x1c5a90
 	db "@"
 ; 0xedb5
 
-UnknownText_0xedb5: ; 0xedb5
+Text_NoShake: ; 0xedb5
 	; Oh no! The #MON broke free!
 	text_jump UnknownText_0x1c5aa6
 	db "@"
 ; 0xedba
 
-UnknownText_0xedba: ; 0xedba
+Text_OneShake: ; 0xedba
 	; Aww! It appeared to be caught!
 	text_jump UnknownText_0x1c5ac3
 	db "@"
 ; 0xedbf
 
-UnknownText_0xedbf: ; 0xedbf
+Text_TwoShakes: ; 0xedbf
 	; Aargh! Almost had it!
 	text_jump UnknownText_0x1c5ae3
 	db "@"
 ; 0xedc4
 
-UnknownText_0xedc4: ; 0xedc4
+Text_ThreeShakes: ; 0xedc4
 	; Shoot! It was so close too!
 	text_jump UnknownText_0x1c5afa
 	db "@"
@@ -1132,9 +1135,6 @@
 	; Gotcha! @ was caught!@ @
 	text_jump UnknownText_0x1c5b17
 	start_asm
-; 0xedce
-
-Functionedce: ; edce
 	call WaitSFX
 	push bc
 	ld de, MUSIC_NONE
@@ -1153,30 +1153,30 @@
 	db "@"
 ; 0xedeb
 
-UnknownText_0xedeb: ; 0xedeb
+Text_SentToBillsPC: ; 0xedeb
 	; was sent to BILL's PC.
 	text_jump UnknownText_0x1c5b38
 	db "@"
 ; 0xedf0
 
-UnknownText_0xedf0: ; 0xedf0
+Text_AddedToPokedex: ; 0xedf0
 	; 's data was newly added to the #DEX.@ @
 	text_jump UnknownText_0x1c5b53
 	db "@"
 ; 0xedf5
 
-UnknownText_0xedf5: ; 0xedf5
+Text_AskNicknameNewlyCaughtMon: ; 0xedf5
 	; Give a nickname to @ ?
 	text_jump UnknownText_0x1c5b7f
 	db "@"
 ; 0xedfa
 
-Functionedfa: ; edfa (3:6dfa)
-	callba Function2715c
+ReturnToBattle_UseBall: ; edfa (3:6dfa)
+	callba _ReturnToBattle_UseBall
 	ret
 
 TownMap: ; ee01
-	callba Function91ae1
+	callba PokegearMap
 	ret
 ; ee08
 
@@ -1196,7 +1196,7 @@
 	ld b, PARTYMENUACTION_EVO_STONE
 	call UseItem_SelectMon
 
-	jp c, .asm_ee38
+	jp c, .DecidedNotToUse
 
 	ld a, MON_ITEM
 	call GetPartyParamLocation
@@ -1203,22 +1203,22 @@
 
 	ld a, [hl]
 	cp EVERSTONE
-	jr z, .asm_ee35
+	jr z, .NoEffect
 
 	ld a, $1
 	ld [wd1e9], a
-	callba Function421d8
+	callba EvolvePokemon
 
 	ld a, [wd268]
 	and a
-	jr z, .asm_ee35
+	jr z, .NoEffect
 
 	jp UseDisposableItem
 
-.asm_ee35
+.NoEffect
 	call WontHaveAnyEffectMessage
 
-.asm_ee38
+.DecidedNotToUse
 	xor a
 	ld [wd0ec], a
 	ret
@@ -1233,11 +1233,11 @@
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
 
-	jp c, Functionee9f
+	jp c, RareCandy_StatBooster_ExitMenu
 
-	call Functioneef5
+	call RareCandy_StatBooster_GetParameters
 
-	call Functioneed9
+	call GetStatExpRelativePointer
 
 	ld a, MON_STAT_EXP
 	call GetPartyParamLocation
@@ -1245,15 +1245,15 @@
 	add hl, bc
 	ld a, [hl]
 	cp 100
-	jr nc, Functionee83
+	jr nc, NoEffectMessage
 
 	add 10
 	ld [hl], a
-	call Functionee8c
+	call UpdateStatsAfterItem
 
-	call Functioneed9
+	call GetStatExpRelativePointer
 
-	ld hl, Strings_eeab
+	ld hl, StatStrings
 	add hl, bc
 	ld a, [hli]
 	ld h, [hl]
@@ -1264,7 +1264,7 @@
 
 	call Play_SFX_FULL_HEAL
 
-	ld hl, UnknownText_0xeea6
+	ld hl, Text_StatRose
 	call PrintText
 
 	ld c, HAPPINESS_USEDITEM
@@ -1273,7 +1273,7 @@
 	jp UseDisposableItem
 
 
-Functionee83: ; ee83
+NoEffectMessage: ; ee83
 	ld hl, WontHaveAnyEffectText
 	call PrintText
 	jp ClearPalettes
@@ -1280,7 +1280,7 @@
 ; ee8c
 
 
-Functionee8c: ; ee8c
+UpdateStatsAfterItem: ; ee8c
 	ld a, MON_MAXHP
 	call GetPartyParamLocation
 	ld d, h
@@ -1291,7 +1291,7 @@
 	predef_jump CalcPkmnStats
 ; ee9f
 
-Functionee9f: ; ee9f
+RareCandy_StatBooster_ExitMenu: ; ee9f
 	xor a
 	ld [wd0ec], a
 	jp ClearPalettes
@@ -1298,7 +1298,7 @@
 ; eea6
 
 
-UnknownText_0xeea6: ; 0xeea6
+Text_StatRose: ; 0xeea6
 	; 's @  rose.
 	text_jump UnknownText_0x1c5b9a
 	db "@"
@@ -1305,7 +1305,7 @@
 ; 0xeeab
 
 
-Strings_eeab: ; eeab
+StatStrings: ; eeab
 	dw .health
 	dw .attack
 	dw .defense
@@ -1320,17 +1320,17 @@
 ; eed9
 
 
-Functioneed9: ; eed9
+GetStatExpRelativePointer: ; eed9
 	ld a, [CurItem]
 	ld hl, Table_eeeb
 .next
 	cp [hl]
 	inc hl
-	jr z, .asm_eee6
+	jr z, .got_it
 	inc hl
 	jr .next
 
-.asm_eee6
+.got_it
 	ld a, [hl]
 	ld c, a
 	ld b, 0
@@ -1346,7 +1346,7 @@
 ; eef5
 
 
-Functioneef5: ; eef5
+RareCandy_StatBooster_GetParameters: ; eef5
 	ld a, [CurPartySpecies]
 	ld [CurSpecies], a
 	ld [wd265], a
@@ -1366,9 +1366,9 @@
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
 
-	jp c, Functionee9f
+	jp c, RareCandy_StatBooster_ExitMenu
 
-	call Functioneef5
+	call RareCandy_StatBooster_GetParameters
 
 	ld a, MON_LEVEL
 	call GetPartyParamLocation
@@ -1375,7 +1375,7 @@
 
 	ld a, [hl]
 	cp MAX_LEVEL
-	jp nc, Functionee83
+	jp nc, NoEffectMessage
 
 	inc a
 	ld [hl], a
@@ -1390,9 +1390,9 @@
 
 	ld a, [hMultiplicand]
 	ld [hli], a
-	ld a, [$ffb5]
+	ld a, [hMultiplicand + 1]
 	ld [hli], a
-	ld a, [$ffb6]
+	ld a, [hMultiplicand + 2]
 	ld [hl], a
 
 	ld a, MON_MAXHP
@@ -1401,7 +1401,7 @@
 	ld b, a
 	ld c, [hl]
 	push bc
-	call Functionee8c
+	call UpdateStatsAfterItem
 
 	ld a, MON_MAXHP + 1
 	call GetPartyParamLocation
@@ -1423,7 +1423,7 @@
 	callba LevelUpHappinessMod
 
 	ld a, PARTYMENUTEXT_LEVEL_UP
-	call Functionf24a
+	call ItemActionText
 
 	xor a ; PARTYMON
 	ld [MonType], a
@@ -1448,7 +1448,7 @@
 
 	xor a
 	ld [wd1e9], a
-	callba Function421d8
+	callba EvolvePokemon
 
 	jp UseDisposableItem
 ; efad
@@ -1458,9 +1458,9 @@
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
 
-	jp c, Functionf29e
+	jp c, StatusHealer_ExitMenu
 
-	call Functionefda
+	call UseStatusHealer
 
 	cp $0
 	jr nz, .asm_efc9
@@ -1472,7 +1472,7 @@
 	ld a, $0
 
 .asm_efc9
-	jp Functionf09e
+	jp StatusHealer_Jumptable
 ; efcc
 
 
@@ -1490,16 +1490,16 @@
 Miracleberry: ; efcc
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
-	jp c, Functionf29e
+	jp c, StatusHealer_ExitMenu
 
-Functionefd4: ; efd4
-	call Functionefda
-	jp Functionf09e
+FullyHealStatus: ; efd4
+	call UseStatusHealer
+	jp StatusHealer_Jumptable
 ; efda
 
 
-Functionefda: ; efda (3:6fda)
-	call Functionf30d
+UseStatusHealer: ; efda (3:6fda)
+	call IsMonFainted
 	ld a, $1
 	ret z
 	call GetItemHealingAction
@@ -1508,7 +1508,7 @@
 	ld a, [hl]
 	and c
 	jr nz, .good
-	call Functionf009
+	call IsItemUsedOnConfusedMon
 	ld a, $1
 	ret nc
 	ld b, PARTYMENUTEXT_HEAL_CONFUSION
@@ -1519,13 +1519,13 @@
 	ld [PartyMenuActionText], a
 	call HealStatus
 	call Play_SFX_FULL_HEAL
-	call Functionf279
+	call ItemActionTextWaitButton
 	call UseDisposableItem
 	ld a, $0
 	ret
 
-Functionf009: ; f009 (3:7009)
-	call Functionf2a6
+IsItemUsedOnConfusedMon: ; f009 (3:7009)
+	call IsItemUsedOnBattleMon
 	jr nc, .nope
 	ld a, [PlayerSubStatus3]
 	bit SUBSTATUS_CONFUSED, a
@@ -1535,12 +1535,13 @@
 	jr nz, .nope
 	scf
 	ret
+
 .nope
 	and a
 	ret
 
-Functionf01e: ; f01e (3:701e)
-	call Functionf2a6
+BattlemonRestoreHealth: ; f01e (3:701e)
+	call IsItemUsedOnBattleMon
 	ret nc
 	ld a, MON_HP
 	call GetPartyParamLocation
@@ -1551,7 +1552,7 @@
 	ret
 
 HealStatus: ; f030 (3:7030)
-	call Functionf2a6
+	call IsItemUsedOnBattleMon
 	ret nc
 	xor a
 	ld [BattleMonStatus], a
@@ -1612,23 +1613,23 @@
 	db -1, 0, 0
 ; f09e
 
-Functionf09e: ; f09e (3:709e)
+StatusHealer_Jumptable: ; f09e (3:709e)
 	ld hl, .jumptable
 	rst JumpTable
 	ret
 
 .jumptable: ; f0a3 (3:70a3)
-	dw Functionf2a2
-	dw Functionf299
-	dw Functionf29e
+	dw StatusHealer_ClearPalettes
+	dw StatusHealer_NoEffect
+	dw StatusHealer_ExitMenu
 
 
 RevivalHerb: ; f0a9
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
-	jp c, Functionf29e
+	jp c, StatusHealer_ExitMenu
 
-	call Functionf0d6
+	call RevivePokemon
 	cp 0
 	jr nz, .asm_f0c5
 
@@ -1638,7 +1639,7 @@
 	ld a, 0
 
 .asm_f0c5
-	jp Functionf09e
+	jp StatusHealer_Jumptable
 ; f0c8
 
 
@@ -1646,20 +1647,20 @@
 MaxRevive: ; f0c8
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
-	jp c, Functionf29e
+	jp c, StatusHealer_ExitMenu
 
-	call Functionf0d6
-	jp Functionf09e
+	call RevivePokemon
+	jp StatusHealer_Jumptable
 ; f0d6
 
 
-Functionf0d6: ; f0d6
-	call Functionf30d
+RevivePokemon: ; f0d6
+	call IsMonFainted
 	ld a, 1
 	ret nz
 	ld a, [wBattleMode]
 	and a
-	jr z, .asm_f104
+	jr z, .skip_to_revive
 
 	ld a, [CurPartyMon]
 	ld c, a
@@ -1669,7 +1670,7 @@
 	predef FlagPredef
 	ld a, c
 	and a
-	jr z, .asm_f104
+	jr z, .skip_to_revive
 
 	ld a, [CurPartyMon]
 	ld c, a
@@ -1677,24 +1678,24 @@
 	ld b, SET_FLAG
 	predef FlagPredef
 
-.asm_f104
+.skip_to_revive
 	xor a
 	ld [Danger], a
 	ld a, [CurItem]
 	cp REVIVE
-	jr z, .asm_f114
+	jr z, .revive_half_hp
 
-	call Functionf2c3
-	jr .asm_f117
+	call ReviveFullHP
+	jr .finish_revive
 
-.asm_f114
-	call Functionf2ba
+.revive_half_hp
+	call ReviveHalfHP
 
-.asm_f117
-	call Functionf1db
+.finish_revive
+	call HealHP_SFX_GFX
 	ld a, PARTYMENUTEXT_REVIVE
 	ld [PartyMenuActionText], a
-	call Functionf279
+	call ItemActionTextWaitButton
 	call UseDisposableItem
 	ld a, 0
 	ret
@@ -1704,26 +1705,26 @@
 FullRestore: ; f128
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
-	jp c, Functionf29e
+	jp c, StatusHealer_ExitMenu
 
-	call Functionf30d
-	jp z, Functionf299
+	call IsMonFainted
+	jp z, StatusHealer_NoEffect
 
-	call Functionf31b
-	jr c, .asm_f13e
+	call IsMonAtFullHealth
+	jr c, .NotAtFullHealth
 
-	jp Functionefd4
+	jp FullyHealStatus
 
-.asm_f13e
-	call Functionf144
-	jp Functionf09e
+.NotAtFullHealth
+	call .FullRestore
+	jp StatusHealer_Jumptable
 ; f144
 
 
-Functionf144: ; f144
+.FullRestore: ; f144
 	xor a
 	ld [Danger], a
-	call Functionf2c3
+	call ReviveFullHP
 	ld a, MON_STATUS
 	call GetPartyParamLocation
 	xor a
@@ -1730,11 +1731,11 @@
 	ld [hli], a
 	ld [hl], a
 	call HealStatus
-	call Functionf01e
-	call Functionf1db
+	call BattlemonRestoreHealth
+	call HealHP_SFX_GFX
 	ld a, PARTYMENUTEXT_HEAL_HP
 	ld [PartyMenuActionText], a
-	call Functionf279
+	call ItemActionTextWaitButton
 	call UseDisposableItem
 	ld a, 0
 	ret
@@ -1750,7 +1751,7 @@
 	res SUBSTATUS_CONFUSED, [hl]
 	xor a
 	ld [hBattleTurn], a
-	call Functionf789
+	call UseItemText
 
 	ld hl, ConfusedNoMoreText
 	call StdBattleTextBox
@@ -1758,7 +1759,7 @@
 	ld a, 0
 
 .done
-	jp Functionf09e
+	jp StatusHealer_Jumptable
 ; f186
 
 
@@ -1774,14 +1775,14 @@
 BerryJuice:
 Berry:
 GoldBerry: ; f186
-	call Functionf1a9
-	jp Functionf09e
+	call ItemRestoreHP
+	jp StatusHealer_Jumptable
 ; f18c
 
 
 Energypowder: ; f18c
 	ld c, HAPPINESS_BITTERPOWDER
-	jr Functionf192
+	jr EnergypowderEnergyRootCommon
 ; f190
 
 EnergyRoot: ; f190
@@ -1788,50 +1789,50 @@
 	ld c, HAPPINESS_ENERGYROOT
 ; f192
 
-Functionf192: ; f192
+EnergypowderEnergyRootCommon: ; f192
 	push bc
-	call Functionf1a9
+	call ItemRestoreHP
 	pop bc
 	cp 0
-	jr nz, .asm_f1a6
+	jr nz, .skip_happiness
 
 	callba ChangeHappiness
 	call LooksBitterMessage
 	ld a, 0
 
-.asm_f1a6
-	jp Functionf09e
+.skip_happiness
+	jp StatusHealer_Jumptable
 ; f1a9
 
 
-Functionf1a9: ; f1a9 (3:71a9)
+ItemRestoreHP: ; f1a9 (3:71a9)
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
 	ld a, 2
 	ret c
 
-	call Functionf30d
+	call IsMonFainted
 	ld a, 1
 	ret z
 
-	call Functionf31b
+	call IsMonAtFullHealth
 	ld a, 1
 	ret nc
 
 	xor a
 	ld [Danger], a
-	call Functionf395
-	call Functionf2d1
-	call Functionf01e
-	call Functionf1db
+	call GetHealingItemAmount
+	call RestoreHealth
+	call BattlemonRestoreHealth
+	call HealHP_SFX_GFX
 	ld a, PARTYMENUTEXT_HEAL_HP
 	ld [PartyMenuActionText], a
-	call Functionf279
+	call ItemActionTextWaitButton
 	call UseDisposableItem
 	ld a, 0
 	ret
 
-Functionf1db: ; f1db (3:71db)
+HealHP_SFX_GFX: ; f1db (3:71db)
 	push de
 	ld de, SFX_POTION
 	call WaitPlaySFX
@@ -1867,13 +1868,13 @@
 	push de
 	push bc
 	call ClearBGPalettes
-	call Functionf21c
+	call ChoosePkmnToUseItemOn
 	pop bc
 	pop de
 	pop hl
 	ret
 
-Functionf21c: ; f21c (3:721c)
+ChoosePkmnToUseItemOn: ; f21c (3:721c)
 	callba Function5004f
 	callba Function50405
 	callba Function503e0
@@ -1885,7 +1886,7 @@
 	callba PartyMenuSelect
 	ret
 
-Functionf24a: ; f24a (3:724a)
+ItemActionText: ; f24a (3:724a)
 	ld [PartyMenuActionText], a
 	ld a, [CurPartySpecies]
 	push af
@@ -1895,7 +1896,7 @@
 	push de
 	push bc
 	callba WritePartyMenuTilemap
-	callba Function50566
+	callba PrintPartyMenuActionText
 	call WaitBGMap
 	call SetPalettes
 	call DelayFrame
@@ -1908,7 +1909,7 @@
 	ld [CurPartySpecies], a
 	ret
 
-Functionf279: ; f279 (3:7279)
+ItemActionTextWaitButton: ; f279 (3:7279)
 	xor a
 	ld [hBGMapMode], a
 	hlcoord 0, 0
@@ -1916,26 +1917,25 @@
 	ld a, " "
 	call ByteFill
 	ld a, [PartyMenuActionText]
-	call Functionf24a
+	call ItemActionText
 	ld a, $1
 	ld [hBGMapMode], a
-	ld c, $32
+	ld c, 50
 	call DelayFrames
 	jp WaitPressAorB_BlinkCursor
 
-Functionf299: ; f299 (3:7299)
+StatusHealer_NoEffect: ; f299 (3:7299)
 	call WontHaveAnyEffectMessage
-	jr Functionf2a2
+	jr StatusHealer_ClearPalettes
 
-Functionf29e: ; f29e (3:729e)
+StatusHealer_ExitMenu: ; f29e (3:729e)
 	xor a
 	ld [wd0ec], a
-
-Functionf2a2: ; f2a2 (3:72a2)
+StatusHealer_ClearPalettes: ; f2a2 (3:72a2)
 	call ClearPalettes
 	ret
 
-Functionf2a6: ; f2a6 (3:72a6)
+IsItemUsedOnBattleMon: ; f2a6 (3:72a6)
 	ld a, [wBattleMode]
 	and a
 	ret z
@@ -1944,30 +1944,31 @@
 	ld hl, CurBattleMon
 	cp [hl]
 	pop hl
-	jr nz, .asm_f2b8
+	jr nz, .nope
 	scf
 	ret
-.asm_f2b8
+
+.nope
 	xor a
 	ret
 
-Functionf2ba: ; f2ba (3:72ba)
-	call Functionf36f
+ReviveHalfHP: ; f2ba (3:72ba)
+	call LoadHPFromBuffer1
 	srl d
 	rr e
-	jr asm_f2c6
+	jr ContinueRevive
 
-Functionf2c3: ; f2c3 (3:72c3)
-	call Functionf36f
-asm_f2c6: ; f2c6 (3:72c6)
+ReviveFullHP: ; f2c3 (3:72c3)
+	call LoadHPFromBuffer1
+ContinueRevive: ; f2c6 (3:72c6)
 	ld a, MON_HP
 	call GetPartyParamLocation
 	ld [hl], d
 	inc hl
 	ld [hl], e
-	jp Functionf328
+	jp LoadCurHPIntoBuffer5
 
-Functionf2d1: ; f2d1 (3:72d1)
+RestoreHealth: ; f2d1 (3:72d1)
 	ld a, MON_HP + 1
 	call GetPartyParamLocation
 	ld a, [hl]
@@ -1976,8 +1977,8 @@
 	ld a, [hl]
 	adc d
 	ld [hl], a
-	jr c, .asm_f2f5
-	call Functionf328
+	jr c, .full_hp
+	call LoadCurHPIntoBuffer5
 	ld a, MON_HP + 1
 	call GetPartyParamLocation
 	ld d, h
@@ -1990,13 +1991,13 @@
 	dec hl
 	ld a, [de]
 	sbc [hl]
-	jr c, .asm_f2f8
-.asm_f2f5
-	call Functionf2c3
-.asm_f2f8
+	jr c, .finish
+.full_hp
+	call ReviveFullHP
+.finish
 	ret
 
-Functionf2f9: ; f2f9 (3:72f9)
+RemoveHP: ; f2f9 (3:72f9)
 	ld a, MON_HP + 1
 	call GetPartyParamLocation
 	ld a, [hl]
@@ -2005,29 +2006,29 @@
 	ld a, [hl]
 	sbc d
 	ld [hl], a
-	jr nc, .asm_f309
+	jr nc, .okay
 	xor a
 	ld [hld], a
 	ld [hl], a
-.asm_f309
-	call Functionf328
+.okay
+	call LoadCurHPIntoBuffer5
 	ret
 
-Functionf30d: ; f30d (3:730d)
+IsMonFainted: ; f30d (3:730d)
 	push de
-	call Functionf35f
-	call Functionf348
-	call Functionf356
+	call LoadMaxHPToBuffer1
+	call LoadCurHPToBuffer3
+	call LoadHPFromBuffer3
 	ld a, d
 	or e
 	pop de
 	ret
 
-Functionf31b: ; f31b (3:731b)
-	call Functionf356
+IsMonAtFullHealth: ; f31b (3:731b)
+	call LoadHPFromBuffer3
 	ld h, d
 	ld l, e
-	call Functionf36f
+	call LoadHPFromBuffer1
 	ld a, l
 	sub e
 	ld a, h
@@ -2034,49 +2035,49 @@
 	sbc d
 	ret
 
-Functionf328: ; f328 (3:7328)
+LoadCurHPIntoBuffer5: ; f328 (3:7328)
 	ld a, MON_HP
 	call GetPartyParamLocation
 	ld a, [hli]
-	ld [wd1ef], a
+	ld [Buffer6], a
 	ld a, [hl]
-	ld [wd1ee], a
+	ld [Buffer5], a
 	ret
 ; f336 (3:7336)
 
-Functionf336: ; f336
+LoadHPIntoBuffer5: ; f336
 	ld a, d
-	ld [wd1ef], a
+	ld [Buffer6], a
 	ld a, e
-	ld [wd1ee], a
+	ld [Buffer5], a
 	ret
 ; f33f
 
-Functionf33f: ; f33f
-	ld a, [wd1ef]
+LoadHPFromBuffer5: ; f33f
+	ld a, [Buffer6]
 	ld d, a
-	ld a, [wd1ee]
+	ld a, [Buffer5]
 	ld e, a
 	ret
 ; f348
 
-Functionf348: ; f348 (3:7348)
+LoadCurHPToBuffer3: ; f348 (3:7348)
 	ld a, MON_HP
 	call GetPartyParamLocation
 	ld a, [hli]
-	ld [wd1ed], a
+	ld [Buffer4], a
 	ld a, [hl]
-	ld [wd1ec], a
+	ld [Buffer3], a
 	ret
 
-Functionf356: ; f356 (3:7356)
-	ld a, [wd1ed]
+LoadHPFromBuffer3: ; f356 (3:7356)
+	ld a, [Buffer4]
 	ld d, a
-	ld a, [wd1ec]
+	ld a, [Buffer3]
 	ld e, a
 	ret
 
-Functionf35f: ; f35f (3:735f)
+LoadMaxHPToBuffer1: ; f35f (3:735f)
 	push hl
 	ld a, MON_MAXHP
 	call GetPartyParamLocation
@@ -2087,7 +2088,7 @@
 	pop hl
 	ret
 
-Functionf36f: ; f36f (3:736f)
+LoadHPFromBuffer1: ; f36f (3:736f)
 	ld a, [Buffer2]
 	ld d, a
 	ld a, [Buffer1]
@@ -2094,7 +2095,7 @@
 	ld e, a
 	ret
 
-Functionf378: ; f378 (3:7378)
+GetOneFifthMaxHP: ; f378 (3:7378)
 	push bc
 	ld a, MON_MAXHP
 	call GetPartyParamLocation
@@ -2113,15 +2114,15 @@
 	pop bc
 	ret
 
-Functionf395: ; f395 (3:7395)
+GetHealingItemAmount: ; f395 (3:7395)
 	push hl
 	ld a, [CurItem]
-	ld hl, Tablef3af
+	ld hl, .Healing
 	ld d, a
 .next
 	ld a, [hli]
 	cp -1
-	jr z, .asm_f3a9
+	jr z, .NotFound
 	cp d
 	jr z, .done
 rept 2
@@ -2129,7 +2130,7 @@
 endr
 	jr .next
 
-.asm_f3a9
+.NotFound
 	scf
 .done
 	ld e, [hl]
@@ -2139,7 +2140,7 @@
 	ret
 ; f3af (3:73af)
 
-Tablef3af: ; f3af
+.Healing: ; f3af
 	dbw FRESH_WATER,   50
 	dbw SODA_POP,      60
 	dbw LEMONADE,      80
@@ -2158,42 +2159,42 @@
 	dbw -1,             0
 ; f3df
 
-Functionf3df: ; f3df (3:73df)
+Softboiled_MilkDrinkFunction: ; f3df (3:73df)
 ; Softboiled/Milk Drink in the field
 	ld a, [wd0d8]
 	dec a
 	ld b, a
-	call Functionf419
-	jr c, .asm_f413
+	call .SelectMilkDrinkRecipient ; select pokemon
+	jr c, .skip
 	ld a, b
 	ld [CurPartyMon], a
-	call Functionf30d
-	call Functionf378
-	call Functionf2f9
+	call IsMonFainted
+	call GetOneFifthMaxHP
+	call RemoveHP
 	push bc
-	call Functionf1db
+	call HealHP_SFX_GFX
 	pop bc
-	call Functionf378
+	call GetOneFifthMaxHP
 	ld a, c
 	ld [CurPartyMon], a
-	call Functionf30d
-	call Functionf2d1
-	call Functionf1db
+	call IsMonFainted
+	call RestoreHealth
+	call HealHP_SFX_GFX
 	ld a, PARTYMENUTEXT_HEAL_HP
-	call Functionf24a
+	call ItemActionText
 	call JoyWaitAorB
-.asm_f413
+.skip
 	ld a, b
 	inc a
 	ld [wd0d8], a
 	ret
 
-Functionf419: ; f419 (3:7419)
+.SelectMilkDrinkRecipient: ; f419 (3:7419)
 .loop
 	push bc
 	ld a, PARTYMENUACTION_HEALING_ITEM
 	ld [PartyMenuActionText], a
-	call Functionf21c
+	call ChoosePkmnToUseItemOn
 	pop bc
 	jr c, .set_carry
 	ld a, [wd0d8]
@@ -2201,13 +2202,13 @@
 	ld c, a
 	ld a, b
 	cp c
-	jr z, .loopback
+	jr z, .cant_use ; chose the same mon as user
 	ld a, c
 	ld [CurPartyMon], a
-	call Functionf30d
-	jr z, .loopback
-	call Functionf31b
-	jr nc, .loopback
+	call IsMonFainted
+	jr z, .cant_use
+	call IsMonAtFullHealth
+	jr nc, .cant_use
 	xor a
 	ret
 
@@ -2215,15 +2216,15 @@
 	scf
 	ret
 
-.loopback
+.cant_use
 	push bc
-	ld hl, UnknownText_0xf44a
+	ld hl, .Text_CantBeUsed
 	call MenuTextBoxBackup
 	pop bc
 	jr .loop
 ; f44a (3:744a)
 
-UnknownText_0xf44a: ; 0xf44a
+.Text_CantBeUsed: ; 0xf44a
 	; That can't be used on this #MON.
 	text_jump UnknownText_0x1c5bac
 	db "@"
@@ -2244,12 +2245,12 @@
 
 SuperRepel: ; f462
 	ld b, 200
-	jr Function_0xf46c
+	jr UseRepel
 ; f466
 
 MaxRepel: ; f466
 	ld b, 250
-	jr Function_0xf46c
+	jr UseRepel
 ; f466
 
 Repel: ; f46a
@@ -2256,7 +2257,7 @@
 	ld b, 100
 ; f46c
 
-Function_0xf46c: ; f46c
+UseRepel: ; f46c
 	ld a, [wRepelEffect]
 	and a
 	ld hl, TextJump_RepelUsedEarlierIsStillInEffect
@@ -2264,7 +2265,7 @@
 
 	ld a, b
 	ld [wRepelEffect], a
-	jp Functionf789
+	jp UseItemText
 
 
 TextJump_RepelUsedEarlierIsStillInEffect: ; 0xf47d
@@ -2279,7 +2280,7 @@
 	bit SUBSTATUS_X_ACCURACY, [hl]
 	jp nz, WontHaveAnyEffect_NotUsedMessage
 	set SUBSTATUS_X_ACCURACY, [hl]
-	jp Functionf789
+	jp UseItemText
 ; f48f
 
 
@@ -2293,7 +2294,7 @@
 	and 3 << 6
 	or $2
 	ld [wBattleResult], a
-	jp Functionf789
+	jp UseItemText
 
 .asm_f4a6
 	xor a
@@ -2307,7 +2308,7 @@
 	bit SUBSTATUS_MIST, [hl]
 	jp nz, WontHaveAnyEffect_NotUsedMessage
 	set SUBSTATUS_MIST, [hl]
-	jp Functionf789
+	jp UseItemText
 ; f4b8
 
 
@@ -2316,7 +2317,7 @@
 	bit SUBSTATUS_FOCUS_ENERGY, [hl]
 	jp nz, WontHaveAnyEffect_NotUsedMessage
 	set SUBSTATUS_FOCUS_ENERGY, [hl]
-	jp Functionf789
+	jp UseItemText
 ; f4c5
 
 
@@ -2324,7 +2325,7 @@
 XDefend:
 XSpeed:
 XSpecial: ; f4c5
-	call Functionf789
+	call UseItemText
 
 	ld a, [CurItem]
 	ld hl, .x_item_table
@@ -2368,8 +2369,8 @@
 PokeFlute: ; f50c
 	ld a, [wBattleMode]
 	and a
-	jr nz, .asm_f512
-.asm_f512
+	jr nz, .dummy
+.dummy
 
 	xor a
 	ld [wd002], a
@@ -2377,14 +2378,14 @@
 	ld b, $ff ^ SLP
 
 	ld hl, PartyMon1Status
-	call .Functionf554
+	call .CureSleep
 
 	ld a, [wBattleMode]
 	cp WILD_BATTLE
-	jr z, .asm_f52b
+	jr z, .skip_otrainer
 	ld hl, OTPartyMon1Status
-	call .Functionf554
-.asm_f52b
+	call .CureSleep
+.skip_otrainer
 
 	ld hl, BattleMonStatus
 	ld a, [hl]
@@ -2397,20 +2398,20 @@
 
 	ld a, [wd002]
 	and a
-	ld hl, UnknownText_0xf56c
+	ld hl, .CatchyTune
 	jp z, PrintText
-	ld hl, UnknownText_0xf576
+	ld hl, .PlayedTheFlute
 	call PrintText
 
 	ld a, [Danger]
 	and $80
-	jr nz, .asm_f54e
-.asm_f54e
-	ld hl, UnknownText_0xf571
+	jr nz, .dummy2
+.dummy2
+	ld hl, .AllSleepingMonWokeUp
 	jp PrintText
 
 
-.Functionf554
+.CureSleep
 	ld de, PARTYMON_STRUCT_LENGTH
 	ld c, PARTY_LENGTH
 
@@ -2418,10 +2419,10 @@
 	ld a, [hl]
 	push af
 	and SLP
-	jr z, .asm_f564
+	jr z, .not_asleep
 	ld a, 1
 	ld [wd002], a
-.asm_f564
+.not_asleep
 	pop af
 	and b
 	ld [hl], a
@@ -2432,29 +2433,25 @@
 ; f56c
 
 
-UnknownText_0xf56c: ; 0xf56c
+.CatchyTune: ; 0xf56c
 	; Played the # FLUTE. Now, that's a catchy tune!
 	text_jump UnknownText_0x1c5bf9
 	db "@"
 ; 0xf571
 
-UnknownText_0xf571: ; 0xf571
+.AllSleepingMonWokeUp: ; 0xf571
 	; All sleeping #MON woke up.
 	text_jump UnknownText_0x1c5c28
 	db "@"
 ; 0xf576
 
-UnknownText_0xf576: ; 0xf576
+.PlayedTheFlute: ; 0xf576
 	; played the # FLUTE.@ @
 	text_jump UnknownText_0x1c5c44
 	start_asm
-; 0xf57b
-
-
-Function_0xf57b: ; f57b
 	ld a, [wBattleMode]
 	and a
-	jr nz, .asm_f58c
+	jr nz, .battle
 
 	push de
 	ld de, SFX_POKEFLUTE
@@ -2462,14 +2459,14 @@
 	call WaitSFX
 	pop de
 
-.asm_f58c
-	jp Function13e0
+.battle
+	jp PokeFluteTerminatorCharacter
 ; f58f
 
 
 BlueCard: ; f58f
 	ld hl, .bluecardtext
-	jp Function2012
+	jp MenuTextBoxWaitButton
 
 .bluecardtext
 	text_jump UnknownText_0x1c5c5e
@@ -2479,7 +2476,7 @@
 
 CoinCase: ; f59a
 	ld hl, .coincasetext
-	jp Function2012
+	jp MenuTextBoxWaitButton
 
 .coincasetext
 	text_jump UnknownText_0x1c5c7b
@@ -2527,7 +2524,7 @@
     ; Party Screen opens to choose on which Pkmn to use the Item
 	ld b, PARTYMENUACTION_HEALING_ITEM
 	call UseItem_SelectMon
-	jp c, Functionf6e0
+	jp c, PPRestoreItem_Cancel
 
 .loop2
 	ld a, [wd002]
@@ -2570,7 +2567,7 @@
 
 	ld a, [wd002]
 	cp PP_UP
-	jp nz, Functionf6a7
+	jp nz, Not_PP_Up
 
 	ld a, [hl]
 	cp SKETCH
@@ -2594,38 +2591,38 @@
 	ld [hl], a
 	ld a, $1
 	ld [wd265], a
-	call Functionf84c
+	call ApplyPPUp
 	call Play_SFX_FULL_HEAL
 
 	ld hl, TextJump_PPsIncreased
 	call PrintText
 
-Functionf64c: ; f64c
+FinishPPRestore: ; f64c
 	call ClearPalettes
 	jp UseDisposableItem
 ; f652
 
-Functionf652: ; f652
+BattleRestorePP: ; f652
 	ld a, [wBattleMode]
 	and a
-	jr z, .asm_f66c
+	jr z, .not_in_battle
 	ld a, [CurPartyMon]
 	ld b, a
 	ld a, [CurBattleMon]
 	cp b
-	jr nz, .asm_f66c
+	jr nz, .not_in_battle
 	ld a, [PlayerSubStatus5]
 	bit SUBSTATUS_TRANSFORMED, a
-	jr nz, .asm_f66c
-	call .asm_f677
+	jr nz, .not_in_battle
+	call .UpdateBattleMonPP
 
-.asm_f66c
+.not_in_battle
 	call Play_SFX_FULL_HEAL
 	ld hl, UnknownText_0xf739
 	call PrintText
-	jr Functionf64c
+	jr FinishPPRestore
 
-.asm_f677
+.UpdateBattleMonPP
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1Moves
 	ld bc, PARTYMON_STRUCT_LENGTH
@@ -2632,12 +2629,12 @@
 	call AddNTimes
 	ld de, BattleMonMoves
 	ld b, NUM_MOVES
-.asm_f688
+.loop
 	ld a, [de]
 	and a
-	jr z, .asm_f6a6
+	jr z, .done
 	cp [hl]
-	jr nz, .asm_f6a1
+	jr nz, .next
 	push hl
 	push de
 	push bc
@@ -2652,20 +2649,20 @@
 	pop de
 	pop hl
 
-.asm_f6a1
+.next
 	inc hl
 	inc de
 	dec b
-	jr nz, .asm_f688
+	jr nz, .loop
 
-.asm_f6a6
+.done
 	ret
 ; f6a7
 
-Functionf6a7: ; f6a7
+Not_PP_Up: ; f6a7
 	call RestorePP
-	jr nz, Functionf652
-	jp Functionf6dd
+	jr nz, BattleRestorePP
+	jp PPRestoreItem_NoEffect
 ; f6af
 
 Elixer_RestorePPofAllMoves: ; f6af
@@ -2681,14 +2678,14 @@
 	call GetMthMoveOfNthPartymon
 	ld a, [hl]
 	and a
-	jr z, .cant_restore_pp
+	jr z, .next
 
 	call RestorePP
-	jr z, .cant_restore_pp
+	jr z, .next
 	ld hl, wcfaa
 	inc [hl]
 
-.cant_restore_pp
+.next
 	ld hl, MenuSelection2
 	inc [hl]
 	pop bc
@@ -2696,12 +2693,12 @@
 	jr nz, .moveLoop
 	ld a, [wcfaa]
 	and a
-	jp nz, Functionf652
+	jp nz, BattleRestorePP
 
-Functionf6dd: ; f6dd
+PPRestoreItem_NoEffect: ; f6dd
 	call WontHaveAnyEffectMessage
 
-Functionf6e0: ; f6e0
+PPRestoreItem_Cancel: ; f6e0
 	call ClearPalettes
 	xor a
 	ld [wd0ec], a
@@ -2939,14 +2936,11 @@
 	ret
 ; f789
 
-Functionf789: ; f789
+UseItemText ; f789
 	ld hl, UsedItemText
 	call PrintText
 	call Play_SFX_FULL_HEAL
 	call WaitPressAorB_BlinkCursor
-	; fallthrough
-; f795
-
 UseDisposableItem: ; f795
 	ld hl, NumItems
 	ld a, 1
@@ -2955,7 +2949,7 @@
 ; f7a0
 
 UseBallInTrainerBattle: ; f7a0
-	call Functionedfa
+	call ReturnToBattle_UseBall
 	ld de, ANIM_THROW_POKE_BALL
 	ld a, e
 	ld [FXAnimIDLo], a
@@ -3107,7 +3101,7 @@
 ; 0xf84c
 
 
-Functionf84c: ; f84c
+ApplyPPUp: ; f84c
 	ld a, MON_MOVES
 	call GetPartyParamLocation
 	push hl
@@ -3118,7 +3112,7 @@
 	add hl, bc
 	ld de, Buffer1
 	ld b, 0
-.asm_f864
+.loop
 	inc b
 	ld a, b
 	cp NUM_MOVES + 1
@@ -3125,22 +3119,22 @@
 	ret z
 	ld a, [wd265]
 	dec a
-	jr nz, .asm_f876
+	jr nz, .use
 	ld a, [MenuSelection2]
 	inc a
 	cp b
-	jr nz, .asm_f87d
+	jr nz, .skip
 
-.asm_f876
+.use
 	ld a, [hl]
 	and 3 << 6
 	ld a, [de] ; wasted cycle
 	call nz, ComputeMaxPP
 
-.asm_f87d
+.skip
 	inc hl
 	inc de
-	jr .asm_f864
+	jr .loop
 ; f881
 
 
@@ -3195,7 +3189,7 @@
 	ret
 ; f8b9
 
-Functionf8b9: ; f8b9
+RestoreAllPP: ; f8b9
 	ld a, MON_PP
 	call GetPartyParamLocation
 	push hl
--- a/main.asm
+++ b/main.asm
@@ -2957,7 +2957,7 @@
 
 ; Caught data.
 	ld b, 0
-	callba SetPartymonCaughtData
+	callba SetGiftPartyMonCaughtData
 
 ; Holding a Berry.
 	ld bc, PARTYMON_STRUCT_LENGTH
@@ -4530,7 +4530,7 @@
 	ld a, [hl]
 	ld [bc], a
 
-	callba Functionf8b9
+	callba RestoreAllPP
 	ret
 ; c699
 
@@ -8308,7 +8308,7 @@
 	ld bc, PARTYMON_STRUCT_LENGTH
 	call AddNTimes
 	predef GetUnownLetter
-	callab Functionfba18
+	callab UpdateUnownDex
 
 .done
 	scf ; When this function returns, the carry flag indicates success vs failure.
@@ -8420,7 +8420,7 @@
 	ld bc, PARTYMON_STRUCT_LENGTH
 	call AddNTimes
 	predef GetUnownLetter
-	callab Functionfba18
+	callab UpdateUnownDex
 	ld a, [wdef4]
 	and a
 	jr nz, .done
@@ -9014,7 +9014,7 @@
 	jr nz, .asm_df20
 	ld hl, sBoxMon1DVs
 	predef GetUnownLetter
-	callab Functionfba18
+	callab UpdateUnownDex
 
 .asm_df20
 	ld hl, sBoxMon1Moves
@@ -9697,7 +9697,7 @@
 	ld [hli], a
 	ld [hl], 01001 % $100
 	pop bc
-	callba SetPartymonCaughtData
+	callba SetGiftPartyMonCaughtData
 	jr .skip_nickname
 
 .asm_e35e
@@ -9721,7 +9721,7 @@
 	call Random
 	ld [hl], a
 	call CloseSRAM
-	callba SetBoxMonCaughtData
+	callba SetGiftBoxMonCaughtData
 	jr .skip_nickname
 
 .asm_e390
@@ -9732,11 +9732,11 @@
 	ld a, b
 	and a
 	jr z, .asm_e3a0
-	callba Function4db83
+	callba SetBoxMonCaughtData
 	jr .asm_e3a6
 
 .asm_e3a0
-	callba Function4db49
+	callba SetCaughtData
 
 .asm_e3a6
 	callba GiveANickname_YesNo
@@ -13569,7 +13569,7 @@
 
 INCLUDE "trainers/dvs.asm"
 
-Function2715c: ; 2715c
+_ReturnToBattle_UseBall: ; 2715c
 	call ClearBGPalettes
 	call ClearTileMap
 	ld a, [BattleType]
@@ -16258,691 +16258,8 @@
 
 INCLUDE "battle/moves/moves.asm"
 
+INCLUDE "engine/evolve.asm"
 
-Function421d8: ; 421d8
-	ld hl, EvolvableFlags
-	xor a
-	ld [hl], a
-	ld a, [CurPartyMon]
-	ld c, a
-	ld b, $1
-	call Function42577
-
-Function421e6: ; 421e6
-	xor a
-	ld [wd268], a
-	dec a
-	ld [CurPartyMon], a
-	push hl
-	push bc
-	push de
-	ld hl, PartyCount
-
-	push hl
-
-Function421f5: ; 421f5
-	ld hl, CurPartyMon
-	inc [hl]
-
-	pop hl
-
-	inc hl
-	ld a, [hl]
-	cp $ff
-	jp z, Function423ff
-
-	ld [Buffer1], a
-
-	push hl
-	ld a, [CurPartyMon]
-	ld c, a
-	ld hl, EvolvableFlags
-	ld b, 2
-	call Function42577
-	ld a, c
-	and a
-	jp z, Function421f5
-
-	ld a, [Buffer1]
-	dec a
-	ld b, 0
-	ld c, a
-	ld hl, EvosAttacksPointers
-rept 2
-	add hl, bc
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-
-	push hl
-	xor a
-	ld [MonType], a
-	predef CopyPkmnToTempMon
-	pop hl
-
-.asm_42230
-	ld a, [hli]
-	and a
-	jr z, Function421f5
-
-	ld b, a
-
-	cp EVOLVE_TRADE
-	jr z, .trade
-
-	ld a, [wLinkMode]
-	and a
-	jp nz, .asm_423f9
-
-	ld a, b
-	cp EVOLVE_ITEM
-	jp z, .item
-
-	ld a, [wd1e9]
-	and a
-	jp nz, .asm_423f9
-
-	ld a, b
-	cp EVOLVE_LEVEL
-	jp z, .level
-
-	cp EVOLVE_HAPPINESS
-	jr z, .happiness
-
-
-; EVOLVE_STAT
-	ld a, [TempMonLevel]
-	cp [hl]
-	jp c, .asm_423f8
-
-	call Function42461
-	jp z, .asm_423f8
-
-	push hl
-	ld de, TempMonAttack
-	ld hl, TempMonDefense
-	ld c, 2
-	call StringCmp
-	ld a, ATK_EQ_DEF
-	jr z, .asm_4227a
-	ld a, ATK_LT_DEF
-	jr c, .asm_4227a
-	ld a, ATK_GT_DEF
-.asm_4227a
-	pop hl
-
-	inc hl
-	cp [hl]
-	jp nz, .asm_423f9
-
-	inc hl
-	jr .asm_422fd
-
-
-.happiness
-	ld a, [TempMonHappiness]
-	cp 220
-	jp c, .asm_423f9
-
-	call Function42461
-	jp z, .asm_423f9
-
-	ld a, [hli]
-	cp TR_ANYTIME
-	jr z, .asm_422fd
-	cp TR_MORNDAY
-	jr z, .asm_422a4
-
-; TR_NITE
-	ld a, [TimeOfDay]
-	cp NITE
-	jp nz, .asm_423fa
-	jr .asm_422fd
-
-.asm_422a4
-	ld a, [TimeOfDay]
-	cp NITE
-	jp z, .asm_423fa
-	jr .asm_422fd
-
-
-.trade
-	ld a, [wLinkMode]
-	and a
-	jp z, .asm_423f9
-
-	call Function42461
-	jp z, .asm_423f9
-
-	ld a, [hli]
-	ld b, a
-	inc a
-	jr z, .asm_422fd
-
-	ld a, [wLinkMode]
-	cp LINK_TIMECAPSULE
-	jp z, .asm_423fa
-
-	ld a, [TempMonItem]
-	cp b
-	jp nz, .asm_423fa
-
-	xor a
-	ld [TempMonItem], a
-	jr .asm_422fd
-
-
-.item
-	ld a, [hli]
-	ld b, a
-	ld a, [CurItem]
-	cp b
-	jp nz, .asm_423fa
-
-	ld a, [wd1e9]
-	and a
-	jp z, .asm_423fa
-	ld a, [wLinkMode]
-	and a
-	jp nz, .asm_423fa
-	jr .asm_422fd
-
-
-.level
-	ld a, [hli]
-	ld b, a
-	ld a, [TempMonLevel]
-	cp b
-	jp c, .asm_423fa
-	call Function42461
-	jp z, .asm_423fa
-
-.asm_422fd
-	ld a, [TempMonLevel]
-	ld [CurPartyLevel], a
-	ld a, $1
-	ld [wd268], a
-
-	push hl
-
-	ld a, [hl]
-	ld [Buffer2], a
-	ld a, [CurPartyMon]
-	ld hl, PartyMonNicknames
-	call GetNick
-	call CopyName1
-	ld hl, UnknownText_0x42482
-	call PrintText
-
-	ld c, 50
-	call DelayFrames
-
-	xor a
-	ld [hBGMapMode], a
-	hlcoord 0, 0
-	lb bc, 12, 20
-	call ClearBox
-
-	ld a, $1
-	ld [hBGMapMode], a
-	call ClearSprites
-
-	callba EvolutionAnimation
-
-	push af
-	call ClearSprites
-	pop af
-	jp c, Function42454
-
-	ld hl, UnknownText_0x42473
-	call PrintText
-
-	pop hl
-
-	ld a, [hl]
-	ld [CurSpecies], a
-	ld [TempMonSpecies], a
-	ld [Buffer2], a
-	ld [wd265], a
-	call GetPokemonName
-
-	push hl
-	ld hl, UnknownText_0x42478
-	call PrintTextBoxText
-	callba MobileFn_106094
-
-	ld de, MUSIC_NONE
-	call PlayMusic
-	ld de, SFX_CAUGHT_MON
-	call PlaySFX
-	call WaitSFX
-
-	ld c, 40
-	call DelayFrames
-
-	call ClearTileMap
-	call Function42414
-	call GetBaseData
-
-	ld hl, TempMonExp + 2
-	ld de, TempMonMaxHP
-	ld b, $1
-	predef CalcPkmnStats
-
-	ld a, [CurPartyMon]
-	ld hl, PartyMons
-	ld bc, PARTYMON_STRUCT_LENGTH
-	call AddNTimes
-	ld e, l
-	ld d, h
-	ld bc, MON_MAXHP
-	add hl, bc
-	ld a, [hli]
-	ld b, a
-	ld c, [hl]
-	ld hl, TempMonMaxHP + 1
-	ld a, [hld]
-	sub c
-	ld c, a
-	ld a, [hl]
-	sbc b
-	ld b, a
-	ld hl, TempMonHP + 1
-	ld a, [hl]
-	add c
-	ld [hld], a
-	ld a, [hl]
-	adc b
-	ld [hl], a
-
-	ld hl, TempMonSpecies
-	ld bc, PARTYMON_STRUCT_LENGTH
-	call CopyBytes
-
-	ld a, [CurSpecies]
-	ld [wd265], a
-	xor a
-	ld [MonType], a
-	call LearnLevelMoves
-	ld a, [wd265]
-	dec a
-	call SetSeenAndCaughtMon
-
-	ld a, [wd265]
-	cp UNOWN
-	jr nz, .asm_423ec
-
-	ld hl, TempMonDVs
-	predef GetUnownLetter
-	callab Functionfba18
-
-.asm_423ec
-	pop de
-	pop hl
-	ld a, [TempMonSpecies]
-	ld [hl], a
-	push hl
-	ld l, e
-	ld h, d
-	jp Function421f5
-; 423f8
-
-.asm_423f8
-	inc hl
-.asm_423f9
-	inc hl
-.asm_423fa
-	inc hl
-	jp .asm_42230
-; 423fe
-
-Function423fe: ; 423fe
-	pop hl
-
-Function423ff: ; 423ff
-	pop de
-	pop bc
-	pop hl
-	ld a, [wLinkMode]
-	and a
-	ret nz
-	ld a, [wBattleMode]
-	and a
-	ret nz
-	ld a, [wd268]
-	and a
-	call nz, RestartMapMusic
-	ret
-; 42414
-
-Function42414: ; 42414
-	ld a, [CurSpecies]
-	push af
-	ld a, [BaseDexNo]
-	ld [wd265], a
-	call GetPokemonName
-	pop af
-	ld [CurSpecies], a
-	ld hl, StringBuffer1
-	ld de, StringBuffer2
-.asm_4242b
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	ret nz
-	cp "@"
-	jr nz, .asm_4242b
-	ld a, [CurPartyMon]
-	ld bc, PKMN_NAME_LENGTH
-	ld hl, PartyMonNicknames
-	call AddNTimes
-	push hl
-	ld a, [CurSpecies]
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, StringBuffer1
-	pop de
-	ld bc, PKMN_NAME_LENGTH
-	jp CopyBytes
-; 42454
-
-Function42454: ; 42454
-	ld hl, UnknownText_0x4247d
-	call PrintText
-	call ClearTileMap
-	pop hl
-	jp Function421f5
-; 42461
-
-Function42461: ; 42461
-	push hl
-	ld a, [CurPartyMon]
-	ld hl, PartyMon1Item
-	ld bc, PARTYMON_STRUCT_LENGTH
-	call AddNTimes
-	ld a, [hl]
-	cp EVERSTONE
-	pop hl
-	ret
-; 42473
-
-UnknownText_0x42473: ; 0x42473
-	; Congratulations! Your @ @
-	text_jump UnknownText_0x1c4b92
-	db "@"
-; 0x42478
-
-UnknownText_0x42478: ; 0x42478
-	; evolved into @ !
-	text_jump UnknownText_0x1c4baf
-	db "@"
-; 0x4247d
-
-UnknownText_0x4247d: ; 0x4247d
-	; Huh? @ stopped evolving!
-	text_jump UnknownText_0x1c4bc5
-	db "@"
-; 0x42482
-
-UnknownText_0x42482: ; 0x42482
-	; What? @ is evolving!
-	text_jump UnknownText_0x1c4be3
-	db "@"
-; 0x42487
-
-
-LearnLevelMoves: ; 42487
-	ld a, [wd265]
-	ld [CurPartySpecies], a
-	dec a
-	ld b, 0
-	ld c, a
-	ld hl, EvosAttacksPointers
-rept 2
-	add hl, bc
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-
-.skip_evos
-	ld a, [hli]
-	and a
-	jr nz, .skip_evos
-
-.find_move
-	ld a, [hli]
-	and a
-	jr z, .done
-
-	ld b, a
-	ld a, [CurPartyLevel]
-	cp b
-	ld a, [hli]
-	jr nz, .find_move
-
-	push hl
-	ld d, a
-	ld hl, PartyMon1Moves
-	ld a, [CurPartyMon]
-	ld bc, PARTYMON_STRUCT_LENGTH
-	call AddNTimes
-
-	ld b, NUM_MOVES
-.check_move
-	ld a, [hli]
-	cp d
-	jr z, .has_move
-	dec b
-	jr nz, .check_move
-	jr .learn
-.has_move
-
-	pop hl
-	jr .find_move
-
-.learn
-	ld a, d
-	ld [wd262], a
-	ld [wd265], a
-	call GetMoveName
-	call CopyName1
-	predef LearnMove
-	pop hl
-	jr .find_move
-
-.done
-	ld a, [CurPartySpecies]
-	ld [wd265], a
-	ret
-; 424e1
-
-
-FillMoves: ; 424e1
-; Fill in moves at de for CurPartySpecies at CurPartyLevel
-
-	push hl
-	push de
-	push bc
-	ld hl, EvosAttacksPointers
-	ld b, 0
-	ld a, [CurPartySpecies]
-	dec a
-	add a
-	rl b
-	ld c, a
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-.GoToAttacks
-	ld a, [hli]
-	and a
-	jr nz, .GoToAttacks
-	jr .GetLevel
-
-.NextMove
-	pop de
-.GetMove
-	inc hl
-.GetLevel
-	ld a, [hli]
-	and a
-	jp z, .done
-	ld b, a
-	ld a, [CurPartyLevel]
-	cp b
-	jp c, .done
-	ld a, [Buffer1]
-	and a
-	jr z, .CheckMove
-	ld a, [wd002]
-	cp b
-	jr nc, .GetMove
-
-.CheckMove
-	push de
-	ld c, NUM_MOVES
-.CheckRepeat
-	ld a, [de]
-	inc de
-	cp [hl]
-	jr z, .NextMove
-	dec c
-	jr nz, .CheckRepeat
-	pop de
-	push de
-	ld c, NUM_MOVES
-.CheckSlot
-	ld a, [de]
-	and a
-	jr z, .LearnMove
-	inc de
-	dec c
-	jr nz, .CheckSlot
-	pop de
-	push de
-	push hl
-	ld h, d
-	ld l, e
-	call ShiftMoves
-	ld a, [Buffer1]
-	and a
-	jr z, .ShiftedMove
-	push de
-	ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES - 1)
-	add hl, bc
-	ld d, h
-	ld e, l
-	call ShiftMoves
-	pop de
-
-.ShiftedMove
-	pop hl
-
-.LearnMove
-	ld a, [hl]
-	ld [de], a
-	ld a, [Buffer1]
-	and a
-	jr z, .NextMove
-	push hl
-	ld a, [hl]
-	ld hl, MON_PP - MON_MOVES
-	add hl, de
-	push hl
-	dec a
-	ld hl, Moves + MOVE_PP
-	ld bc, MOVE_LENGTH
-	call AddNTimes
-	ld a, BANK(Moves)
-	call GetFarByte
-	pop hl
-	ld [hl], a
-	pop hl
-	jr .NextMove
-
-.done
-	pop bc
-	pop de
-	pop hl
-	ret
-; 4256e
-
-ShiftMoves: ; 4256e
-	ld c, NUM_MOVES - 1
-.loop
-	inc de
-	ld a, [de]
-	ld [hli], a
-	dec c
-	jr nz, .loop
-	ret
-; 42577
-
-
-Function42577: ; 42577
-	push de
-	ld d, $0
-	predef FlagPredef
-	pop de
-	ret
-; 42581
-
-GetPreEvolution: ; 42581
-; Find the first mon to evolve into CurPartySpecies.
-
-; Return carry and the new species in CurPartySpecies
-; if a pre-evolution is found.
-
-	ld c, 0
-.loop ; For each Pokemon...
-	ld hl, EvosAttacksPointers
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-.loop2 ; For each evolution...
-	ld a, [hli]
-	and a
-	jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies.
-	cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison.
-	jr nz, .not_tyrogue
-	inc hl
-
-.not_tyrogue
-	inc hl
-	ld a, [CurPartySpecies]
-	cp [hl]
-	jr z, .found_preevo
-	inc hl
-	ld a, [hl]
-	and a
-	jr nz, .loop2
-
-.no_evolve
-	inc c
-	ld a, c
-	cp NUM_POKEMON
-	jr c, .loop
-	and a
-	ret
-
-.found_preevo
-	inc c
-	ld a, c
-	ld [CurPartySpecies], a
-	scf
-	ret
-; 425b1
-
-
-
 SECTION "bank11", ROMX, BANK[$11]
 
 INCLUDE "engine/fruit_trees.asm"
@@ -20888,7 +20205,7 @@
 	call GetPartyLocation
 	ld a, [hl]
 	ld [CurPartyLevel], a
-	call Function4db49
+	call SetCaughtData
 	ld a, [PartyCount]
 	dec a
 	ld hl, PartyMon1CaughtLocation
@@ -20950,7 +20267,7 @@
 	ld a, [sBoxMon1Level]
 	ld [CurPartyLevel], a
 	call CloseSRAM
-	call Function4db83
+	call SetBoxMonCaughtData
 	ld a, BANK(sBoxMon1CaughtLocation)
 	call GetSRAMBank
 	ld hl, sBoxMon1CaughtLocation
@@ -20987,12 +20304,12 @@
 ; 0x4db49
 
 
-Function4db49: ; 4db49
+SetCaughtData: ; 4db49
 	ld a, [PartyCount]
 	dec a
 	ld hl, PartyMon1CaughtLevel
 	call GetPartyLocation
-Function4db53: ; 4db53
+SetBoxmonOrEggmonCaughtData: ; 4db53
 	ld a, [TimeOfDay]
 	inc a
 	rrca
@@ -21026,27 +20343,27 @@
 	ret
 ; 4db83
 
-Function4db83: ; 4db83
+SetBoxMonCaughtData: ; 4db83
 	ld a, BANK(sBoxMon1CaughtLevel)
 	call GetSRAMBank
 	ld hl, sBoxMon1CaughtLevel
-	call Function4db53
+	call SetBoxmonOrEggmonCaughtData
 	call CloseSRAM
 	ret
 ; 4db92
 
-SetBoxMonCaughtData: ; 4db92
+SetGiftBoxMonCaughtData: ; 4db92
 	push bc
 	ld a, BANK(sBoxMon1CaughtLevel)
 	call GetSRAMBank
 	ld hl, sBoxMon1CaughtLevel
 	pop bc
-	call SetPkmnCaughtData
+	call SetGiftMonCaughtData
 	call CloseSRAM
 	ret
 ; 4dba3
 
-SetPartymonCaughtData: ; 4dba3
+SetGiftPartyMonCaughtData: ; 4dba3
 	ld a, [PartyCount]
 	dec a
 	ld hl, PartyMon1CaughtLevel
@@ -21053,7 +20370,7 @@
 	push bc
 	call GetPartyLocation
 	pop bc
-SetPkmnCaughtData: ; 4dbaf
+SetGiftMonCaughtData: ; 4dbaf
 	xor a
 	ld [hli], a
 	ld a, $7e
@@ -21064,7 +20381,7 @@
 ; 4dbb8
 
 
-Function4dbb8: ; 4dbb8 (13:5bb8)
+SetEggMonCaughtData: ; 4dbb8 (13:5bb8)
 	ld a, [CurPartyMon]
 	ld hl, PartyMon1CaughtLevel
 	call GetPartyLocation
@@ -21072,7 +20389,7 @@
 	push af
 	ld a, $1
 	ld [CurPartyLevel], a
-	call Function4db53
+	call SetBoxmonOrEggmonCaughtData
 	pop af
 	ld [CurPartyLevel], a
 	ret
@@ -34954,7 +34271,7 @@
 	ret
 ; fb877
 
-Functionfb877: ; fb877
+NewPokedexEntry: ; fb877
 	ld a, [hMapAnims]
 	push af
 	xor a
@@ -35300,22 +34617,22 @@
 ; fba18
 
 
-Functionfba18: ; fba18
+UpdateUnownDex: ; fba18
 	ld a, [UnownLetter]
 	ld c, a
 	ld b, 26
 	ld hl, UnownDex
-.asm_fba21
+.loop
 	ld a, [hli]
 	and a
-	jr z, .asm_fba2b
+	jr z, .done
 	cp c
 	ret z
 	dec b
-	jr nz, .asm_fba21
+	jr nz, .loop
 	ret
 
-.asm_fba2b
+.done
 	dec hl
 	ld [hl], c
 	ret
@@ -35324,8 +34641,8 @@
 
 Functionfba2e: ; fba2e (3e:7a2e)
 	hlcoord 4, 15
-	ld bc, $c
-	ld a, $7f
+	ld bc, 12
+	ld a, " "
 	call ByteFill
 	ld a, [wc7dd]
 	ld e, a
@@ -35650,7 +34967,7 @@
 	jr c, .asm_fcd1c
 	ld b, 1
 .asm_fcd1c
-	callba SetPartymonCaughtData
+	callba SetGiftPartyMonCaughtData
 
 	ld e, TRADE_NICK
 	call GetTradeAttribute
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -6465,7 +6465,7 @@
 	ld [CurPartyMon], a
 	ld a, $1
 	ld [wd1e9], a
-	callba Function421d8
+	callba EvolvePokemon
 	call Function102d9a
 	call Function102dd3
 	call Function102dec
@@ -6769,7 +6769,7 @@
 	ld hl, PartyMon1DVs
 	call AddNTimes
 	predef GetUnownLetter
-	callba Functionfba18
+	callba UpdateUnownDex
 	ld a, [wdef4]
 	and a
 	jr nz, .asm_102d98
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -7676,7 +7676,7 @@
 	ld [wd1e9], a
 	ld a, $2
 	ld [wLinkMode], a
-	callba Function421d8
+	callba EvolvePokemon
 	xor a
 	ld [wLinkMode], a
 	callba Function14a58
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -303,7 +303,7 @@
 	ld [wd1e9], a
 	ld a, $2
 	ld [wLinkMode], a
-	callba Function421d8
+	callba EvolvePokemon
 	xor a
 	ld [wLinkMode], a
 	callba Function14a58
@@ -415,7 +415,7 @@
 	ld bc, PARTYMON_STRUCT_LENGTH
 	call AddNTimes
 	predef GetUnownLetter
-	callab Functionfba18
+	callab UpdateUnownDex
 	ld a, [wdef4]
 	and a
 	jr nz, .asm_17d223
@@ -2362,7 +2362,7 @@
 	push hl
 	push bc
 	predef TryAddMonToParty
-	callba Function4db49
+	callba SetCaughtData
 	pop bc
 	pop hl
 	bit 1, b
@@ -2400,7 +2400,7 @@
 	ld a, [hli]
 	ld b, a
 	push hl
-	callba SetPartymonCaughtData
+	callba SetGiftPartyMonCaughtData
 	pop hl
 	pop bc
 	jr .asm_17df5e
@@ -2558,7 +2558,7 @@
 	push hl
 	callba LoadEnemyMon
 	callba SentPkmnIntoBox
-	callba Function4db83
+	callba SetBoxMonCaughtData
 	pop hl
 	pop bc
 	ld a, BANK(sBoxMonNicknames)
@@ -2587,7 +2587,7 @@
 	ld b, a
 	push hl
 	call CloseSRAM
-	callba SetBoxMonCaughtData
+	callba SetGiftBoxMonCaughtData
 	ld a, $1
 	call GetSRAMBank
 	pop hl
--- a/wram.asm
+++ b/wram.asm
@@ -1664,6 +1664,7 @@
 wQueuedScriptBank:: ds 1
 wQueuedScriptAddr:: ds 2
 wd0eb:: ds 1
+wFieldMoveSucceeded::
 wd0ec:: ds 1
 
 VramState:: ; d0ed