shithub: pokecrystal

Download patch

ref: 6c25592b8c43afe9780968da88f9b06cbb526e72
parent: 0a244e043c83dff064d7e3ec054a587c7f999d0d
author: PikalaxALT <[email protected]>
date: Mon Oct 19 12:49:29 EDT 2015

So very jumb

--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -237,9 +237,9 @@
 ; Appears to be unused.
 	xor a
 	ld [hBGMapMode], a
-	ld a, $80
+	ld a, (VBGMap0 tile $28) % $100
 	ld [hBGMapAddress], a
-	ld a, $9a
+	ld a, (VBGMap0 tile $28) / $100
 	ld [hBGMapAddress + 1], a
 	call Function3200
 	ld a, $60
@@ -246,7 +246,7 @@
 	ld [hWY], a
 	xor a
 	ld [hBGMapAddress], a
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	call BattleAnimDelayFrame
 	ret
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -149,7 +149,7 @@
 	call StdBattleTextBox
 
 .asm_3c118
-	call Function3ceec
+	call StopDangerSound
 	call Function3d2e0
 	jr c, .asm_3c126
 
@@ -264,40 +264,40 @@
 Function3c1d6: ; 3c1d6
 	ld a, [$ffcb]
 	cp $1
-	jr z, .asm_3c1fe
-	call Function3c23c
+	jr z, .CheckEnemyFirst
+	call CheckFaint_PlayerThenEnemy
 	ret c
 	call Function3ca26
-	call Function3c23c
+	call CheckFaint_PlayerThenEnemy
 	ret c
 	call HandleWeather
-	call Function3c23c
+	call CheckFaint_PlayerThenEnemy
 	ret c
 	call Function3c874
-	call Function3c23c
+	call CheckFaint_PlayerThenEnemy
 	ret c
 	call Function3c801
-	call Function3c23c
+	call CheckFaint_PlayerThenEnemy
 	ret c
-	jr .asm_3c21e
+	jr .NoMoreFaintingConditions
 
-.asm_3c1fe
-	call Function3c25c
+.CheckEnemyFirst
+	call CheckFaint_EnemyThenPlayer
 	ret c
 	call Function3ca26
-	call Function3c25c
+	call CheckFaint_EnemyThenPlayer
 	ret c
 	call HandleWeather
-	call Function3c25c
+	call CheckFaint_EnemyThenPlayer
 	ret c
 	call Function3c874
-	call Function3c25c
+	call CheckFaint_EnemyThenPlayer
 	ret c
 	call Function3c801
-	call Function3c25c
+	call CheckFaint_EnemyThenPlayer
 	ret c
 
-.asm_3c21e
+.NoMoreFaintingConditions
 	call Function3c8eb
 	call Function3c93c
 	call HanleDefrost
@@ -310,52 +310,52 @@
 	jp Function3c4df
 ; 3c23c
 
-Function3c23c: ; 3c23c
+CheckFaint_PlayerThenEnemy: ; 3c23c
 	call HasPlayerFainted
-	jr nz, .asm_3c24a
-	call Function3d14e
+	jr nz, .PlayerNotFainted
+	call HandlePlayerMonFaint
 	ld a, [BattleEnded]
 	and a
-	jr nz, .asm_3c25a
+	jr nz, .BattleIsOver
 
-.asm_3c24a
+.PlayerNotFainted
 	call HasEnemyFainted
-	jr nz, .asm_3c258
-	call Function3cd55
+	jr nz, .BattleContinues
+	call HandleEnemyMonFaint
 	ld a, [BattleEnded]
 	and a
-	jr nz, .asm_3c25a
+	jr nz, .BattleIsOver
 
-.asm_3c258
+.BattleContinues
 	and a
 	ret
 
-.asm_3c25a
+.BattleIsOver
 	scf
 	ret
 ; 3c25c
 
-Function3c25c: ; 3c25c
+CheckFaint_EnemyThenPlayer: ; 3c25c
 	call HasEnemyFainted
-	jr nz, .asm_3c26a
-	call Function3cd55
+	jr nz, .EnemyNotFainted
+	call HandleEnemyMonFaint
 	ld a, [BattleEnded]
 	and a
-	jr nz, .asm_3c27a
+	jr nz, .BattleIsOver
 
-.asm_3c26a
+.EnemyNotFainted
 	call HasPlayerFainted
-	jr nz, .asm_3c278
-	call Function3d14e
+	jr nz, .BattleContinues
+	call HandlePlayerMonFaint
 	ld a, [BattleEnded]
 	and a
-	jr nz, .asm_3c27a
+	jr nz, .BattleIsOver
 
-.asm_3c278
+.BattleContinues
 	and a
 	ret
 
-.asm_3c27a
+.BattleIsOver
 	scf
 	ret
 ; 3c27c
@@ -952,14 +952,14 @@
 	and a
 	ret nz
 	call HasPlayerFainted
-	jp z, Function3d14e
+	jp z, HandlePlayerMonFaint
 	call HasEnemyFainted
-	jp z, Function3cd55
+	jp z, HandleEnemyMonFaint
 
 .asm_3c62f
 	call SetEnemyTurn
 	call ResidualDamage
-	jp z, Function3cd55
+	jp z, HandleEnemyMonFaint
 	call RefreshBattleHuds
 	call Function3c6cf
 	call Function3d2e0
@@ -968,12 +968,12 @@
 	and a
 	ret nz
 	call HasEnemyFainted
-	jp z, Function3cd55
+	jp z, HandleEnemyMonFaint
 	call HasPlayerFainted
-	jp z, Function3d14e
+	jp z, HandlePlayerMonFaint
 	call SetPlayerTurn
 	call ResidualDamage
-	jp z, Function3d14e
+	jp z, HandlePlayerMonFaint
 	call RefreshBattleHuds
 	xor a
 	ld [wd0ec], a
@@ -994,14 +994,14 @@
 	call Function3d2e0
 	ret c
 	call HasEnemyFainted
-	jp z, Function3cd55
+	jp z, HandleEnemyMonFaint
 	call HasPlayerFainted
-	jp z, Function3d14e
+	jp z, HandlePlayerMonFaint
 	push bc
 	call SetPlayerTurn
 	call ResidualDamage
 	pop bc
-	jp z, Function3d14e
+	jp z, HandlePlayerMonFaint
 	push bc
 	call RefreshBattleHuds
 	pop af
@@ -1016,14 +1016,14 @@
 	and a
 	ret nz
 	call HasPlayerFainted
-	jp z, Function3d14e
+	jp z, HandlePlayerMonFaint
 	call HasEnemyFainted
-	jp z, Function3cd55
+	jp z, HandleEnemyMonFaint
 
 .asm_3c6be
 	call SetEnemyTurn
 	call ResidualDamage
-	jp z, Function3cd55
+	jp z, HandleEnemyMonFaint
 	call RefreshBattleHuds
 	xor a
 	ld [wd0ec], a
@@ -2095,12 +2095,12 @@
 	ret
 ; 3cd55
 
-Function3cd55: ; 3cd55
-	call Function3cf14
+HandleEnemyMonFaint: ; 3cd55
+	call FaintEnemyPokemon
 	ld hl, BattleMonHP
 	ld a, [hli]
 	or [hl]
-	call z, Function3cef1
+	call z, FaintYourPokemon
 	xor a
 	ld [wc6f7], a
 	call Function3ce01
@@ -2121,15 +2121,15 @@
 
 	ld a, [wBattleMode]
 	dec a
-	jr nz, .asm_3cd8c
+	jr nz, .trainer
 
 	ld a, 1
 	ld [BattleEnded], a
 	ret
 
-.asm_3cd8c
-	call Function3cf35
-	jp z, Function3cfa4
+.trainer
+	call CheckEnemyTrainerDefeated
+	jp z, WinTrainerBattle
 
 	ld hl, BattleMonHP
 	ld a, [hli]
@@ -2221,7 +2221,7 @@
 	jr .asm_3ce37
 
 .asm_3ce2f
-	call Function3ceec
+	call StopDangerSound
 	ld a, $1
 	ld [wc6fd], a
 
@@ -2342,20 +2342,20 @@
 
 
 
-Function3ceec: ; 3ceec
+StopDangerSound: ; 3ceec
 	xor a
 	ld [Danger], a
 	ret
 ; 3cef1
 
-Function3cef1: ; 3cef1
-	call Function3ceec
+FaintYourPokemon: ; 3cef1
+	call StopDangerSound
 	call WaitSFX
 	ld a, $f0
 	ld [CryTracks], a
 	ld a, [BattleMonSpecies]
 	call PlayStereoCry
-	call Function3d43b
+	call PlayerMonFaintedAnimation
 	hlcoord 9, 7
 	lb bc, 5, 11
 	call ClearBox
@@ -2363,11 +2363,11 @@
 	jp StdBattleTextBox
 ; 3cf14
 
-Function3cf14: ; 3cf14
+FaintEnemyPokemon: ; 3cf14
 	call WaitSFX
 	ld de, SFX_KINESIS
 	call PlaySFX
-	call Function3d432
+	call EnemyMonFaintedAnimation
 	ld de, SFX_FAINT
 	call PlaySFX
 	hlcoord 1, 0
@@ -2377,13 +2377,14 @@
 	jp StdBattleTextBox
 ; 3cf35
 
-Function3cf35: ; 3cf35
+CheckEnemyTrainerDefeated: ; 3cf35
 	ld a, [OTPartyCount]
 	ld b, a
 	xor a
 	ld hl, OTPartyMon1HP
 	ld de, PartyMon2 - PartyMon1
-.asm_3cf40
+
+.loop
 	or [hl]
 	inc hl
 	or [hl]
@@ -2390,7 +2391,8 @@
 	dec hl
 	add hl, de
 	dec b
-	jr nz, .asm_3cf40
+	jr nz, .loop
+
 	and a
 	ret
 ; 3cf4a
@@ -2447,8 +2449,8 @@
 	ret
 ; 3cfa4
 
-Function3cfa4: ; 3cfa4
-	call Function3ceec
+WinTrainerBattle: ; 3cfa4
+	call StopDangerSound
 	ld a, $1
 	ld [wc6fd], a
 	ld [BattleEnded], a
@@ -2750,12 +2752,12 @@
 	db -1
 
 
-Function3d14e: ; 3d14e
-	call Function3cef1
+HandlePlayerMonFaint: ; 3d14e
+	call FaintYourPokemon
 	ld hl, EnemyMonHP
 	ld a, [hli]
 	or [hl]
-	call z, Function3cf14
+	call z, FaintEnemyPokemon
 	ld a, $1
 	ld [wc6f7], a
 	call Function3d1aa
@@ -2766,20 +2768,20 @@
 	ld hl, EnemyMonHP
 	ld a, [hli]
 	or [hl]
-	jr nz, .asm_3d185
+	jr nz, .notfainted
 	call Function3ce01
 	ld a, [wBattleMode]
 	dec a
-	jr nz, .asm_3d17f
+	jr nz, .trainer
 	ld a, $1
 	ld [BattleEnded], a
 	ret
 
-.asm_3d17f
-	call Function3cf35
-	jp z, Function3cfa4
+.trainer
+	call CheckEnemyTrainerDefeated
+	jp z, WinTrainerBattle
 
-.asm_3d185
+.notfainted
 	call Function3d1f8
 	jr nc, .asm_3d190
 	ld a, $1
@@ -3086,7 +3088,7 @@
 
 ; Remove the enemy from the screen.
 	hlcoord 0, 0
-	ld bc, $0815
+	lb bc, 8, 21
 	call ClearBox
 	call Function3ebd8
 
@@ -3103,7 +3105,7 @@
 .asm_3d3bd
 ; Remove the enemy from the screen.
 	hlcoord 0, 0
-	ld bc, $0815
+	lb bc, 8, 21
 	call ClearBox
 	call Function3ebd8
 
@@ -3131,7 +3133,7 @@
 
 .LostLinkBattle
 	call UpdateEnemyMonInParty
-	call Function3cf35
+	call CheckEnemyTrainerDefeated
 	jr nz, .asm_3d40a
 	ld hl, TiedAgainstText
 	ld a, [wd0ee]
@@ -3155,7 +3157,7 @@
 .asm_3d417
 ; Remove the enemy from the screen.
 	hlcoord 0, 0
-	ld bc, $0815
+	lb bc, 8, 21
 	call ClearBox
 	call Function3ebd8
 
@@ -3169,38 +3171,40 @@
 ; 3d432
 
 
-Function3d432: ; 3d432
+EnemyMonFaintedAnimation: ; 3d432
 	hlcoord 12, 5
 	decoord 12, 6
-	jp Function3d444
+	jp MonFaintedAnimation
 ; 3d43b
 
-Function3d43b: ; 3d43b
+PlayerMonFaintedAnimation: ; 3d43b
 	hlcoord 1, 10
 	decoord 1, 11
-	jp Function3d444
+	jp MonFaintedAnimation
 ; 3d444
 
-Function3d444: ; 3d444
+MonFaintedAnimation: ; 3d444
 	ld a, [wcfbe]
 	push af
 	set 6, a
 	ld [wcfbe], a
-	ld b, $7
-.asm_3d44f
+	ld b, 7
+
+.OuterLoop
 	push bc
 	push de
 	push hl
-	ld b, $6
-.asm_3d454
+	ld b, 6
+
+.InnerLoop
 	push bc
 	push hl
 	push de
-	ld bc, $0007
+	ld bc, 7
 	call CopyBytes
 	pop de
 	pop hl
-	ld bc, -20
+	ld bc, -SCREEN_WIDTH
 	add hl, bc
 	push hl
 	ld h, d
@@ -3211,7 +3215,8 @@
 	pop hl
 	pop bc
 	dec b
-	jr nz, .asm_3d454
+	jr nz, .InnerLoop
+
 	ld bc, 20
 	add hl, bc
 	ld de, .Spaces
@@ -3222,7 +3227,8 @@
 	pop de
 	pop bc
 	dec b
-	jr nz, .asm_3d44f
+	jr nz, .OuterLoop
+
 	pop af
 	ld [wcfbe], a
 	ret
@@ -4007,7 +4013,7 @@
 	and $c0
 	add b
 	ld [wd0ee], a
-	call Function3ceec
+	call StopDangerSound
 	push de
 	ld de, SFX_RUN
 	call WaitPlaySFX
@@ -4021,7 +4027,7 @@
 	ret
 
 .asm_3d9f5
-	call Function3ceec
+	call StopDangerSound
 	ld hl, wcd2a
 	bit 4, [hl]
 	jr nz, .asm_3da05
@@ -4387,7 +4393,7 @@
 	ld hl, wc664
 	ld b, $0
 	predef FlagPredef
-	call Function3d43b
+	call PlayerMonFaintedAnimation
 	ld hl, BattleText_PkmnFainted
 	jr .asm_3dcdf
 
@@ -4403,7 +4409,7 @@
 	ld de, SFX_FAINT
 	call PlaySFX
 	call WaitSFX
-	call Function3d432
+	call EnemyMonFaintedAnimation
 	ld hl, BattleText_EnemyPkmnFainted
 
 .asm_3dcdf
@@ -6837,7 +6843,8 @@
 	callab GetTrainerPic
 	hlcoord 19, 0
 	ld c, $0
-.asm_3ebf3
+
+.outer_loop
 	inc c
 	ld a, c
 	cp $7
@@ -6848,7 +6855,8 @@
 	ld d, $0
 	push bc
 	push hl
-.asm_3ec01
+
+.inner_loop
 	call Function3ec1a
 	inc hl
 	ld a, $7
@@ -6855,7 +6863,8 @@
 	add d
 	ld d, a
 	dec c
-	jr nz, .asm_3ec01
+	jr nz, .inner_loop
+
 	ld a, $1
 	ld [hBGMapMode], a
 	ld c, $4
@@ -6863,7 +6872,7 @@
 	pop hl
 	pop bc
 	dec hl
-	jr .asm_3ebf3
+	jr .outer_loop
 ; 3ec1a
 
 Function3ec1a: ; 3ec1a
@@ -6871,13 +6880,15 @@
 	push de
 	push bc
 	ld e, $7
-.asm_3ec1f
+
+.loop
 	ld [hl], d
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	inc d
 	dec e
-	jr nz, .asm_3ec1f
+	jr nz, .loop
+
 	pop bc
 	pop de
 	pop hl
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -1,5 +1,7 @@
 ; trainer groups
-	enum_start 1
+	enum_start
+	trainerclass PHONE ; 0
+	
 	trainerclass FALKNER ; 1
 
 	trainerclass WHITNEY ; 2
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -13,7 +13,7 @@
 	ld [hl], $1
 
 .loop
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .done
 	call FlashyTransitionToBattle
@@ -72,7 +72,7 @@
 	call DelayFrame
 	xor a
 	ld [hBGMapMode], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	xor a
 rept 2
 	ld [hli], a
@@ -146,7 +146,7 @@
 
 
 FlashyTransitionToBattle: ; 8c314
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, .jumptable
@@ -230,7 +230,7 @@
 	ld hl, .StartingPoints
 	add hl, de
 	ld a, [hl]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 8c38f (23:438f)
 
@@ -242,11 +242,11 @@
 StartTrainerBattle_Finish: ; 8c393 (23:4393)
 	call ClearSprites
 	ld a, $80
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 StartTrainerBattle_NextScene: ; 8c39c (23:439c)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -331,7 +331,7 @@
 
 .end
 	ld a, $20
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 .DoSineWave: ; 8c419 (23:4419)
@@ -416,7 +416,7 @@
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	ld a, $20
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 8c490 (23:4490)
 
@@ -540,7 +540,7 @@
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	ld a, $20
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 .BlackOutRandomTile: ; 8c5b8 (23:45b8)
@@ -836,7 +836,7 @@
 
 .done
 	ld a, $20
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 8c792 (23:4792)
 
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -124,7 +124,7 @@
 	jr z, .asm_10984f
 	ld a, $40
 .asm_10984f
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 
 	ld a, [rSVBK]
 	push af
@@ -225,7 +225,7 @@
 	ld a, [hJoypadDown]
 	and $1
 	ret z
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	ret
 ; 109908
@@ -234,7 +234,7 @@
 	ld a, [hJoypadDown]
 	and $2
 	ret z
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 6, a
 	ret z
 	ld hl, CreditsPos
@@ -255,7 +255,7 @@
 ; 109926
 
 Function109926: ; 109926
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	and $f
 	ld e, a
 	ld d, 0
@@ -287,12 +287,12 @@
 
 
 Function109951: ; 109951 (42:5951)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
 Function109956: ; 109956 (42:5956)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	ld a, [hl]
 	and $f0
 	ld [hl], a
@@ -348,7 +348,7 @@
 
 
 ParseCredits: ; 1099aa
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	bit 7, [hl]
 	jp nz, .done
 	
@@ -488,7 +488,7 @@
 	
 .end
 ; Stop execution.
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ld a, $20
 	ld [MusicFade], a
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -5,7 +5,7 @@
 	call Function1068a
 .loop
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .done
 	call Function10026
@@ -21,7 +21,7 @@
 ; 10026
 
 Function10026: ; 10026
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, Jumptable_10030
 	call Function1086b
 	jp [hl]
@@ -47,7 +47,7 @@
 	ld [hBGMapMode], a ; $ff00+$d4
 	call Function10955
 	ld a, [wcf64]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Function10a40
 	ret
 
@@ -486,7 +486,7 @@
 	and a
 	jr z, Function1032d
 	ld a, $a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 10364 (4:4364)
 
@@ -605,7 +605,7 @@
 	call PrintText
 	jr .asm_10427
 .asm_10453
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	ld a, [wcf64]
 	push af
@@ -618,7 +618,7 @@
 	pop af
 	ld [wcf64], a
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 .asm_10475
 	pop af
 	ld [Options], a
@@ -652,7 +652,7 @@
 	call Function1068a
 .asm_1049b
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_104ad
 	call Function104b9
@@ -668,7 +668,7 @@
 ; 104b9
 
 Function104b9: ; 104b9
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, Jumptable_104c3
 	call Function1086b
 	jp [hl]
@@ -694,7 +694,7 @@
 	ld [hBGMapMode], a ; $ff00+$d4
 	call Function10955
 	ld a, [wcf64]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Function10a40
 	ret
 
@@ -922,7 +922,7 @@
 	jr z, asm_10684
 asm_1067e: ; 1067e (4:467e)
 	ld a, $a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 asm_10684: ; 10684 (4:4684)
 	xor a
@@ -937,7 +937,7 @@
 
 Function1068a: ; 1068a
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, [wd0d6]
 	and $3
 	ld [wcf65], a
@@ -955,7 +955,7 @@
 Function106a5: ; 106a5
 	xor a
 	ld [hBGMapMode], a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -974,7 +974,7 @@
 ; 106c7
 
 Function106c7: ; 106c7
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, Jumptable_106d1
 	call Function1086b
 	jp [hl]
@@ -1083,10 +1083,10 @@
 	ret
 
 .asm_10795
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	dec a
 	and $3
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	push de
 	ld de, SFX_UNKNOWN_62
 	call PlaySFX
@@ -1095,10 +1095,10 @@
 	ret
 
 .asm_107a8
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	inc a
 	and $3
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	push de
 	ld de, SFX_UNKNOWN_62
 	call PlaySFX
@@ -1124,7 +1124,7 @@
 ; 107d7
 
 Function107d7: ; 107d7
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, Jumptable_107e1
 	call Function1086b
 	jp [hl]
@@ -1228,7 +1228,7 @@
 	ret
 
 Function10866: ; 10866 (4:4866)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -1245,7 +1245,7 @@
 ; 10874
 
 Function10874: ; 10874 (4:4874)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	xor a
 	ld [wcf66], a
@@ -1252,7 +1252,7 @@
 	ret
 
 Function1087e: ; 1087e (4:487e)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ld a, $1
 	ld [wcf66], a
@@ -1336,12 +1336,12 @@
 	ret
 .asm_108fa
 	ld a, $9
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	scf
 	ret
 .asm_10901
 	ld a, b
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	push de
 	ld de, SFX_UNKNOWN_62
@@ -1351,7 +1351,7 @@
 	ret
 .asm_10912
 	ld a, c
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	push de
 	ld de, SFX_UNKNOWN_62
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -28,7 +28,7 @@
 
 .main
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .exit
 	call Function4010b
@@ -75,7 +75,7 @@
 	call ByteFill
 
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -173,7 +173,7 @@
 ; 4010b
 
 Function4010b: ; 4010b
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, Jumptable_40115
 	call Function41432
 	jp [hl]
@@ -198,12 +198,12 @@
 
 
 Function40131: ; 40131 (10:4131)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
 Function40136: ; 40136 (10:4136)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -283,7 +283,7 @@
 	call Function40bd0
 	ret z
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, $0
 	ld [wcf64], a
 	ret
@@ -291,7 +291,7 @@
 .select
 	call Function41401
 	ld a, $7
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [hSCX], a ; $ff00+$cf
 	ld a, $a7
@@ -302,7 +302,7 @@
 .start
 	call Function41401
 	ld a, $5
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [hSCX], a ; $ff00+$cf
 	ld a, $a7
@@ -312,7 +312,7 @@
 
 .b
 	ld a, $d
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function40217: ; 40217 (10:4217)
@@ -372,7 +372,7 @@
 .asm_40288
 	call MaxVolume
 	ld a, [wcf64]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 40292 (10:4292)
 
@@ -408,7 +408,7 @@
 	call Function41423
 	ld a, [CurPartySpecies]
 	call PlayCry
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	dec [hl]
 	ret
 ; 402e8 (10:42e8)
@@ -478,11 +478,11 @@
 	push af
 	ld a, [wcf64]
 	push af
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	callba Function8442c
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	pop af
 	ld [wcf64], a
 	pop af
@@ -552,7 +552,7 @@
 .asm_403ea
 	call Function41401
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 403f3 (10:43f3)
 
@@ -604,13 +604,13 @@
 .asm_40431
 	call Function41401
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function4043a: ; 4043a (10:443a)
 	call Function41401
 	ld a, $b
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function40443: ; 40443 (10:4443)
@@ -656,7 +656,7 @@
 .asm_40495
 	call Function41401
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 4049e (10:449e)
 
@@ -710,7 +710,7 @@
 	ld [wc7d1], a
 	call Function41401
 	ld a, $9
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 40501
 
@@ -717,7 +717,7 @@
 Function40501: ; 40501
 	call Function41401
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 4050a
 
@@ -779,7 +779,7 @@
 	call Function40bd0
 	ret z
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, $9
 	ld [wcf64], a
 	ret
@@ -795,7 +795,7 @@
 	call ClearSprites
 	call Function40bdc
 	ld a, $5
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [hSCX], a ; $ff00+$cf
 	ld a, $a7
@@ -827,7 +827,7 @@
 .asm_405eb
 	call Function41401
 	ld a, $7
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call DelayFrame
 	call Function41a24
 	jr nz, .asm_40603
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -1558,23 +1558,25 @@
 	ld a, [wd0ee]
 	and $3f
 	cp $1
-	jr nz, .asm_97470 ; 0x97466 $8
+	jr nz, .notblackedout ; 0x97466 $8
 	ld b, BANK(UnknownScript_0x124c1)
 	ld hl, UnknownScript_0x124c1
 	jp ScriptJump
-.asm_97470
+
+.notblackedout
 	bit 0, d
 	jr z, .asm_9747c ; 0x97472 $8
-	callba Functionfcfec
-	jr .asm_9748e ; 0x9747a $12
+	callba MomTriesToBuySomething
+	jr .done ; 0x9747a $12
+
 .asm_9747c
 	ld a, [wd0ee]
 	bit 7, a
-	jr z, .asm_9748e ; 0x97481 $b
-	ld b, BANK(UnknownScript_0x90255)
-	ld de, UnknownScript_0x90255
+	jr z, .done ; 0x97481 $b
+	ld b, BANK(Script_SpecialBillCall)
+	ld de, Script_SpecialBillCall
 	callba Function97c4f
-.asm_9748e
+.done
 	jp Script_reloadmap
 ; 0x97491
 
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -9,7 +9,7 @@
 	ld [hBGMapMode], a
 	
 ; Reset timing variables
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	ld [hli], a ; cf63 ; Scene?
 	ld [hli], a ; cf64
 	ld [hli], a ; cf65 ; Timer lo
@@ -130,10 +130,10 @@
 	
 ; Initialize running Suicune?
 	ld d, $0
-	call Function10eed2
+	call LoadSuicuneFrame
 	
 ; Initialize background crystal
-	call Function10ef06
+	call InitializeBackground
 	
 ; Save WRAM bank
 	ld a, [rSVBK]
@@ -145,12 +145,12 @@
 ; Update palette colors
 	ld hl, TitleScreenPalettes
 	ld de, Unkn1Pals
-	ld bc, $0080
+	ld bc, 4 * 32
 	call CopyBytes
 	
 	ld hl, TitleScreenPalettes
 	ld de, BGPals
-	ld bc, $0080
+	ld bc, 4 * 32
 	call CopyBytes
 	
 ; Restore WRAM bank
@@ -220,7 +220,7 @@
 	ld [hBGMapMode], a
 	
 	xor a
-	ld [DefaultFlypoint], a
+	ld [UnknPals1 + 2], a
 	
 ; Play starting sound effect
 	call SFXChannelsOff
@@ -230,25 +230,28 @@
 	ret
 ; 10eea7
 
-Function10eea7: ; 10eea7
-	ld hl, DefaultFlypoint
+SuicuneFrameIterator: ; 10eea7
+	ld hl, UnknPals1 + 2
 	ld a, [hl]
 	ld c, a
 	inc [hl]
-	and $7
+
+; Only do this once every eight frames
+	and (1 << 3) - 1
 	ret nz
+
 	ld a, c
-	and $18
+	and 3 << 3
 	sla a
 	swap a
 	ld e, a
 	ld d, $0
-	ld hl, Unknown_10eece
+	ld hl, .Frames
 	add hl, de
 	ld d, [hl]
 	xor a
 	ld [hBGMapMode], a
-	call Function10eed2
+	call LoadSuicuneFrame
 	ld a, $1
 	ld [hBGMapMode], a
 	ld a, $3
@@ -256,33 +259,36 @@
 	ret
 ; 10eece
 
-Unknown_10eece: ; 10eece
-	db $80, $88, $00, $08
+.Frames: ; 10eece
+	db $80 ; VTiles4 tile $00
+	db $88 ; VTiles4 tile $08
+	db $00 ; VTiles5 tile $00
+	db $08 ; VTiles5 tile $08
 ; 10eed2
 
 
-Function10eed2: ; 10eed2
+LoadSuicuneFrame: ; 10eed2
 	hlcoord 6, 12
-	ld b, $6
-.asm_10eed7
-	ld c, $8
-.asm_10eed9
+	ld b, 6
+.row
+	ld c, 8
+.col
 	ld a, d
 	ld [hli], a
 	inc d
 	dec c
-	jr nz, .asm_10eed9
-	ld a, $c
+	jr nz, .col
+	ld a, SCREEN_WIDTH - 8
 	add l
 	ld l, a
-	ld a, $0
+	ld a, 0
 	adc h
 	ld h, a
-	ld a, $8
+	ld a, 8
 	add d
 	ld d, a
 	dec b
-	jr nz, .asm_10eed7
+	jr nz, .row
 	ret
 ; 10eeef
 
@@ -293,18 +299,18 @@
 ;   c: width
 ;   d: tile to start drawing from
 ;   e: number of tiles to advance for each row
-.asm_10eeef
+.row
 	push de
 	push bc
 	push hl
-.asm_10eef2
+.col
 	ld a, d
 	ld [hli], a
 	inc d
 	dec c
-	jr nz, .asm_10eef2
+	jr nz, .col
 	pop hl
-	ld bc, $0014
+	ld bc, SCREEN_WIDTH
 	add hl, bc
 	pop bc
 	pop de
@@ -312,31 +318,31 @@
 	add d
 	ld d, a
 	dec b
-	jr nz, .asm_10eeef
+	jr nz, .row
 	ret
 ; 10ef06
 
-Function10ef06: ; 10ef06
+InitializeBackground: ; 10ef06
 	ld hl, Sprites
-	ld d, $de
+	ld d, -$22
 	ld e, $0
-	ld c, $5
-.asm_10ef0f
+	ld c, 5
+.loop
 	push bc
-	call Function10ef1c
+	call .InitColumn
 	pop bc
 	ld a, $10
 	add d
 	ld d, a
 	dec c
-	jr nz, .asm_10ef0f
+	jr nz, .loop
 	ret
 ; 10ef1c
 
-Function10ef1c: ; 10ef1c
+.InitColumn: ; 10ef1c
 	ld c, $6
 	ld b, $40
-.asm_10ef20
+.loop
 	ld a, d
 	ld [hli], a
 	ld a, b
@@ -351,7 +357,7 @@
 	ld a, $80
 	ld [hli], a
 	dec c
-	jr nz, .asm_10ef20
+	jr nz, .loop
 	ret
 ; 10ef32
 
@@ -363,7 +369,7 @@
 ; y is really from the bottom of the sprite, which is two tiles high
 	ld hl, Sprites
 	ld a, [hl]
-	cp 6 + 16
+	cp 6 + $10
 	ret z
 	
 ; Move all 30 parts of the crystal down by 2
--- a/event/mom.asm
+++ b/event/mom.asm
@@ -4,9 +4,9 @@
 	ld a, $1
 	ld [hInMenu], a
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 .asm_16223
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_1622f
 	call Function16233
@@ -19,10 +19,10 @@
 ; 16233
 
 Function16233: ; 16233
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
-	ld hl, Jumptable_16242
+	ld hl, .jumptable
 rept 2
 	add hl, de
 endr
@@ -32,75 +32,75 @@
 	jp [hl]
 ; 16242
 
-Jumptable_16242: ; 16242
-	dw Function16254
-	dw Function1626a
-	dw Function16290
-	dw Function162a8
-	dw Function162e0
-	dw Function16373
-	dw Function16406
-	dw Function1642d
-	dw Function16433
+.jumptable: ; 16242
+	dw .CheckIfBankInitialized
+	dw .InitializeBank
+	dw .IsThisAboutYourMoney
+	dw .AccessBankOfMom
+	dw .StoreMoney
+	dw .TakeMoney
+	dw .StopOrStartSavingMoney
+	dw .AskDST
+	dw .JustDoWhatYouCan
 ; 16254
 
-Function16254: ; 16254
-	ld a, [wd854]
+.CheckIfBankInitialized: ; 16254
+	ld a, [wBankOfMomMode]
 	bit 7, a
-	jr nz, .asm_16264
+	jr nz, .savingmoneyalready
 	set 7, a
-	ld [wd854], a
+	ld [wBankOfMomMode], a
 	ld a, $1
-	jr .asm_16266
+	jr .done_0
 
-.asm_16264
+.savingmoneyalready
 	ld a, $2
 
-.asm_16266
-	ld [wcf63], a
+.done_0
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 1626a
 
-Function1626a: ; 1626a
+.InitializeBank: ; 1626a
 	ld hl, UnknownText_0x16649
 	call PrintText
 	call YesNoBox
-	jr c, .asm_1627f
+	jr c, .DontSaveMoney
 	ld hl, UnknownText_0x1664e
 	call PrintText
-	ld a, $81
-	jr .asm_16281
+	ld a, %10000001
+	jr .done_1
 
-.asm_1627f
-	ld a, $80
+.DontSaveMoney
+	ld a, %10000000
 
-.asm_16281
-	ld [wd854], a
+.done_1
+	ld [wBankOfMomMode], a
 	ld hl, UnknownText_0x16653
 	call PrintText
 	ld a, $8
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 16290
 
-Function16290: ; 16290
+.IsThisAboutYourMoney: ; 16290
 	ld hl, UnknownText_0x16658
 	call PrintText
 	call YesNoBox
-	jr c, .asm_1629f
+	jr c, .nope
 	ld a, $3
-	jr .asm_162a4
+	jr .done_2
 
-.asm_1629f
+.nope
 	call DSTChecks
 	ld a, $7
 
-.asm_162a4
-	ld [wcf63], a
+.done_2
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 162a8
 
-Function162a8: ; 162a8
+.AccessBankOfMom: ; 162a8
 	ld hl, UnknownText_0x1665d
 	call PrintText
 	call Function1d6e
@@ -108,36 +108,36 @@
 	call CopyMenuDataHeader
 	call InterpretMenu2
 	call WriteBackup
-	jr c, .asm_162ce
+	jr c, .cancel
 	ld a, [wcfa9]
 	cp $1
-	jr z, .asm_162d2
+	jr z, .withdraw
 	cp $2
-	jr z, .asm_162d6
+	jr z, .deposit
 	cp $3
-	jr z, .asm_162da
+	jr z, .stopsaving
 
-.asm_162ce
+.cancel
 	ld a, $7
-	jr .asm_162dc
+	jr .done_3
 
-.asm_162d2
+.withdraw
 	ld a, $5
-	jr .asm_162dc
+	jr .done_3
 
-.asm_162d6
+.deposit
 	ld a, $4
-	jr .asm_162dc
+	jr .done_3
 
-.asm_162da
+.stopsaving
 	ld a, $6
 
-.asm_162dc
-	ld [wcf63], a
+.done_3
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 162e0
 
-Function162e0: ; 162e0
+.StoreMoney: ; 162e0
 	ld hl, UnknownText_0x16662
 	call PrintText
 	xor a
@@ -153,31 +153,31 @@
 	call Function1656b
 	call Function16571
 	call WriteBackup
-	jr c, .asm_1636d
+	jr c, .CancelDeposit
 	ld hl, StringBuffer2
 	ld a, [hli]
 	or [hl]
 	inc hl
 	or [hl]
-	jr z, .asm_1636d
+	jr z, .CancelDeposit
 	ld de, Money
 	ld bc, StringBuffer2
 	callba CheckMoney
-	jr c, .asm_1635f
+	jr c, .DontHaveThatMuchToDeposit
 	ld hl, StringBuffer2
 	ld de, StringBuffer2 + 3
-	ld bc, $0003
+	ld bc, 3
 	call CopyBytes
 	ld bc, wd851
 	ld de, StringBuffer2
 	callba GiveMoney
-	jr c, .asm_16366
+	jr c, .CantDepositThatMuch
 	ld bc, StringBuffer2 + 3
 	ld de, Money
 	callba TakeMoney
 	ld hl, StringBuffer2
 	ld de, wd851
-	ld bc, $0003
+	ld bc, 3
 	call CopyBytes
 	ld de, SFX_TRANSACTION
 	call PlaySFX
@@ -185,27 +185,27 @@
 	ld hl, UnknownText_0x1668a
 	call PrintText
 	ld a, $8
-	jr .asm_1636f
+	jr .done_4
 
-.asm_1635f
+.DontHaveThatMuchToDeposit
 	ld hl, UnknownText_0x1667b
 	call PrintText
 	ret
 
-.asm_16366
+.CantDepositThatMuch
 	ld hl, UnknownText_0x16680
 	call PrintText
 	ret
 
-.asm_1636d
+.CancelDeposit
 	ld a, $7
 
-.asm_1636f
-	ld [wcf63], a
+.done_4
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 16373
 
-Function16373: ; 16373
+.TakeMoney: ; 16373
 	ld hl, UnknownText_0x16667
 	call PrintText
 	xor a
@@ -221,13 +221,13 @@
 	call Function1656b
 	call Function16571
 	call WriteBackup
-	jr c, .asm_16400
+	jr c, .CancelWithdraw
 	ld hl, StringBuffer2
 	ld a, [hli]
 	or [hl]
 	inc hl
 	or [hl]
-	jr z, .asm_16400
+	jr z, .CancelWithdraw
 	ld hl, StringBuffer2
 	ld de, StringBuffer2 + 3
 	ld bc, 3
@@ -235,11 +235,11 @@
 	ld de, wd851
 	ld bc, StringBuffer2
 	callba CheckMoney
-	jr c, .asm_163f2
+	jr c, .InsufficientFundsInBank
 	ld bc, Money
 	ld de, StringBuffer2
 	callba GiveMoney
-	jr c, .asm_163f9
+	jr c, .NotEnoughRoomInWallet
 	ld bc, StringBuffer2 + 3
 	ld de, wd851
 	callba TakeMoney
@@ -253,53 +253,53 @@
 	ld hl, UnknownText_0x1668f
 	call PrintText
 	ld a, $8
-	jr .asm_16402
+	jr .done_5
 
-.asm_163f2
+.InsufficientFundsInBank
 	ld hl, UnknownText_0x16671
 	call PrintText
 	ret
 
-.asm_163f9
+.NotEnoughRoomInWallet
 	ld hl, UnknownText_0x16676
 	call PrintText
 	ret
 
-.asm_16400
-	ld a, 7
+.CancelWithdraw
+	ld a, $7
 
-.asm_16402
-	ld [wcf63], a
+.done_5
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 16406
 
-Function16406: ; 16406
+.StopOrStartSavingMoney: ; 16406
 	ld hl, UnknownText_0x1666c
 	call PrintText
 	call YesNoBox
-	jr c, .asm_16422
+	jr c, .StopSavingMoney
 	ld a, $81
-	ld [wd854], a
+	ld [wBankOfMomMode], a
 	ld hl, UnknownText_0x16685
 	call PrintText
 	ld a, $8
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
-.asm_16422
+.StopSavingMoney
 	ld a, $80
-	ld [wd854], a
+	ld [wBankOfMomMode], a
 	ld a, $7
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 1642d
 
-Function1642d: ; 1642d
+.AskDST: ; 1642d
 	ld hl, UnknownText_0x16694
 	call PrintText
 
-Function16433: ; 16433
-	ld hl, wcf63
+.JustDoWhatYouCan: ; 16433
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; 16439
--- a/home/init.asm
+++ b/home/init.asm
@@ -136,15 +136,14 @@
 	; BG on
 	ld [rLCDC], a
 
-	ld a, $ff
+	ld a, -1
 	ld [$ffcb], a
 
 	callba Function9890
 
-	ld a, $9c
-	ld [$ffd7], a
-
-	xor a
+	ld a, VBGMap1 / $100
+	ld [hBGMapAddress + 1], a
+	xor a ; VBGMap1 % $100
 	ld [hBGMapAddress], a
 
 	callba StartClock
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -15,7 +15,7 @@
 	jr nz, .asm_721
 
 	ld a, [$ffcb]
-	inc a
+	inc a ; is it equal to -1?
 	jr z, .asm_726
 
 	ld a, [rSB]
--- a/main.asm
+++ b/main.asm
@@ -727,7 +727,7 @@
 
 
 OakSpeech: ; 0x5f99
-	callba Function90672
+	callba InitClock
 	call Function4dd
 	call ClearTileMap
 
@@ -1082,6 +1082,7 @@
 .loop
 	call Function627b
 	jr nc, .loop
+
 	call ClearSprites
 	call WhiteBGMap
 	pop af
@@ -1133,9 +1134,9 @@
 ; 627b
 
 Function627b: ; 627b
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
-	jr nz, .true
+	jr nz, .done_title
 	call TitleScreenScene
 	callba Function10eea7
 	call DelayFrame
@@ -1142,7 +1143,7 @@
 	and a
 	ret
 
-.true
+.done_title
 	scf
 	ret
 ; 6292
@@ -1180,7 +1181,7 @@
 ; 62b7
 
 Function62b7: ; 62b7
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; 62bc
@@ -1221,7 +1222,7 @@
 
 .done
 ; Next scene
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	xor a
 	ld [hLCDStatCustom], a
@@ -1239,7 +1240,7 @@
 TitleScreenTimer: ; 62f6
 
 ; Next scene
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 
 ; Start a timer
@@ -1323,13 +1324,13 @@
 	ld [wcf64], a
 
 ; Return to the intro sequence.
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
 .end
 ; Next scene
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 
 ; Fade out the title screen music
@@ -1348,7 +1349,7 @@
 	ld [wcf64], a
 
 ; Return to the intro sequence.
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; 6375
@@ -1368,7 +1369,7 @@
 	ld [wcf64], a
 
 ; Back to the intro.
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; 6389
@@ -1464,7 +1465,7 @@
 	call ResetTextRelatedRAM
 	call WhiteBGMap
 	call ClearTileMap
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	xor a
 	ld [hBGMapAddress], a
@@ -10759,7 +10760,7 @@
 
 Function11915: ; 11915
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_11930
 	call Function11968
@@ -10805,7 +10806,7 @@
 ; 11968
 
 Function11968: ; 11968
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, $0
 	ld hl, Jumptable_11977
@@ -10842,7 +10843,7 @@
 	ld hl, $e
 	add hl, bc
 	ld [hl], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -10896,7 +10897,7 @@
 
 .asm_119eb
 	call Function11bf7
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -11326,7 +11327,7 @@
 	ld [wc3bf], a
 	ld [hSCX], a
 	ld [wc3c0], a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [hBGMapMode], a
 	ld [wc6d2], a
@@ -11499,7 +11500,7 @@
 
 Function11fc0: ; 11fc0 (4:5fc0)
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_11fdb
 	call Function12008
@@ -11534,7 +11535,7 @@
 	ret
 
 Function12008: ; 12008 (4:6008)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_12017
@@ -11565,7 +11566,7 @@
 	ld hl, $e
 	add hl, bc
 	ld [hl], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -11635,7 +11636,7 @@
 
 .asm_120a1
 	call Function11bf7
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -20494,7 +20495,7 @@
 	call PlaceString
 
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Function16cc8
 	call WaitBGMap
 
@@ -20524,12 +20525,12 @@
 	jr .asm_16c6b
 
 .asm_16c82
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	callba Function84560
 	call RestartMapMusic
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	jr .asm_16c6b
 
 .asm_16c95
@@ -20551,7 +20552,7 @@
 	ret
 
 .asm_16cad
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	ld a, [hl]
 	and a
 	jr nz, .asm_16cb6
@@ -20562,7 +20563,7 @@
 	jr .asm_16cc4
 
 .asm_16cb9
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	ld a, [hl]
 	cp $1a
 	jr c, .asm_16cc3
@@ -20577,7 +20578,7 @@
 ; 16cc8
 
 Function16cc8: ; 16cc8
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp 26
 	jr z, Function16d20
 	inc a
@@ -21430,7 +21431,7 @@
 
 Function1728f: ; 1728f (5:728f)
 	ld a, [wd265]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, [CurSpecies]
 	push af
 	ld de, MUSIC_NONE
@@ -21444,7 +21445,7 @@
 	call FarCopyBytes
 	callba Function8cf53
 	ld de, VTiles2 tile $00
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	call Function1723c
 	ld de, VTiles2 tile $31
 	ld a, EGG
@@ -21502,11 +21503,11 @@
 	hlcoord 6, 3
 	ld b, $98
 	ld c, $0
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	call Function17254
 	call Function17418
 	call WaitSFX
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld [CurPartySpecies], a
 	hlcoord 6, 3
 	ld d, $0
@@ -24789,7 +24790,7 @@
 .asm_25117
 	call UpdateTime
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_25132
 	ld a, [hJoyLast]
@@ -24831,7 +24832,7 @@
 	call GetSGBLayout
 	call Function32f9
 	call WaitBGMap
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	xor a
 rept 3
 	ld [hli], a
@@ -24840,7 +24841,7 @@
 	ret
 
 Function2518e: ; 2518e (9:518e)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, $0
 	ld hl, Jumptable_2519d
@@ -24863,12 +24864,12 @@
 
 
 Function251ab: ; 251ab (9:51ab)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
 Function251b0: ; 251b0 (9:51b0)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -24895,7 +24896,7 @@
 	ret
 .asm_251e3
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 251e9 (9:51e9)
 
@@ -24904,7 +24905,7 @@
 	and a
 	ret z
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 251f4
 
@@ -24939,7 +24940,7 @@
 	ret
 .asm_25235
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 2523b (9:523b)
 
@@ -24948,13 +24949,13 @@
 	and a
 	ret z
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 25246
 
 Function25246: ; 25246
 	ld a, $6
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function2524c: ; 2524c (9:524c)
@@ -24988,11 +24989,11 @@
 	ret
 .asm_2528d
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 .asm_25293
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function25299: ; 25299 (9:5299)
@@ -29385,7 +29386,7 @@
 
 Function28fdb: ; 28fdb
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call WhiteBGMap
 	call ClearSprites
 	call ClearTileMap
@@ -29451,7 +29452,7 @@
 ; 29082
 
 Function29082: ; 29082
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_2909b
 	call Function290a0
@@ -29469,7 +29470,7 @@
 ; 290a0
 
 Function290a0: ; 290a0
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, JumpTable290af
@@ -29534,7 +29535,7 @@
 ; 2910f
 
 Function2910f: ; 2910f
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; 29114
@@ -29545,7 +29546,7 @@
 	inc hl
 	ld d, [hl]
 	ld a, [de]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	inc de
 	ld [hl], d
 	dec hl
@@ -29554,7 +29555,7 @@
 ; 29123
 
 Function29123: ; 29123
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; 29129
@@ -29839,7 +29840,7 @@
 	push af
 	call WhiteBGMap
 	call WaitTop
-	ld a, $9c
+	ld a, VBGMap1 / $100
 	ld [hBGMapAddress + 1], a
 	call ClearTileMap
 	hlcoord 0, 0
@@ -29869,7 +29870,7 @@
 	call ByteFill
 	call WaitBGMap
 	call WaitTop
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	call ClearTileMap
 	ret
@@ -29980,7 +29981,7 @@
 
 Function293ea: ; 293ea
 	call WaitTop
-	ld a, $9c
+	ld a, VBGMap1 / $100
 	ld [hBGMapAddress + 1], a
 	call WaitBGMap
 	ld a, $7
@@ -29989,7 +29990,7 @@
 	ld [hWY], a
 	call DelayFrame
 	call WaitTop
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	call ClearTileMap
 	call Function2910f
@@ -30005,7 +30006,7 @@
 	ret
 
 .asm_29417
-	ld a, $9c
+	ld a, VBGMap1 / $100
 	ld [hBGMapAddress + 1], a
 	call WaitBGMap
 	ld a, $7
@@ -30012,7 +30013,7 @@
 	ld [hWX], a
 	ld a, $90
 	ld [hWY], a
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	call Function29114
 	ret
@@ -30199,7 +30200,7 @@
 Function29573: ; 29573
 	call WaitTop
 	call Function297cf
-	ld a, $9c
+	ld a, VBGMap1 / $100
 	ld [hBGMapAddress + 1], a
 	hlcoord 3, 0
 	ld b, $6
@@ -30221,7 +30222,7 @@
 Function295a1: ; 295a1
 	call WaitTop
 	call Function297cf
-	ld a, $9c
+	ld a, VBGMap1 / $100
 	ld [hBGMapAddress + 1], a
 	hlcoord 3, 0
 	ld b, $6
@@ -30243,7 +30244,7 @@
 Function295d8: ; 295d8
 	call WaitBGMap
 	call WaitTop
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	ret
 ; 295e3
@@ -30898,7 +30899,7 @@
 Special_AbortLink: ; 29c92
 	ld c, $3
 	call DelayFrames
-	ld a, $ff
+	ld a, -1
 	ld [$ffcb], a
 	xor a
 	ld [rSB], a
@@ -30924,7 +30925,7 @@
 	ld [rSC], a
 	ld c, $3
 	call DelayFrames
-	ld a, $ff
+	ld a, -1
 	ld [$ffcb], a
 	ld a, [rIF]
 	push af
@@ -30999,7 +31000,7 @@
 	jr z, .asm_29d79
 	cp $1
 	jr z, .asm_29d79
-	ld a, $ff
+	ld a, -1
 	ld [$ffcb], a
 	ld a, $2
 	ld [rSB], a
@@ -31275,7 +31276,7 @@
 Function29f04: ; 29f04
 	ld c, $3
 	call DelayFrames
-	ld a, $ff
+	ld a, -1
 	ld [$ffcb], a
 	ld a, $2
 	ld [rSB], a
@@ -39477,7 +39478,7 @@
 	ld [wcf64], a
 	ld d, $0
 .loop
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .done
 	push bc
@@ -39532,7 +39533,7 @@
 	lb bc, BANK(SpecialCelebiGFX), $10
 	call Request2bpp
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 49935
 
@@ -39545,7 +39546,7 @@
 	ret
 
 .asm_4993e
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; 49944
@@ -40080,7 +40081,7 @@
 	decoord 4, 16
 	ld a, [hHours]
 	ld c, a
-	callba Function90b3e
+	callba PrintHour
 	ld [hl], ":"
 	inc hl
 	ld de, hMinutes
@@ -43948,7 +43949,7 @@
 	ld [$ffde], a ; disable overworld tile animations
 	ld a, [wc2c6] ; whether sprite is to be mirrorred
 	push af
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld b, a
 	ld a, [wcf64]
 	ld c, a
@@ -43967,7 +43968,7 @@
 
 	; restore old values
 	ld a, b
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, c
 	ld [wcf64], a
 	pop af
@@ -43979,7 +43980,7 @@
 
 StatsScreenMain: ; 0x4dcd2
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld a, [wcf64]
 	and $fc
@@ -43986,12 +43987,12 @@
 	or $1
 	ld [wcf64], a
 .loop ; 4dce3
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	and $7f
 	ld hl, StatsScreenPointerTable
 	rst JumpTable
 	call Function4dd3a ; check for keys?
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr z, .loop
 	ret
@@ -43999,7 +44000,7 @@
 
 StatsScreenBattle: ; 4dcf7
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld a, [wcf64]
 	and $fc
@@ -44007,7 +44008,7 @@
 	ld [wcf64], a
 .asm_4dd08
 	callba Function100dd2
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	and $7f
 	ld hl, StatsScreenPointerTable
 	rst JumpTable
@@ -44014,7 +44015,7 @@
 	call Function4dd3a
 	callba Function100dfd
 	jr c, .asm_4dd29
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr z, .asm_4dd08
 
@@ -44054,14 +44055,14 @@
 	ret
 
 Function4dd62: ; 4dd62 (13:5d62)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	and $80
 	or h
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function4dd6c: ; 4dd6c (13:5d6c)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -44088,9 +44089,9 @@
 
 EggStatsInit: ; 4dda1
 	call EggStatsScreen
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	inc a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 0x4ddac
 
@@ -44115,9 +44116,9 @@
 	call Function4dfb6
 	ld hl, wcf64
 	res 4, [hl]
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	inc a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function4ddd6: ; 4ddd6 (13:5dd6)
@@ -44133,9 +44134,9 @@
 Function4dde6: ; 4dde6 (13:5de6)
 	call IsSFXPlaying
 	ret nc
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	inc a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function4ddf2: ; 4ddf2 (13:5df2)
@@ -45436,7 +45437,7 @@
 	ret nz
 	ld de, SFX_EVOLVED
 	call PlaySFX
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	ld a, [hl]
 	push af
 	ld [hl], $0
@@ -45453,12 +45454,12 @@
 	dec c
 	jr nz, .asm_4e7c4
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 4e7cf
 
 Function4e7cf: ; 4e7cf
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	ld a, [hl]
 	cp $20
 	ret nc
@@ -45483,7 +45484,7 @@
 	call Function3b2a
 	ld hl, $000b
 	add hl, bc
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	and $e
 	sla a
 	pop de
@@ -50212,11 +50213,11 @@
 	ld de, MUSIC_NONE
 	call PlayMusic
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf66], a
 	ld [wd003], a
 .asm_818de
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_818f0
 	call Function81a74
@@ -50474,7 +50475,7 @@
 
 Function81a74: ; 81a74
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $4
 	jr nc, .asm_81a8b
 	ld hl, hJoyLast
@@ -50486,7 +50487,7 @@
 	jr nz, .asm_81aab
 
 .asm_81a8b
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_81acf
@@ -50521,7 +50522,7 @@
 .asm_81aba
 	ld [wcf66], a
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 81ac3
 
@@ -50630,7 +50631,7 @@
 
 .asm_81ba9
 	ld a, $1
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 81baf
 
@@ -50701,7 +50702,7 @@
 .asm_81c2a
 	call WaitBGMap
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 81c33
 
@@ -50726,7 +50727,7 @@
 	ld a, $1
 	ld [hCGBPalUpdate], a
 	ld a, $3
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	pop af
 	ld [rSVBK], a
 	ret
@@ -50761,7 +50762,7 @@
 	ld de, wc608 + 2
 	call Function81ca7
 	ld a, $3
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 81ca7
 
@@ -50809,7 +50810,7 @@
 
 .asm_81cdf
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 .asm_81ce5
@@ -50825,7 +50826,7 @@
 	add hl, bc
 	call Function818fd
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 81d02
 
@@ -50917,7 +50918,7 @@
 Function81d7b: ; 81d7b
 	call Function81e67
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function81d84: ; 81d84
@@ -50943,7 +50944,7 @@
 	ld [wd004], a
 	call Function81df4
 	ld a, $5
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 81daf
 
@@ -50957,12 +50958,12 @@
 
 .asm_81dbb
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 81dc1
 
 Function81dc1: ; 81dc1
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; 81dc7
@@ -51259,7 +51260,7 @@
 	ld [hl], a
 	hlcoord 1, 15
 	ld [hl], a
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $3
 	jr nz, .asm_81fc9
 	ld a, [wcf64]
@@ -51332,7 +51333,7 @@
 TilesetColorTest:
 	ret
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -51350,7 +51351,7 @@
 	ld hl, VTiles1
 	lb bc, BANK(DebugColorTestGFX), 1
 	call Request2bpp
-	ld a, $9c
+	ld a, VBGMap1 / $100
 	ld [hBGMapAddress + 1], a
 	hlcoord 0, 0
 	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -51375,7 +51376,7 @@
 	call Function821f4
 	call Function8220f
 	call Function3200
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, $40
 	ld [hWY], a
 	ret
@@ -51723,12 +51724,12 @@
 	ld a, [GBPrinter]
 	ld [wcbfb], a
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 84022
 
 Function84022: ; 84022
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_84031
@@ -51766,12 +51767,12 @@
 
 
 Function84059: ; 84059 (21:4059)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
 Function8405e: ; 8405e (21:405e)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	dec [hl]
 	ret
 
@@ -51778,7 +51779,7 @@
 Function84063: ; 84063 (21:4063)
 	xor a
 	ld [wca89], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -51788,7 +51789,7 @@
 
 Function84071: ; 84071 (21:4071)
 	ld a, $1
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function84077: ; 84077 (21:4077)
@@ -51828,7 +51829,7 @@
 
 Function840c5: ; 840c5 (21:40c5)
 	ld a, $6
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld hl, Unknown_842c9
 	call Function841e2
 	xor a
@@ -51920,7 +51921,7 @@
 	ld [wca88], a
 	ld [wca89], a
 	ld a, $e
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function84180: ; 84180 (21:4180)
@@ -51940,7 +51941,7 @@
 	ret
 .asm_8419b
 	ld a, $12
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function841a1: ; 841a1 (21:41a1)
@@ -51964,7 +51965,7 @@
 	and $f0
 	ret nz
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function841c3: ; 841c3 (21:41c3)
@@ -52322,7 +52323,7 @@
 	call JoyTextDelay
 	call Function846f6
 	jr c, .asm_8440f
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_8440d
 	call Function84022
@@ -52540,11 +52541,11 @@
 	call JoyTextDelay
 	call Function846f6
 	jr c, .asm_845c0
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_845c0
 	call Function84022
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $2
 	jr nc, .asm_845b5
 	ld a, $3
@@ -53290,7 +53291,7 @@
 
 Function864c3: ; 864c3
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Function8671c
 	jr c, .done
 	ld de, SCREEN_WIDTH
@@ -53515,13 +53516,13 @@
 Function86650: ; 86650
 	call Functione58
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 .asm_86657
 	call Function8671c
 	ret c
 	call Function86665
 	ret c
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	jr .asm_86657
 ; 86665
@@ -53630,7 +53631,7 @@
 
 
 Function8671c: ; 8671c
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp NUM_HOF_TEAMS
 	jr nc, .asm_86746
 	ld hl, sHallOfFame
@@ -54276,13 +54277,13 @@
 Function8c940: ; 8c940
 	ld a, e
 	and $1
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Function8c96d
 	call WaitSFX
 	ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
 	call PlaySFX
 .asm_8c952
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_8c96c
 	ld a, $90
@@ -54318,7 +54319,7 @@
 ; 8ca0c
 
 Function8ca0c: ; 8ca0c
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_8ca1b
@@ -54348,7 +54349,7 @@
 	ld [hl], $84
 	ld a, $20
 	ld [wcf64], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 rept 2
 	inc [hl]
 endr
@@ -54366,7 +54367,7 @@
 	call Function8ca73
 	ld a, $20
 	ld [wcf64], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -54373,7 +54374,7 @@
 Function8ca5c: ; 8ca5c (23:4a5c)
 	ld a, $1
 	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 
 Function8ca64: ; 8ca64 (23:4a64)
@@ -54384,7 +54385,7 @@
 	dec [hl]
 	ret
 .asm_8ca6d
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -54491,7 +54492,7 @@
 	ld a, $80
 	ld [wcf64], a
 .asm_8cb14
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_8cb2e
 	ld a, $0
@@ -54528,7 +54529,7 @@
 	ld a, $40
 	ld [wcf64], a
 .asm_8cb60
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_8cb7a
 	ld a, $0
@@ -54577,7 +54578,7 @@
 	ld e, $84
 	callba Function8e9bc
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function8cbc8: ; 8cbc8 (23:4bc8)
@@ -54595,7 +54596,7 @@
 	call PlaySFX
 	ret
 .asm_8cbe0
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -54658,7 +54659,7 @@
 	push af
 	ld [hl], $1
 .loop
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	and a
 	jr z, .initialize
 	bit 7, a
@@ -54765,7 +54766,7 @@
 	ld c, $4
 	call Request2bpp
 	call Function8cda6
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	xor a
 	ld [hli], a
 	ld a, [wd192]
@@ -54911,7 +54912,7 @@
 ; 8cdf7
 
 Function8cdf7: ; 8cdf7
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_8ce06
@@ -54935,7 +54936,7 @@
 ; 8ce14
 
 Function8ce14: ; 8ce14
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; 8ce19
@@ -55039,7 +55040,7 @@
 
 Function8cea2: ; 8cea2
 	ld a, $80
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld de, SFX_TRAIN_ARRIVED
 	call PlaySFX
 	ret
@@ -58661,9 +58662,9 @@
 	jr nc, .no_call
 
 	ld e, a
-	call Function9020d
-	ld a, BANK(UnknownScript_0x90241)
-	ld hl, UnknownScript_0x90241
+	call LoadCallerScript
+	ld a, BANK(Script_SpecialPhoneCall)
+	ld hl, Script_SpecialPhoneCall
 	call CallScript
 	scf
 	ret
@@ -58761,7 +58762,8 @@
 Function90136:: ; 90136 (24:4136)
 	ld a, [wSpecialPhoneCallID]
 	and a
-	jr z, .asm_90171
+	jr z, .NoPhoneCall
+
 	dec a
 	ld c, a
 	ld b, 0
@@ -58772,8 +58774,9 @@
 	ld h, [hl]
 	ld l, a
 	call _hl_
-	jr nc, .asm_90171
-	call Function90178
+	jr nc, .NoPhoneCall
+
+	call .DoSpecialPhoneCall
 rept 2
 	inc hl
 endr
@@ -58780,7 +58783,7 @@
 	ld a, [hli]
 	ld e, a
 	push hl
-	call Function9020d
+	call LoadCallerScript
 	pop hl
 	ld de, wd048
 	ld a, [hli]
@@ -58791,22 +58794,22 @@
 	inc de
 	ld a, [hli]
 	ld [de], a
-	ld a, BANK(UnknownScript_0x90173)
-	ld hl, UnknownScript_0x90173
+	ld a, BANK(.script)
+	ld hl, .script
 	call CallScript
 	scf
 	ret
-.asm_90171
+.NoPhoneCall
 	xor a
 	ret
 ; 90173 (24:4173)
 
-UnknownScript_0x90173: ; 0x90173
+.script: ; 0x90173
 	pause 30
-	jump UnknownScript_0x90241
+	jump Script_SpecialPhoneCall
 ; 0x90178
 
-Function90178: ; 90178 (24:4178)
+.DoSpecialPhoneCall: ; 90178 (24:4178)
 	ld a, [wSpecialPhoneCallID]
 	dec a
 	ld c, a
@@ -58816,19 +58819,20 @@
 	call AddNTimes
 	ret
 
-Function90188: ; 90188
+SpecialCallOnlyWhenOutside: ; 90188
 	ld a, [wPermission]
-	cp $1
-	jr z, .asm_90195
-	cp $2
-	jr z, .asm_90195
+	cp TOWN
+	jr z, .outside
+	cp ROUTE
+	jr z, .outside
 	xor a
 	ret
-.asm_90195
+
+.outside
 	scf
 	ret
 
-Function90197: ; 90197
+SpecialCallWhereverYouAre: ; 90197
 	scf
 	ret
 
@@ -58905,23 +58909,24 @@
 	return
 ; 0x9020d
 
-Function9020d: ; 9020d (24:420d)
+LoadCallerScript: ; 9020d (24:420d)
 	nop
 	nop
 	ld a, e
 	ld [wCurrentCaller], a
 	and a
-	jr nz, .asm_9021d
-	ld a, BANK(Unknown_90233)
-	ld hl, Unknown_90233
-	jr .asm_90229
-.asm_9021d
+	jr nz, .actualcaller
+	ld a, BANK(WrongNumber)
+	ld hl, WrongNumber
+	jr .proceed
+
+.actualcaller
 	ld hl, PhoneContacts
 	ld bc, 12
 	ld a, e
 	call AddNTimes
 	ld a, BANK(PhoneContacts)
-.asm_90229
+.proceed
 	ld de, wd03f
 	ld bc, 12
 	call FarCopyBytes
@@ -58928,18 +58933,19 @@
 	ret
 ; 90233 (24:4233)
 
-Unknown_90233: ; 90233
-	db 0, 0
-	dba UnknownScript_0x90238
-UnknownScript_0x90238:
-	writetext UnknownText_0x9023c
+WrongNumber: ; 90233
+	db PHONE, PHONE_NONE
+	dba .script
+.script:
+	writetext .text
 	end
-UnknownText_0x9023c:
+.text:
+	; Huh? Sorry, wrong number!
 	text_jump UnknownText_0x1c5565
 	db "@"
 ; 90241
 
-UnknownScript_0x90241: ; 0x90241
+Script_SpecialPhoneCall: ; 0x90241
 	refreshscreen $0
 	callasm Function9026f
 	ptcall wd048
@@ -58950,25 +58956,25 @@
 	end
 ; 0x90255
 
-UnknownScript_0x90255:: ; 0x90255
+Script_SpecialBillCall:: ; 0x90255
 	callasm Function9025c
-	jump UnknownScript_0x90241
+	jump Script_SpecialPhoneCall
 ; 0x9025c
 
 Function9025c: ; 9025c
-	ld e, $3
-	jp Function9020d
+	ld e, PHONE_BILL
+	jp LoadCallerScript
 ; 90261
 
 UnknownScript_0x90261: ; 0x90261
 	callasm Function9026a
 	pause 30
-	jump UnknownScript_0x90241
+	jump Script_SpecialPhoneCall
 ; 0x9026a
 
 Function9026a: ; 9026a
-	ld e, $4
-	jp Function9020d
+	ld e, PHONE_ELM
+	jp LoadCallerScript
 ; 9026f
 
 Function9026f: ; 9026f
@@ -59276,77 +59282,77 @@
 	dba \7 ; script 2
 ENDM
 
-	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
-	phone 0, 1, KRISS_HOUSE_1F,                 7, MomPhoneScript, 0, UnusedPhoneScript
-	phone 0, 2, OAKS_LAB,                       0, UnusedPhoneScript, 0, UnusedPhoneScript
-	phone 0, 3, N_A,                            7, BillPhoneScript1, 0, BillPhoneScript2
-	phone 0, 4, ELMS_LAB,                       7, ElmPhoneScript1, 0, ElmPhoneScript2
-	phone SCHOOLBOY, JACK1, NATIONAL_PARK,      7, JackPhoneScript1, 7, JackPhoneScript2
-	phone POKEFANF, BEVERLY1, NATIONAL_PARK,    7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2
-	phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, 7, HueyPhoneScript1, 7, HueyPhoneScript2
-	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
-	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
-	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
-	phone COOLTRAINERM, GAVEN3, ROUTE_26,       7, GavenPhoneScript1, 7, GavenPhoneScript2
-	phone COOLTRAINERF, BETH1, ROUTE_26,        7, BethPhoneScript1, 7, BethPhoneScript2
-	phone BIRD_KEEPER, JOSE2, ROUTE_27,         7, JosePhoneScript1, 7, JosePhoneScript2
-	phone COOLTRAINERF, REENA1, ROUTE_27,       7, ReenaPhoneScript1, 7, ReenaPhoneScript2
-	phone YOUNGSTER, JOEY1, ROUTE_30,           7, JoeyPhoneScript1, 7, JoeyPhoneScript2
-	phone BUG_CATCHER, WADE1, ROUTE_31,         7, WadePhoneScript1, 7, WadePhoneScript2
-	phone FISHER, RALPH1, ROUTE_32,             7, RalphPhoneScript1, 7, RalphPhoneScript2
-	phone PICNICKER, LIZ1, ROUTE_32,            7, LizPhoneScript1, 7, LizPhoneScript2
-	phone HIKER, ANTHONY2, ROUTE_33,            7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2
-	phone CAMPER, TODD1, ROUTE_34,              7, ToddPhoneScript1, 7, ToddPhoneScript2
-	phone PICNICKER, GINA1, ROUTE_34,           7, GinaPhoneScript1, 7, GinaPhoneScript2
-	phone JUGGLER, IRWIN1, ROUTE_35,            7, IrwinPhoneScript1, 7, IrwinPhoneScript2
-	phone BUG_CATCHER, ARNIE1, ROUTE_35,        7, ArniePhoneScript1, 7, ArniePhoneScript2
-	phone SCHOOLBOY, ALAN1, ROUTE_36,           7, AlanPhoneScript1, 7, AlanPhoneScript2
-	phone 0, 0, N_A,                            0, UnusedPhoneScript, 0, UnusedPhoneScript
-	phone LASS, DANA1, ROUTE_38,                7, DanaPhoneScript1, 7, DanaPhoneScript2
-	phone SCHOOLBOY, CHAD1, ROUTE_38,           7, ChadPhoneScript1, 7, ChadPhoneScript2
-	phone POKEFANM, DEREK1, ROUTE_39,           7, DerekPhoneScript1, 7, DerekPhoneScript2
-	phone FISHER, TULLY1, ROUTE_42,             7, TullyPhoneScript1, 7, TullyPhoneScript2
-	phone POKEMANIAC, BRENT1, ROUTE_43,         7, BrentPhoneScript1, 7, BrentPhoneScript2
-	phone PICNICKER, TIFFANY3, ROUTE_43,        7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2
-	phone BIRD_KEEPER, VANCE1, ROUTE_44,        7, VancePhoneScript1, 7, VancePhoneScript2
-	phone FISHER, WILTON1, ROUTE_44,            7, WiltonPhoneScript1, 7, WiltonPhoneScript2
-	phone BLACKBELT_T, KENJI3, ROUTE_45,        7, KenjiPhoneScript1, 7, KenjiPhoneScript2
-	phone HIKER, PARRY1, ROUTE_45,              7, ParryPhoneScript1, 7, ParryPhoneScript2
-	phone PICNICKER, ERIN1, ROUTE_46,           7, ErinPhoneScript1, 7, ErinPhoneScript2
-	phone 0, 5, GOLDENROD_DEPT_STORE_ROOF,      7, BuenaPhoneScript1, 7, BuenaPhoneScript2
+	phone PHONE, PHONE_NONE, N_A,                        0, UnusedPhoneScript,   0, UnusedPhoneScript
+	phone PHONE, PHONE_MOM, KRISS_HOUSE_1F,              7, MomPhoneScript,      0, UnusedPhoneScript
+	phone PHONE, PHONE_OAK, OAKS_LAB,                    0, UnusedPhoneScript,   0, UnusedPhoneScript
+	phone PHONE, PHONE_BILL, N_A,                        7, BillPhoneScript1,    0, BillPhoneScript2
+	phone PHONE, PHONE_ELM, ELMS_LAB,                    7, ElmPhoneScript1,     0, ElmPhoneScript2
+	phone SCHOOLBOY, JACK1, NATIONAL_PARK,               7, JackPhoneScript1,    7, JackPhoneScript2
+	phone POKEFANF, BEVERLY1, NATIONAL_PARK,             7, BeverlyPhoneScript1, 7, BeverlyPhoneScript2
+	phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F,          7, HueyPhoneScript1,    7, HueyPhoneScript2
+	phone PHONE, PHONE_NONE, N_A,                        0, UnusedPhoneScript,   0, UnusedPhoneScript
+	phone PHONE, PHONE_NONE, N_A,                        0, UnusedPhoneScript,   0, UnusedPhoneScript
+	phone PHONE, PHONE_NONE, N_A,                        0, UnusedPhoneScript,   0, UnusedPhoneScript
+	phone COOLTRAINERM, GAVEN3, ROUTE_26,                7, GavenPhoneScript1,   7, GavenPhoneScript2
+	phone COOLTRAINERF, BETH1, ROUTE_26,                 7, BethPhoneScript1,    7, BethPhoneScript2
+	phone BIRD_KEEPER, JOSE2, ROUTE_27,                  7, JosePhoneScript1,    7, JosePhoneScript2
+	phone COOLTRAINERF, REENA1, ROUTE_27,                7, ReenaPhoneScript1,   7, ReenaPhoneScript2
+	phone YOUNGSTER, JOEY1, ROUTE_30,                    7, JoeyPhoneScript1,    7, JoeyPhoneScript2
+	phone BUG_CATCHER, WADE1, ROUTE_31,                  7, WadePhoneScript1,    7, WadePhoneScript2
+	phone FISHER, RALPH1, ROUTE_32,                      7, RalphPhoneScript1,   7, RalphPhoneScript2
+	phone PICNICKER, LIZ1, ROUTE_32,                     7, LizPhoneScript1,     7, LizPhoneScript2
+	phone HIKER, ANTHONY2, ROUTE_33,                     7, AnthonyPhoneScript1, 7, AnthonyPhoneScript2
+	phone CAMPER, TODD1, ROUTE_34,                       7, ToddPhoneScript1,    7, ToddPhoneScript2
+	phone PICNICKER, GINA1, ROUTE_34,                    7, GinaPhoneScript1,    7, GinaPhoneScript2
+	phone JUGGLER, IRWIN1, ROUTE_35,                     7, IrwinPhoneScript1,   7, IrwinPhoneScript2
+	phone BUG_CATCHER, ARNIE1, ROUTE_35,                 7, ArniePhoneScript1,   7, ArniePhoneScript2
+	phone SCHOOLBOY, ALAN1, ROUTE_36,                    7, AlanPhoneScript1,    7, AlanPhoneScript2
+	phone PHONE, PHONE_NONE, N_A,                        0, UnusedPhoneScript,   0, UnusedPhoneScript
+	phone LASS, DANA1, ROUTE_38,                         7, DanaPhoneScript1,    7, DanaPhoneScript2
+	phone SCHOOLBOY, CHAD1, ROUTE_38,                    7, ChadPhoneScript1,    7, ChadPhoneScript2
+	phone POKEFANM, DEREK1, ROUTE_39,                    7, DerekPhoneScript1,   7, DerekPhoneScript2
+	phone FISHER, TULLY1, ROUTE_42,                      7, TullyPhoneScript1,   7, TullyPhoneScript2
+	phone POKEMANIAC, BRENT1, ROUTE_43,                  7, BrentPhoneScript1,   7, BrentPhoneScript2
+	phone PICNICKER, TIFFANY3, ROUTE_43,                 7, TiffanyPhoneScript1, 7, TiffanyPhoneScript2
+	phone BIRD_KEEPER, VANCE1, ROUTE_44,                 7, VancePhoneScript1,   7, VancePhoneScript2
+	phone FISHER, WILTON1, ROUTE_44,                     7, WiltonPhoneScript1,  7, WiltonPhoneScript2
+	phone BLACKBELT_T, KENJI3, ROUTE_45,                 7, KenjiPhoneScript1,   7, KenjiPhoneScript2
+	phone HIKER, PARRY1, ROUTE_45,                       7, ParryPhoneScript1,   7, ParryPhoneScript2
+	phone PICNICKER, ERIN1, ROUTE_46,                    7, ErinPhoneScript1,    7, ErinPhoneScript2
+	phone PHONE, PHONE_BUENA, GOLDENROD_DEPT_STORE_ROOF, 7, BuenaPhoneScript1,   7, BuenaPhoneScript2
 ; 90627
 
 SpecialPhoneCallList: ; 90627
-	dw Function90188
-	db 4
+	dw SpecialCallOnlyWhenOutside
+	db PHONE_ELM
 	dba ElmPhoneScript2
 
-	dw Function90188
-	db 4
+	dw SpecialCallOnlyWhenOutside
+	db PHONE_ELM
 	dba ElmPhoneScript2
 
-	dw Function90188
-	db 4
+	dw SpecialCallOnlyWhenOutside
+	db PHONE_ELM
 	dba ElmPhoneScript2
 
-	dw Function90188
-	db 4
+	dw SpecialCallOnlyWhenOutside
+	db PHONE_ELM
 	dba ElmPhoneScript2
 
-	dw Function90197
-	db 4
+	dw SpecialCallWhereverYouAre
+	db PHONE_ELM
 	dba ElmPhoneScript2
 
-	dw Function90197
-	db 2
+	dw SpecialCallWhereverYouAre
+	db PHONE_OAK ; ????????
 	dba BikeShopPhoneScript ; bike shop
 
-	dw Function90197
-	db 1
+	dw SpecialCallWhereverYouAre
+	db PHONE_MOM
 	dba MomPhoneLectureScript
 
-	dw Function90188
-	db 4
+	dw SpecialCallOnlyWhenOutside
+	db PHONE_ELM
 	dba ElmPhoneScript2
 ; 90657
 
@@ -59383,11 +59389,13 @@
 	db "@"
 ; 0x90672
 
-Function90672: ; 90672 (24:4672)
+InitClock: ; 90672 (24:4672)
+; Ask the player to set the time.
 	ld a, [hInMenu]
 	push af
 	ld a, $1
 	ld [hInMenu], a
+
 	ld a, $0
 	ld [wc2ce], a
 	ld a, $10
@@ -59418,23 +59426,24 @@
 	ld hl, VTiles2 tile $02
 	lb bc, BANK(GFX_9090b), 1
 	call Request1bpp
-	call Function90783
+	call .ClearScreen
 	call WaitBGMap
 	call Function4a3
 	ld hl, UnknownText_0x90874
 	call PrintText
 	ld hl, wc608
-	ld bc, $32
+	ld bc, 50
 	xor a
 	call ByteFill
 	ld a, $a
-	ld [wc608 + 20], a
-.asm_906e8
+	ld [wInitHourBuffer], a
+
+.loop
 	ld hl, UnknownText_0x90879
 	call PrintText
 	hlcoord 3, 7
-	ld b, $2
-	ld c, $f
+	ld b, 2
+	ld c, 15
 	call TextBox
 	hlcoord 11, 7
 	ld [hl], $1
@@ -59441,27 +59450,30 @@
 	hlcoord 11, 10
 	ld [hl], $2
 	hlcoord 4, 9
-	call Function907de
+	call DisplayHourOClock
 	ld c, $a
 	call DelayFrames
-.asm_9070d
+
+.SetHourLoop
 	call JoyTextDelay
-	call Function90795
-	jr nc, .asm_9070d
-	ld a, [wc608 + 20]
+	call SetHour
+	jr nc, .SetHourLoop
+
+	ld a, [wInitHourBuffer]
 	ld [StringBuffer2 + 1], a
-	call Function90783
+	call .ClearScreen
 	ld hl, UnknownText_0x90886
 	call PrintText
 	call YesNoBox
-	jr nc, .asm_9072e
-	call Function90783
-	jr .asm_906e8
-.asm_9072e
+	jr nc, .HourIsSet
+	call .ClearScreen
+	jr .loop
+
+.HourIsSet
 	ld hl, UnknownText_0x9089a
 	call PrintText
 	hlcoord 11, 7
-	ld bc, $207
+	lb bc, 2, 7
 	call TextBox
 	hlcoord 15, 7
 	ld [hl], $1
@@ -59468,25 +59480,28 @@
 	hlcoord 15, 10
 	ld [hl], $2
 	hlcoord 12, 9
-	call Function90859
+	call DisplayMinutesWithMinString
 	ld c, 10
 	call DelayFrames
-.asm_90752
+
+.SetMinutesLoop
 	call JoyTextDelay
-	call Function90810
-	jr nc, .asm_90752
+	call SetMinutes
+	jr nc, .SetMinutesLoop
+
 	ld a, [BattleMonNick + 5]
 	ld [StringBuffer2 + 2], a
-	call Function90783
+	call .ClearScreen
 	ld hl, UnknownText_0x908a4
 	call PrintText
 	call YesNoBox
-	jr nc, .asm_90773
-	call Function90783
-	jr .asm_9072e
-.asm_90773
+	jr nc, .MinutesAreSet
+	call .ClearScreen
+	jr .HourIsSet
+
+.MinutesAreSet
 	call Function658
-	ld hl, UnknownText_0x908b8
+	ld hl, OakText_ResponseToSetTime
 	call PrintText
 	call Functiona80
 	pop af
@@ -59493,7 +59508,7 @@
 	ld [hInMenu], a
 	ret
 
-Function90783: ; 90783 (24:4783)
+.ClearScreen: ; 90783 (24:4783)
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	hlcoord 0, 0
@@ -59504,10 +59519,10 @@
 	ld [hBGMapMode], a ; $ff00+$d4
 	ret
 
-Function90795: ; 90795 (24:4795)
+SetHour: ; 90795 (24:4795)
 	ld a, [hJoyPressed]
 	and A_BUTTON
-	jr nz, .asm_907dc
+	jr nz, .Confirm
 
 	ld hl, hJoyLast
 	ld a, [hl]
@@ -59521,50 +59536,50 @@
 	ret
 
 .down
-	ld hl, wc608 + 20
+	ld hl, wInitHourBuffer
 	ld a, [hl]
 	and a
-	jr nz, .asm_907b6
+	jr nz, .DecreaseThroughMidnight
 	ld a, 23 + 1
-.asm_907b6
+.DecreaseThroughMidnight
 	dec a
 	ld [hl], a
-	jr .asm_907c6
+	jr .okay
 
 .up
-	ld hl, wc608 + 20
+	ld hl, wInitHourBuffer
 	ld a, [hl]
 	cp 23
-	jr c, .asm_907c4
+	jr c, .AdvanceThroughMidnight
 	ld a, -1
-.asm_907c4
+.AdvanceThroughMidnight
 	inc a
 	ld [hl], a
 
-.asm_907c6
+.okay
 	hlcoord 4, 9
 	ld a, " "
 	ld bc, 15
 	call ByteFill
 	hlcoord 4, 9
-	call Function907de
+	call DisplayHourOClock
 	call WaitBGMap
 	and a
 	ret
 
-.asm_907dc
+.Confirm
 	scf
 	ret
 
-Function907de: ; 907de (24:47de)
+DisplayHourOClock: ; 907de (24:47de)
 	push hl
-	ld a, [wc608 + 20]
+	ld a, [wInitHourBuffer]
 	ld c, a
 	ld e, l
 	ld d, h
-	call Function90b3e
+	call PrintHour
 	inc hl
-	ld de, String_9087e
+	ld de, String_oclock
 	call PlaceString
 	pop hl
 	ret
@@ -59574,7 +59589,7 @@
 	ld h, d
 	ld l, e
 	push hl
-	call Function907de
+	call DisplayHourOClock
 	pop de
 rept 2
 	inc de
@@ -59591,7 +59606,7 @@
 	ld a, [de]
 	ld [hl], a
 	pop hl
-	call Function90859
+	call DisplayMinutesWithMinString
 rept 3
 	inc hl
 endr
@@ -59598,7 +59613,7 @@
 	ret
 ; 90810
 
-Function90810: ; 90810 (24:4810)
+SetMinutes: ; 90810 (24:4810)
 	ld a, [hJoyPressed] ; $ff00+$a7
 	and A_BUTTON
 	jr nz, .asm_90857
@@ -59637,7 +59652,7 @@
 	ld bc, 7
 	call ByteFill
 	hlcoord 12, 9
-	call Function90859
+	call DisplayMinutesWithMinString
 	call WaitBGMap
 	and a
 	ret
@@ -59645,15 +59660,15 @@
 	scf
 	ret
 
-Function90859: ; 90859 (24:4859)
+DisplayMinutesWithMinString: ; 90859 (24:4859)
 	ld de, BattleMonNick + 5
-	call Function90867
+	call PrintTwoDigitNumberRightAlign
 	inc hl
-	ld de, String_9089f
+	ld de, String_min
 	call PlaceString
 	ret
 
-Function90867: ; 90867 (24:4867)
+PrintTwoDigitNumberRightAlign: ; 90867 (24:4867)
 	push hl
 	ld a, " "
 	ld [hli], a
@@ -59676,7 +59691,7 @@
 	db "@"
 ; 0x9087e
 
-String_9087e:
+String_oclock:
 	db "o'clock@"
 ; 90886
 
@@ -59685,7 +59700,7 @@
 	text_jump UnknownText_0x1bc2fd
 	start_asm
 	hlcoord 1, 16
-	call Function907de
+	call DisplayHourOClock
 	ld hl, UnknownText_0x90895
 	ret
 ; 90895 (24:4895)
@@ -59702,7 +59717,7 @@
 	db "@"
 ; 0x9089f
 
-String_9089f:
+String_min:
 	db "min.@"
 ; 908a4
 
@@ -59712,7 +59727,7 @@
 	start_asm
 ; 0x908a9
 	hlcoord 7, 14
-	call Function90859
+	call DisplayMinutesWithMinString
 	ld hl, UnknownText_0x908b3
 	ret
 ; 908b3 (24:48b3)
@@ -59723,12 +59738,12 @@
 	db "@"
 ; 0x908b8
 
-UnknownText_0x908b8: ; 0x908b8
+OakText_ResponseToSetTime: ; 0x908b8
 	start_asm
 	decoord 1, 14
-	ld a, [wc608 + 20]
+	ld a, [wInitHourBuffer]
 	ld c, a
-	call Function90b3e
+	call PrintHour
 	ld [hl], ":"
 	inc hl
 	ld de, BattleMonNick + 5
@@ -59736,37 +59751,37 @@
 	call PrintNum
 	ld b, h
 	ld c, l
-	ld a, [wc608 + 20]
+	ld a, [wInitHourBuffer]
 	cp 4
-	jr c, .asm_908e0
+	jr c, .NITE
 	cp 11
-	jr c, .asm_908e4
+	jr c, .MORN
 	cp 18
-	jr c, .asm_908e8
-.asm_908e0
-	ld hl, UnknownText_0x908f6
+	jr c, .DAY
+.NITE
+	ld hl, .sodark
 	ret
-.asm_908e4
-	ld hl, UnknownText_0x908ec
+.MORN
+	ld hl, .overslept
 	ret
-.asm_908e8
-	ld hl, UnknownText_0x908f1
+.DAY
+	ld hl, .yikes
 	ret
 ; 908ec (24:48ec)
 
-UnknownText_0x908ec: ; 0x908ec
+.overslept: ; 0x908ec
 	; ! I overslept!
 	text_jump UnknownText_0x1bc326
 	db "@"
 ; 0x908f1
 
-UnknownText_0x908f1: ; 0x908f1
+.yikes: ; 0x908f1
 	; ! Yikes! I over- slept!
 	text_jump UnknownText_0x1bc336
 	db "@"
 ; 0x908f6
 
-UnknownText_0x908f6: ; 0x908f6
+.sodark: ; 0x908f6
 	; ! No wonder it's so dark!
 	text_jump UnknownText_0x1bc34f
 	db "@"
@@ -59797,14 +59812,14 @@
 	ld [DefaultFlypoint], a
 .asm_90936
 	hlcoord 0, 12
-	ld bc, $0412
+	lb bc, 4, 18
 	call TextBox
 	call Function1d6e
 	ld hl, UnknownText_0x90a3f
 	call PrintText
 	hlcoord 9, 3
-	ld b, $2
-	ld c, $9
+	ld b, 2
+	ld c, 9
 	call TextBox
 	hlcoord 14, 3
 	ld [hl], $ef
@@ -60010,7 +60025,7 @@
 
 Function90abc: ; 90abc
 	hlcoord 1, 14
-	ld bc, $0312
+	lb bc, 3, 12
 	call ClearBox
 	ld hl, UnknownText_0x90acc
 	call PlaceWholeStringInBoxAtOnce
@@ -60071,8 +60086,7 @@
 ; 90b13
 
 UnknownText_0x90b13: ; 0x90b13
-	db $0
-	para "Now on DEBUG…"
+	text "<PARA>Now on DEBUG…"
 	prompt
 ; 0x90b23
 
@@ -60092,23 +60106,23 @@
 	ret
 ; 90b3e
 
-Function90b3e: ; 90b3e (24:4b3e)
+PrintHour: ; 90b3e (24:4b3e)
 	ld l, e
 	ld h, d
 	push bc
-	call Function90b58
+	call GetTimeOfDayString
 	call PlaceString
 	ld l, c
 	ld h, b
 	inc hl
 	pop bc
-	call Function90b7f
+	call AdjustHourForAMorPM
 	ld [wd265], a
 	ld de, wd265
-	call Function90867
+	call PrintTwoDigitNumberRightAlign
 	ret
 
-Function90b58: ; 90b58 (24:4b58)
+GetTimeOfDayString: ; 90b58 (24:4b58)
 	ld a, c
 	cp 4
 	jr c, .nite
@@ -60117,31 +60131,33 @@
 	cp 18
 	jr c, .day
 .nite
-	ld de, String_90b71
+	ld de, .NITE
 	ret
 .morn
-	ld de, String_90b76
+	ld de, .MORN
 	ret
 .day
-	ld de, String_90b7b
+	ld de, .DAY
 	ret
 ; 90b71 (24:4b71)
 
-String_90b71: db "NITE@"
-String_90b76: db "MORN@"
-String_90b7b: db "DAY@"
+.NITE: db "NITE@"
+.MORN: db "MORN@"
+.DAY: db "DAY@"
 ; 90b7f
 
-Function90b7f: ; 90b7f (24:4b7f)
+AdjustHourForAMorPM:
+; Convert the hour stored in c (0-23) to a 1-12 value
 	ld a, c
 	or a
-	jr z, .asm_90b8a
+	jr z, .midnight
 	cp 12
 	ret c
 	ret z
 	sub 12
 	ret
-.asm_90b8a
+
+.midnight
 	ld a, 12
 	ret
 
@@ -60164,7 +60180,7 @@
 .loop
 	call UpdateTime
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .done
 	call Function90f04
@@ -60185,7 +60201,7 @@
 	call WhiteBGMap
 	xor a
 	ld [hBGMapAddress], a
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	ld a, $90
 	ld [hWY], a
@@ -60211,7 +60227,7 @@
 	ld [rLCDC], a
 	call Function90d70
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -60367,7 +60383,7 @@
 
 Function90d9e: ; 90d9e (24:4d9e)
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [wcf64], a
 	ret
@@ -60402,7 +60418,7 @@
 
 	xor a
 	ld [hBGMapAddress], a
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	call Function90e00
 	ld a, $90
@@ -60411,7 +60427,7 @@
 .asm_90de8
 	xor a
 	ld [hBGMapAddress], a
-	ld a, $9c
+	ld a, VBGMap1 / $100
 	ld [hBGMapAddress + 1], a
 	call Function90e00
 	xor a
@@ -60575,7 +60591,7 @@
 	ret
 
 Function90f04: ; 90f04 (24:4f04)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_90f13
@@ -60607,7 +60623,7 @@
 	call Function90da8
 	ld hl, UnknownText_0x914d3
 	call PrintText
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	call Function91492
 	ret
@@ -60652,7 +60668,7 @@
 	ret
 
 .asm_90f75
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -60703,7 +60719,7 @@
 .kanto
 	ld a, 5
 .done
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Function91492
 	ret
 
@@ -60717,7 +60733,7 @@
 	ld [wc6d5], a
 	ld a, b
 	ld [wc6d6], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -60765,7 +60781,7 @@
 	call Function91480
 	ret
 .cancel
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -60913,7 +60929,7 @@
 	add hl, bc
 	ld [hl], $8
 	call _UpdateRadioStation
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -60959,12 +60975,12 @@
 	ret
 
 .cancel
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
 Function91156: ; 91156 (24:5156)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	xor a
 	ld [wc6d2], a
@@ -61017,7 +61033,7 @@
 	ret
 
 .b
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -61044,13 +61060,13 @@
 	call Function91342
 	jr c, .asm_911e5
 
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
 .asm_911e5
 	ld a, $8
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function911eb: ; 911eb (24:51eb)
@@ -61081,7 +61097,7 @@
 	ld a, $1
 	ld [hInMenu], a
 	call Function912b7
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 .asm_91234
@@ -61089,7 +61105,7 @@
 	ld hl, OutOfServiceAreaText
 	call PrintText
 	ld a, $8
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld hl, UnknownText_0x914ce
 	call PrintText
 	ret
@@ -61113,7 +61129,7 @@
 	ret z
 	callba HangUp
 	ld a, $8
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld hl, UnknownText_0x914ce
 	call PrintText
 	ret
@@ -61482,7 +61498,7 @@
 	ld de, SFX_READ_TEXT_2
 	call PlaySFX
 	ld a, c
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, b
 	ld [wcf64], a
 	call Function914ab
@@ -61901,7 +61917,7 @@
 	ld [hWY], a
 	xor a
 	ld [hBGMapAddress], a
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	ld a, [DefaultFlypoint]
 	ld e, a
@@ -62833,7 +62849,7 @@
 	ld [hWY], a
 	xor a
 	ld [hBGMapAddress], a
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	ld a, [DefaultFlypoint]
 	ld e, a
@@ -62968,7 +62984,7 @@
 	ld [hli], a
 	ld [hl], $40
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, $ff
 	ld [wc709], a
 	ld de, MUSIC_GAME_CORNER
@@ -62995,7 +63011,7 @@
 	ret
 
 Function927af: ; 927af (24:67af)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_927d1
 	call Function92844
@@ -63091,7 +63107,7 @@
 ; 92844
 
 Function92844: ; 92844 (24:6844)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_92853
@@ -63128,7 +63144,7 @@
 
 
 Function92879: ; 92879 (24:6879)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -63145,7 +63161,7 @@
 	call Function9307c
 	jr nc, .asm_92899
 	ld a, $12
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 .asm_92899
 	call Function92879
@@ -63336,15 +63352,15 @@
 	call Function930e9
 	jr c, .asm_929ea
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 .asm_929ea
 	ld a, $12
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function929f0: ; 929f0 (24:69f0)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -65962,11 +65978,11 @@
 	ret
 
 .asm_b92a8
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	callab Function845d4
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	jr .asm_b929a
 ; b92b8
 
@@ -67414,7 +67430,7 @@
 	call DmgToCgbObjPals
 	call DelayFrame
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, $2
 	ld [wcf64], a
 	ld [wcf65], a
@@ -67421,7 +67437,7 @@
 	ld de, MUSIC_GAME_CORNER
 	call PlayMusic
 .MasterLoop
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .leavethegame
 	call .CardFlip
@@ -67437,7 +67453,7 @@
 	ret
 
 .CardFlip: ; e0191 (38:4191)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, .Jumptable
@@ -67462,7 +67478,7 @@
 ; e01b0
 
 .Increment: ; e01b0
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; e01b5
@@ -67478,7 +67494,7 @@
 
 .SaidNo
 	ld a, $7
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e01cd
 
@@ -67502,7 +67518,7 @@
 	ld hl, .NotEnoughCoinsText
 	call Functione0489
 	ld a, $7
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 .deduct
@@ -67699,7 +67715,7 @@
 
 .LoopAround
 	ld a, $1
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e0356
 
@@ -67716,7 +67732,7 @@
 ; 0xe0360
 
 .Quit: ; e0360
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; e0366
@@ -69120,7 +69136,7 @@
 	ld [hSCY], a
 	ld [hSCX], a
 	ld [rWY], a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -69138,7 +69154,7 @@
 	call DelayFrame
 .asm_e1217
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_e123d
 	call Functione12ca
@@ -69246,7 +69262,7 @@
 ; e12ca
 
 Functione12ca: ; e12ca
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_e12d9
@@ -69420,7 +69436,7 @@
 	ld [wd0ec], a
 
 Functione13de: ; e13de
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -69968,7 +69984,7 @@
 	ld [hSCY], a ; $ff00+$d0
 	ld [hSCX], a ; $ff00+$cf
 	ld [rWY], a ; $ff00+$4a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, $1
 	ld [hBGMapMode], a ; $ff00+$d4
 	ld a, $e3
@@ -69980,7 +69996,7 @@
 	ret
 
 Functione1ebb: ; e1ebb (38:5ebb)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_e1ed0
 	call Functione1ed2
@@ -69993,7 +70009,7 @@
 	ret
 
 Functione1ed2: ; e1ed2 (38:5ed2)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_e1ee1
@@ -70020,7 +70036,7 @@
 
 Functione1ef3: ; e1ef3
 	call Functione2152
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; e1efb
@@ -70028,13 +70044,13 @@
 Functione1efb: ; e1efb
 	call Functione00ed
 	jr nc, .asm_e1f06
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
 .asm_e1f06
 	call Functione209d
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	xor a
 	ld [wc708], a
@@ -70063,7 +70079,7 @@
 	call Function3b2a
 	ld a, $5
 	ld [wc702], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; e1f42
@@ -70078,7 +70094,7 @@
 	and a
 	jr nz, .asm_e1f58
 	ld a, $7
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 .asm_e1f58
@@ -70085,7 +70101,7 @@
 	dec [hl]
 	xor a
 	ld [wcf64], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 
 Functione1f61: ; e1f61
@@ -70108,7 +70124,7 @@
 	call Functione2128
 	xor a
 	ld [wcf64], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; e1f8b
@@ -70136,7 +70152,7 @@
 	call Functione2128
 	ld a, $40
 	ld [wc708], a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 
 Functione1fba: ; e1fba
@@ -70150,7 +70166,7 @@
 .asm_e1fc3
 	call Functione2010
 	ld a, $3
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e1fcc
 
@@ -70184,19 +70200,19 @@
 
 .asm_e1ff9
 	call Functiona80
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 
 Functione2000: ; e2000
 	call Functione00ed
 	jr nc, .asm_e200b
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
 .asm_e200b
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e2010
 
@@ -70455,7 +70471,7 @@
 ; e21a1
 
 Functione21a1: ; e21a1 (38:61a1)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $7
 	jr nc, .asm_e21c8
 	call JoyTextDelay
@@ -70566,7 +70582,7 @@
 	call DelayFrame
 .asm_e23b4
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_e23c6
 	call Functione23d5
@@ -70583,7 +70599,7 @@
 	ret
 
 Functione23d5: ; e23d5 (38:63d5)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, Jumptable_e23df
 	call Functione33df
 	jp [hl]
@@ -70645,18 +70661,18 @@
 	cp $ff
 	jr z, .asm_e2457
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e2452 (38:6452)
 
 .asm_e2452
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	dec [hl]
 	ret
 
 .asm_e2457
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Functione245d: ; e245d (38:645d)
@@ -70708,7 +70724,7 @@
 	call Functione307c
 	jr c, .asm_e24c1
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [wcb2b], a
 	ld [wcb2a], a
@@ -70755,7 +70771,7 @@
 	callba Functione039
 	call Functione3180
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [wcb2b], a
 	ld [wcb2a], a
@@ -70770,7 +70786,7 @@
 
 BillsPCDepositFuncCancel: ; e2537 (38:6537)
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e253d (38:653d)
 
@@ -70828,7 +70844,7 @@
 	call DelayFrame
 .asm_e25a7
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_e25b9
 	call Functione25c8
@@ -70845,7 +70861,7 @@
 	ret
 
 Functione25c8: ; e25c8 (38:65c8)
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, .jumptable
 	call Functione33df
 	jp [hl]
@@ -70909,18 +70925,18 @@
 	cp $ff
 	jr z, .asm_e264f
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e264a (38:664a)
 
 .asm_e264a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	dec [hl]
 	ret
 
 .asm_e264f
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e2655
 
@@ -70973,7 +70989,7 @@
 	call TryWithdrawPokemon
 	jr c, .FailedWithdraw
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [wcb2b], a
 	ld [wcb2a], a
@@ -71018,7 +71034,7 @@
 	callba Functione039
 	call Functione3180
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [wcb2b], a
 	ld [wcb2a], a
@@ -71033,7 +71049,7 @@
 
 .cancel: ; e272b (38:672b)
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e2731 (38:6731)
 
@@ -71077,7 +71093,7 @@
 	call DelayFrame
 .asm_e2781
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_e2793
 	call Functione27a2
@@ -71096,7 +71112,7 @@
 ; e27a2
 
 Functione27a2: ; e27a2
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, Jumptable_e27ac
 	call Functione33df
 	jp [hl]
@@ -71162,7 +71178,7 @@
 	ld [wcb2b], a
 	ld [wcb2a], a
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 .asm_e2823
@@ -71172,16 +71188,16 @@
 	cp $ff
 	jr z, .asm_e2837
 	ld a, $2
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	dec [hl]
 	ret
 
 .asm_e2837
 	ld a, $6
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e283d
 
@@ -71239,7 +71255,7 @@
 	ld a, [wcb2e]
 	ld [wcb31], a
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e28a5
 
@@ -71257,7 +71273,7 @@
 
 Functione28bd: ; e28bd
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e28c3
 
@@ -71321,7 +71337,7 @@
 	ld [wcb2b], a
 	ld [wcb2a], a
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 .asm_e2938
@@ -71329,11 +71345,11 @@
 	jr c, .asm_e2946
 	call Functione31e7
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 .asm_e2946
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	dec [hl]
 	ret
 
@@ -71345,7 +71361,7 @@
 	ld a, [wcb31]
 	ld [wcb2e], a
 	ld a, $0
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e2963
 
@@ -71359,7 +71375,7 @@
 	xor a
 	call ByteFill
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -71368,12 +71384,12 @@
 	ret
 
 Functione298d: ; e298d (38:698d)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
 Functione2992: ; e2992 (38:6992)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -73221,7 +73237,7 @@
 	ld de, StringOptions
 	call PlaceString
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld c, $6 ;number of items on the menu minus 1 (for cancel)
 .asm_e41f3 ;this next will display the settings of each option when the menu is opened
 	push bc
@@ -73229,13 +73245,13 @@
 	ld [hJoyLast], a
 	call GetOptionPointer
 	pop bc
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	dec c
 	jr nz, .asm_e41f3
 	call Functione4512
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	inc a
 	ld [hBGMapMode], a
 	call WaitBGMap
@@ -73287,7 +73303,7 @@
 
 
 GetOptionPointer: ; e42d6
-	ld a, [wcf63] ;load the cursor position to a
+	ld a, [wJumptableEntryIndexBuffer] ;load the cursor position to a
 	ld e, a ;copy it to de
 	ld d, 0
 	ld hl, .Pointers
@@ -73727,7 +73743,7 @@
 ; e452a
 
 OptionsControl: ; e452a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	ld a, [hJoyLast]
 	cp D_DOWN
 	jr z, .DownPressed
@@ -73784,7 +73800,7 @@
 	jr nz, .asm_e4564
 	hlcoord 1, 2
 	ld bc, $0028
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	call AddNTimes
 	ld [hl], $ed
 	ret
@@ -73796,7 +73812,7 @@
 	call PlayMusic
 	call WhiteBGMap
 	call ClearTileMap
-	ld a, $98
+	ld a, VBGMap0 / $100
 	ld [hBGMapAddress + 1], a
 	xor a
 	ld [hBGMapAddress], a
@@ -73823,7 +73839,7 @@
 	ld a, [hJoyLast]
 	and BUTTONS
 	jr nz, .asm_e45de
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_e45e3
 	call Functione4670
@@ -73879,7 +73895,7 @@
 	add hl, bc
 	ld [hl], $30
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [hSCX], a
@@ -73903,7 +73919,7 @@
 ; e4670
 
 Functione4670: ; e4670
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_e467f
@@ -73924,7 +73940,7 @@
 ; e4687
 
 Functione4687: ; e4687
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; e468c
@@ -73993,7 +74009,7 @@
 	ret
 
 .asm_e46e7
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; e46ed
@@ -74171,7 +74187,7 @@
 	ld a, [hJoyLast]
 	and BUTTONS
 	jr nz, .ShutOffMusic
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .done
 	call IntroSceneJumper
@@ -74210,12 +74226,12 @@
 	ld [hInMenu], a
 	xor a
 	ld [$ffde], a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; e490f
 
 IntroSceneJumper: ; e490f
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, IntroScenes
@@ -74261,7 +74277,7 @@
 
 
 NextIntroScene: ; e4956 (39:4956)
-	ld hl, wIntroSceneIndex
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -75298,7 +75314,7 @@
 	ret
 
 .done
-	ld hl, wIntroSceneIndex
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
@@ -77374,7 +77390,7 @@
 
 NPCTrade:: ; fcba8
 	ld a, e
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Functionfcc59
 	ld b, CHECK_FLAG
 	call TradeFlagAction
@@ -77429,7 +77445,7 @@
 
 Functionfcc07: ; fcc07
 	call Function2ed3
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	ld a, [wcf64]
 	push af
@@ -77437,7 +77453,7 @@
 	pop af
 	ld [wcf64], a
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Function2b74
 	ret
 ; fcc23
@@ -77473,7 +77489,7 @@
 
 TradeFlagAction: ; fcc4a
 	ld hl, wd960
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld c, a
 	predef FlagPredef
 	ld a, c
@@ -77655,7 +77671,7 @@
 GetTradeAttribute: ; 0xfcdc2
 	ld d, 0
 	push de
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	and $f
 	swap a
 	ld e, a
@@ -77974,7 +77990,7 @@
 ; 0xfcfec
 
 
-Functionfcfec:: ; fcfec
+MomTriesToBuySomething:: ; fcfec
 	ld a, [wd45c]
 	and a
 	ret nz
@@ -77996,7 +78012,7 @@
 
 UnknownScript_0xfd00f: ; 0xfd00f
 	callasm Functionfd017
-	farjump UnknownScript_0x90241
+	farjump Script_SpecialPhoneCall
 ; 0xfd017
 
 Functionfd017: ; fd017
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -6612,12 +6612,12 @@
 ; 102c87
 
 Function102c87: ; 102c87
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	ld a, [wcf64]
 	push af
 	ld a, [wcd4c]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, [PartyCount]
 	ld [wcf64], a
 	ld a, $0
@@ -6632,7 +6632,7 @@
 	ld bc, $011a
 	call Function102d3e
 	ld a, [wcd4d]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, [OTPartyCount]
 	ld [wcf64], a
 	ld a, $5
@@ -6649,18 +6649,18 @@
 	pop af
 	ld [wcf64], a
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 102cee
 
 Function102cee: ; 102cee
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	dec a
 	call Function102d34
 	ld de, DefaultFlypoint
 	ld bc, $002f
 	call CopyBytes
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld c, a
 	ld a, $6
 	sub c
@@ -6669,7 +6669,7 @@
 	ld hl, $0000
 	call AddNTimes
 	push hl
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	dec a
 	call Function102d34
 	ld d, h
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -124,7 +124,7 @@
 
 Function1080b7: ; 1080b7
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call WhiteBGMap
 	call ClearSprites
 	call ClearTileMap
@@ -187,7 +187,7 @@
 
 Function108157: ; 108157
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call WhiteBGMap
 	call ClearSprites
 	call ClearTileMap
@@ -310,7 +310,7 @@
 ; 10824b
 
 Function10824b: ; 10824b
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_10825a
 	call Function10827b
@@ -335,7 +335,7 @@
 ; 10827b
 
 Function10827b: ; 10827b
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_10828a
@@ -372,7 +372,7 @@
 ; 1082b2
 
 Function1082b2: ; 1082b2
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; 1082b7
@@ -383,7 +383,7 @@
 	inc hl
 	ld d, [hl]
 	ld a, [de]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	inc de
 	ld [hl], d
 	dec hl
@@ -392,7 +392,7 @@
 ; 1082c6
 
 Function1082c6: ; 1082c6
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; 1082cc
@@ -1270,8 +1270,8 @@
 asm_1089fc
 	call WaitTop
 	call Function108ac8
-	ld a, $9c
-	ld [$ffd7], a
+	ld a, VBGMap1 / $100
+	ld [hBGMapAddress + 1], a
 	hlcoord 5, 0
 	ld b, $6
 	ld c, $9
@@ -1293,8 +1293,8 @@
 Function108a33: ; 108a33
 	call WaitTop
 	call Function108ac8
-	ld a, $9c
-	ld [$ffd7], a
+	ld a, VBGMap1 / $100
+	ld [hBGMapAddress + 1], a
 	hlcoord 5, 0
 	ld b, $6
 	ld c, $9
@@ -1313,8 +1313,8 @@
 Function108a5b: ; 108a5b
 	call WaitTop
 	call Function108ac8
-	ld a, $9c
-	ld [$ffd7], a
+	ld a, VBGMap1 / $100
+	ld [hBGMapAddress + 1], a
 	hlcoord 4, 0
 	ld b, $6
 	ld c, $a
@@ -1336,8 +1336,8 @@
 Function108a87: ; 108a87
 	call WaitBGMap
 	call WaitTop
-	ld a, $98
-	ld [$ffd7], a
+	ld a, VBGMap0 / $100
+	ld [hBGMapAddress + 1], a
 	ret
 ; 108a92
 
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -8168,7 +8168,7 @@
 
 Function117a94: ; 0x117a94
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -8190,7 +8190,7 @@
 
 Function117acd: ; 0x117acd
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_117ae2 ; 0x117ad5 $b
 	call Function117ae9
@@ -8202,7 +8202,7 @@
 	ret
 
 Function117ae9: ; 0x117ae9
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, $0
 	ld hl, Pointers117af8
@@ -8306,7 +8306,7 @@
 	call ExitMenu
 	callba Function104061
 	ld a, $80
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function117bb6:
@@ -8325,11 +8325,11 @@
 	ld [wc303], a
 	callba Function17f555
 	ld a, $80
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 .asm_117be1
 	ld a, $80
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 .asm_117be7
 	ld a, [rSVBK]
@@ -8411,7 +8411,7 @@
 	pop af
 	ld [rSVBK], a
 	ld a, $80
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 Function117c89:
@@ -8464,7 +8464,7 @@
 	db "@"
 
 Function117cdd: ; 0x117cdd
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 
@@ -11817,7 +11817,7 @@
 	ld [wc702], a
 	ld a, [wcd81]
 	ld [wc74e], a
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	ld a, [wcf64]
 	push af
@@ -11840,7 +11840,7 @@
 	pop af
 	ld [wcf64], a
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	callba Function115dc3
 	jp Function119e2e
 ; 11984e
@@ -11853,7 +11853,7 @@
 	and a
 	jr nz, .asm_1198a8
 	callba Function170000
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	ld a, [wcf64]
 	push af
@@ -11876,7 +11876,7 @@
 	pop af
 	ld [wcf64], a
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	callba Function115dc3
 	jp Function119e2e
 
@@ -11887,7 +11887,7 @@
 
 .asm_1198a8
 	callba Function17005a
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	push af
 	ld a, [wcf64]
 	push af
@@ -11910,7 +11910,7 @@
 	pop af
 	ld [wcf64], a
 	pop af
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	callba Function115dc3
 	jp Function119e2e
 ; 1198ee
@@ -14343,7 +14343,7 @@
 	call DelayFrame
 .asm_11ac82
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_11aca8
 	call Function11b314
@@ -14444,7 +14444,7 @@
 	xor a
 	call ByteFill
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -14456,7 +14456,7 @@
 ; 11ad6e
 
 Function11ad6e: ; 11ad6e
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld hl, Jumptable_11ad78
 	call Function11b239
 	jp [hl]
@@ -14475,13 +14475,13 @@
 ; 11ad8a
 
 Function11ad8a: ; 11ad8a
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; 11ad8f
 
 Function11ad8f: ; 11ad8f
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 ; 11ad95
@@ -14522,7 +14522,7 @@
 	ret z
 	call PlayClickSFX
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	jr .asm_11ae2e
 
 .asm_11ade6
@@ -14643,7 +14643,7 @@
 	ld a, $7f
 	ld [hl], a
 	ld a, $1
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	jr .asm_11aef7
 
 .asm_11aec1
@@ -14734,7 +14734,7 @@
 	ld a, $7f
 	ld [hl], a
 	ld a, $1
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	jr .asm_11afaa
 
 .asm_11af77
@@ -14765,7 +14765,7 @@
 	cp $2
 	jr z, .asm_11af6a
 	ld a, $6
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	xor a
 	ld [ScriptVar], a
 
@@ -15057,7 +15057,7 @@
 	jr .asm_11b148
 
 .asm_11b141
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	ld a, $7
 	ld [hl], a
 	ret
@@ -15090,7 +15090,7 @@
 .asm_11b16c
 	ld [wcd30], a
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 11b175
 
@@ -15411,7 +15411,7 @@
 
 Function11b31b: ; 11b31b
 	ld hl, Unknown_11b350
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $2
 	jr c, .asm_11b349
 	ld a, [wc7d1]
@@ -15419,7 +15419,7 @@
 	jr nc, .asm_11b344
 	cp $3
 	jr c, .asm_11b349
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $2
 	jr z, .asm_11b349
 	cp $3
@@ -15553,7 +15553,7 @@
 	ld [hli], a
 	cp $41
 	jr c, .asm_11b42b
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $4
 	jr z, .asm_11b43b
 	cp $5
@@ -15592,7 +15592,7 @@
 
 Function11b44b: ; 11b44b
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -15604,7 +15604,7 @@
 .asm_11b45c
 	call Function11b46a
 	call DelayFrame
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $4
 	jr nz, .asm_11b45c
 	ret
@@ -15611,7 +15611,7 @@
 ; 11b46a
 
 Function11b46a: ; 11b46a
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11b479
@@ -15813,7 +15813,7 @@
 
 .asm_11b57f
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 11b585
 
@@ -15913,7 +15913,7 @@
 .asm_11b64c
 	call Function11b65a
 	call DelayFrame
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $1
 	jr nz, .asm_11b64c
 	ret
@@ -15920,7 +15920,7 @@
 ; 11b65a
 
 Function11b65a: ; 11b65a
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11b669
@@ -16677,7 +16677,7 @@
 
 
 Function11c0c6: ; 11c0c6
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld l, a
 	ld a, [wcf64]
 	ld h, a
@@ -16687,7 +16687,7 @@
 	ld [hli], a
 	push de
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, $12
 	ld [wcf64], a
 	ld a, $6
@@ -16720,9 +16720,9 @@
 .asm_11c102
 	cp e
 	jr nc, .asm_11c11c
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	inc a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [hl], $4e
 	rra
 	jr c, .asm_11c113
@@ -16763,7 +16763,7 @@
 	call PlaceWholeStringInBoxAtOnce
 	pop hl
 	ld a, l
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, h
 	ld [wcf64], a
 	ret
@@ -16856,7 +16856,7 @@
 
 Function11c1ca: ; 11c1ca
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -16938,7 +16938,7 @@
 	call JoyTextDelay
 	ld a, [hJoyPressed]
 	ld [hJoypadPressed], a
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_11c2a2
 	call Function11c2ac
@@ -16953,7 +16953,7 @@
 ; 11c2ac
 
 Function11c2ac: ; 11c2ac
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11c2bb
@@ -17219,7 +17219,7 @@
 .asm_11c472
 	call Function11c4a5
 .asm_11c475
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call PlayClickSFX
 	ret
 .asm_11c47c
@@ -17383,7 +17383,7 @@
 .asm_11c59f
 	ld hl, wcd24
 	set 1, [hl]
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call PlayClickSFX
 	ret
 
@@ -17599,7 +17599,7 @@
 .asm_11c6fa
 	ld a, $15
 .asm_11c6fc
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld hl, wcd24
 	set 3, [hl]
 	call PlayClickSFX
@@ -18119,7 +18119,7 @@
 	ld hl, wcd24
 	set 4, [hl]
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call PlayClickSFX
 	ret
 .asm_11c9f7
@@ -18271,7 +18271,7 @@
 	ld [wcd2a], a
 	ret
 .asm_11caf3
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 .asm_11caf9
@@ -18280,7 +18280,7 @@
 	ld hl, wcd24
 	set 4, [hl]
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld a, [wcd35]
 	cp $ff
 	ret nz
@@ -18389,7 +18389,7 @@
 	ld d, a
 	hlcoord 1, 14
 	call PlaceString
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	inc hl
 	ld a, $10
@@ -18404,7 +18404,7 @@
 	ld hl, wcd24
 	set 4, [hl]
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 .asm_11cbeb
 	ld a, [hl]
@@ -18490,7 +18490,7 @@
 	and a
 	ret z
 	ld a, $4
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 ; 11cd10 (47:4d10)
 
@@ -18551,7 +18551,7 @@
 .asm_11cd7d
 	ld a, $15
 .asm_11cd7f
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld hl, wcd24
 	set 5, [hl]
 	call PlayClickSFX
@@ -18692,7 +18692,7 @@
 .asm_11ce96
 	ld a, $13
 .asm_11ce98
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld hl, wcd24
 	set 2, [hl]
 	call PlayClickSFX
@@ -18778,7 +18778,7 @@
 ; 11cfb5
 
 Function11cfb5: ; 11cfb5 (47:4fb5)
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; 11cfba (47:4fba)
@@ -21327,7 +21327,7 @@
 
 Function16c031: ; 16c031
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [DefaultFlypoint], a
 	ld [wd003], a
@@ -22784,7 +22784,7 @@
 
 Function170215: ; 170215
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	call Function17022c
 	ret
 ; 17021d
@@ -22795,7 +22795,7 @@
 
 Function17021e: ; 17021e
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
@@ -22806,7 +22806,7 @@
 .asm_17022c
 	call Jumpto_BattleTowerBattleFunction
 	call DelayFrame
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	cp $1
 	jr nz, .asm_17022c
 	ret
@@ -22813,7 +22813,7 @@
 ; 17023a
 
 Jumpto_BattleTowerBattleFunction: ; 17023a
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_BattleTowerBattleFunctions
@@ -22871,7 +22871,7 @@
 	pop af
 	ld [Options], a
 	ld a, $1
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ret
 
 
@@ -23229,7 +23229,7 @@
 	call ClearScreen
 .asm_1704fa
 	call JoyTextDelay
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	bit 7, a
 	jr nz, .asm_17050f
 	call Function170510
@@ -23241,7 +23241,7 @@
 ; 170510
 
 Function170510: ; 170510
-	ld a, [wcf63]
+	ld a, [wJumptableEntryIndexBuffer]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_17051f
@@ -23332,12 +23332,12 @@
 	ret
 
 .asm_1705ac
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	set 7, [hl]
 	ret
 
 Function1705b2:
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 	inc [hl]
 	ret
 ; 1705b7
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -521,7 +521,7 @@
 
 Function17d2c0: ; 17d2c0
 	xor a
-	ld [wcf63], a
+	ld [wJumptableEntryIndexBuffer], a
 	ld [wcf64], a
 	ld [wcf65], a
 	ld [wcf66], a
--- a/misc/unused_title.asm
+++ b/misc/unused_title.asm
@@ -9,7 +9,7 @@
 	xor a
 	ld [hBGMapMode], a
 
-	ld hl, wcf63
+	ld hl, wJumptableEntryIndexBuffer
 rept 3
 	ld [hli], a
 endr
--- a/wram.asm
+++ b/wram.asm
@@ -135,7 +135,7 @@
 SECTION "Stack", WRAM0
 wc000::
 StackBottom::
-	ds $ff
+	ds $100 - 1
 Stack::
 StackTop::
 	ds 1
@@ -441,6 +441,8 @@
 wPlayerMoveStruct:: ds MOVE_LENGTH ; c60f
 wc616::
 EnemyMonNick::  ds PKMN_NAME_LENGTH ; c616
+	ds -5
+wInitHourBuffer:: ds 5
 BattleMonNick:: ds PKMN_NAME_LENGTH ; c621
 
 BattleMon:: battle_struct BattleMon ; c62c
@@ -1179,9 +1181,9 @@
 CurSpecies:: ; cf60
 	ds 1
 
-wNamedObjectTypeBuffer:: ds 2
-wIntroSceneIndex::
-wcf63:: ds 1
+wNamedObjectTypeBuffer:: ds 1
+	ds 1
+wJumptableEntryIndexBuffer:: ds 1
 wNrOfBeatenBattleTowerTrainers::
 wMomBankDigitCursorPosition::
 wIntroSceneFrameCounter::
@@ -2126,7 +2128,7 @@
 wd851::
 wMomsMoney:: ; d851
 	ds 3
-wd854::
+wBankOfMomMode::
 wMomSavingMoney:: ; d854
 	ds 1