shithub: pokecrystal

Download patch

ref: c8960dd2c8043d9a10e961379996fa18fef34033
parent: d5ddd9e54ec2422d6f1cd7c561c1750512d0a81d
author: PikalaxALT <PikalaxALT@gmail.com>
date: Wed Jul 22 11:57:02 EDT 2015

Various annotations

Annotated the SGB functions in predef/sgb.asm, and some of the map scripts.  Renamed several functions in home.  Renamed six WRAM addresses corresponding to party icon animations, and renamed several others relative to these.

--- a/battle/core.asm
+++ b/battle/core.asm
@@ -8824,9 +8824,9 @@
 	call GetSRAMBank
 	call Function3f85f
 	call CloseSRAM
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	xor a
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	call Function3200
 	ld b, $8
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -6448,7 +6448,7 @@
 	jp BattleTextBox
 
 .stat
-	TX_FAR UnknownText_0x1c0cc6
+	text_jump UnknownText_0x1c0cc6
 	start_asm
 
 	ld hl, .up
@@ -6459,11 +6459,11 @@
 	ret
 
 .wayup
-	TX_FAR UnknownText_0x1c0cd0
+	text_jump UnknownText_0x1c0cd0
 	db "@"
 
 .up
-	TX_FAR UnknownText_0x1c0ce0
+	text_jump UnknownText_0x1c0ce0
 	db "@"
 
 ; 363e9
@@ -6482,7 +6482,7 @@
 	jp BattleTextBox
 
 .stat
-	TX_FAR UnknownText_0x1c0ceb
+	text_jump UnknownText_0x1c0ceb
 	start_asm
 
 	ld hl, .fell
@@ -6493,10 +6493,10 @@
 	ret
 
 .sharplyfell
-	TX_FAR UnknownText_0x1c0cf5
+	text_jump UnknownText_0x1c0cf5
 	db "@"
 .fell
-	TX_FAR UnknownText_0x1c0d06
+	text_jump UnknownText_0x1c0d06
 	db "@"
 
 ; 3641a
@@ -7804,7 +7804,7 @@
 	jp EndMoveEffect
 
 .UsedText
-	TX_FAR UnknownText_0x1c0d0e ; "[USER]"
+	text_jump UnknownText_0x1c0d0e ; "[USER]"
 	start_asm
 
 	ld a, BATTLE_VARS_MOVE_ANIM
@@ -7837,32 +7837,32 @@
 
 .RazorWind
 ; 'made a whirlwind!'
-	TX_FAR UnknownText_0x1c0d12
+	text_jump UnknownText_0x1c0d12
 	db "@"
 
 .Solarbeam
 ; 'took in sunlight!'
-	TX_FAR UnknownText_0x1c0d26
+	text_jump UnknownText_0x1c0d26
 	db "@"
 
 .SkullBash
 ; 'lowered its head!'
-	TX_FAR UnknownText_0x1c0d3a
+	text_jump UnknownText_0x1c0d3a
 	db "@"
 
 .SkyAttack
 ; 'is glowing!'
-	TX_FAR UnknownText_0x1c0d4e
+	text_jump UnknownText_0x1c0d4e
 	db "@"
 
 .Fly
 ; 'flew up high!'
-	TX_FAR UnknownText_0x1c0d5c
+	text_jump UnknownText_0x1c0d5c
 	db "@"
 
 .Dig
 ; 'dug a hole!'
-	TX_FAR UnknownText_0x1c0d6c
+	text_jump UnknownText_0x1c0d6c
 	db "@"
 ; 36c2c
 
--- a/constants.asm
+++ b/constants.asm
@@ -25,3 +25,4 @@
 INCLUDE "constants/misc_constants.asm"
 INCLUDE "constants/std_constants.asm"
 INCLUDE "constants/deco_constants.asm"
+INCLUDE "constants/radio_constants.asm"
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -297,7 +297,7 @@
 	ld a, [EnemyLightScreenCount]
 	ld c, a
 	ld a, [EnemyReflectCount]
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld de, $0014
 .asm_8c04
 	and a
@@ -661,8 +661,8 @@
 
 
 Function9699: ; 9699
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	xor a
 	call ByteFill
 	ret
@@ -694,7 +694,7 @@
 	ret
 
 .asm_96d0
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld de, VBGMap0
 	ld b, $12
 	ld a, $1
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -527,7 +527,7 @@
 	ld a, $c
 	ld [hBGMapAddress], a ; $ff00+$d6
 	ld a, $28
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	call ByteFill
 	ld a, $7f
@@ -540,7 +540,7 @@
 	hlcoord 0, 17
 	ld a, $20
 	call Function109b1d
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $50
 	xor a
 	call ByteFill
@@ -560,7 +560,7 @@
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	ld [hBGMapAddress], a ; $ff00+$d6
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function109aff
 	call Function3200
 	ret
--- a/engine/diploma.asm
+++ b/engine/diploma.asm
@@ -14,8 +14,8 @@
 	ld de, VTiles2
 	call Decompress
 	ld hl, Tilemap_1ddc4b
-	ld de, TileMap
-	ld bc, $0168
+	decoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	ld de, String_1dd760
 	hlcoord 2, 5
@@ -54,13 +54,13 @@
 ; 1dd7ae
 
 Function1dd7ae: ; 1dd7ae
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	ld hl, Tilemap_1dddb3
-	ld de, TileMap
-	ld bc, $0168
+	decoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	ld de, String_1dd7fa
 	hlcoord 8, 0
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -29,9 +29,9 @@
 	dwb StatusFlags, %01000000 ; credits skip
 	dwb StatusFlags, %10000000 ; bug contest on   ; $10
 	dwb StatusFlags2, %00000100 ; bug contest timer
-	dwb StatusFlags2, %00000010 ; rockets in radio tower
-	dwb StatusFlags2, %00000001 ; bike shop call enabled (1024 bike steps reqd)
-	dwb StatusFlags2, %00010000
+	dwb StatusFlags2, %00000010
+	dwb StatusFlags2, %00000001 ; rockets in radio tower
+	dwb StatusFlags2, %00010000 ; bike shop call enabled (1024 bike steps reqd)
 	dwb StatusFlags2, %00100000 ; give pokerus; berry -> berry juice when trading?
 	dwb StatusFlags2, %01000000
 	dwb StatusFlags2, %10000000 ; rockets in mahogany
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1404,7 +1404,7 @@
 	hlcoord 5, 1
 	lb bc, 11, 15
 	call ClearBox
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $28
 	ld c, $14
 .asm_1098a
@@ -1489,8 +1489,8 @@
 ; 10a2a
 
 Function10a2a: ; 10a2a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	ret
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -212,7 +212,7 @@
 	ld [hBGMapMode], a ; $ff00+$d4
 	call ClearSprites
 	xor a
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	call ByteFill
 	callba Function1de171
@@ -725,7 +725,7 @@
 	xor a
 	ld [hBGMapMode], a ; $ff00+$d4
 	xor a
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	call ByteFill
 	call Function41ae1
@@ -1071,10 +1071,10 @@
 	ld de, Unknown_407f2
 	call Function40acd
 	ld a, $32
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	call ByteFill
-	ld hl, TileMap
+	hlcoord 0, 0
 	lb bc, 7, 7
 	call Function40ad5
 	hlcoord 0, 9
@@ -1135,7 +1135,7 @@
 
 Function407fd: ; 407fd
 	call Function40aa6
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0f12
 	call Function40ad5
 	hlcoord 19, 0
@@ -1259,7 +1259,7 @@
 
 Function40962: ; 40962 (10:4962)
 	call Function40aa6
-	ld hl, TileMap
+	hlcoord 0, 0
 	lb bc, 7, 7
 	call Function40ad5
 	hlcoord 0, 11
@@ -1387,9 +1387,9 @@
 ; 40aa6
 
 Function40aa6: ; 40aa6
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $32
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ret
 ; 40ab2
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -79,7 +79,7 @@
 	add_predef Functioncbcdd
 	add_predef Predef2F
 	add_predef Function9853 ; $30
-	add_predef Function864c
+	add_predef Predef_LoadSGBLayout
 	add_predef Function91d11
 	add_predef CheckContestMon
 	add_predef Function8c20f
--- a/engine/radio.asm
+++ b/engine/radio.asm
@@ -1,2115 +1,2141 @@
-PlayRadioShow: ; b8612
-	ld a, [wd002]
-	cp 8
-	jr nc, .ok
-	ld a, [StatusFlags2]
-	bit 0, a
-	jr z, .ok
-	call IsInJohto
-	and a
-	jr nz, .ok
-	ld a, 7
-	ld [wd002], a
-.ok
-	ld a, [wd002]
-	ld e, a
-	ld d, 0
-	ld hl, RadioJumptable
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp [hl]
-
-RadioJumptable: ; b863a (2e:463a)
-	dw MaryOakShow1
-	dw MaryOakShow2
-	dw BenMonMusic1
-	dw DJReed1
-	dw Functionb8f12
-	dw Functionb8cbf
-	dw Functionb8b50
-	dw Functionb8e72
-	dw Functionb8ef7
-	dw Functionb8f00
-	dw Functionb8f09
-	dw Functionb8752
-	dw Functionb875a
-	dw Functionb8762
-	dw Functionb8810
-	dw Functionb8818
-	dw Functionb883e
-	dw Functionb8854
-	dw Functionb88d9
-	dw Functionb8a6c
-	dw Functionb8aa4
-	dw Functionb8aac
-	dw Functionb8ab4
-	dw Functionb8b40
-	dw Functionb8b48
-	dw Functionb8b63
-	dw Functionb8b6b
-	dw Functionb8b7d
-	dw Functionb8b8f
-	dw Functionb8b5b
-	dw Functionb8bf5
-	dw Functionb8bfd
-	dw Functionb8c05
-	dw Functionb8c0d
-	dw Functionb8c15
-	dw Functionb8c1d
-	dw Functionb8c25
-	dw Functionb8c3e
-	dw Functionb8c46
-	dw Functionb8c4e
-	dw Functionb8c56
-	dw Functionb8c5e
-	dw Functionb8c6e
-	dw Functionb8c76
-	dw Functionb8cca
-	dw Functionb8cd2
-	dw Functionb8cf2
-	dw Functionb8d56
-	dw Functionb8ded
-	dw Functionb8e28
-	dw Functionb8e7d
-	dw Functionb8e85
-	dw Functionb8e8d
-	dw Functionb8e95
-	dw Functionb8e9d
-	dw Functionb8ea5
-	dw Functionb8ead
-	dw Functionb8eb5
-	dw Functionb8ebd
-	dw Functionb896e
-	dw Functionb8994
-	dw Functionb89a9
-	dw Functionb89c6
-	dw Functionb89d7
-	dw Functionb8f3f
-	dw Functionb8f47
-	dw Functionb8f55
-	dw Functionb909c
-	dw Functionb90a4
-	dw Functionb90ac
-	dw Functionb90c5
-	dw Functionb90d2
-	dw Functionb90da
-	dw Functionb90e2
-	dw Functionb90ea
-	dw Functionb90f2
-	dw Functionb90fa
-	dw Functionb9102
-	dw Functionb910a
-	dw Functionb9112
-	dw Functionb911a
-	dw Functionb9122
-	dw Functionb912a
-	dw Functionb9152
-	dw Functionb8728
-	dw Functionb8abc
-	dw Functionb8ac4
-	dw Functionb8acc
-
-
-Functionb86ea: ; b86ea (2e:46ea)
-	ld [wd003], a
-	ld hl, wd00c
-	ld a, [wd005]
-	cp $2
-	jr nc, .asm_b870a
-	inc hl
-	ld [hl], $0
-	inc a
-	ld [wd005], a
-	cp $2
-	jr nz, .asm_b870a
-	bccoord 1, 16
-	call Function13e5
-	jr .asm_b870d
-.asm_b870a
-	call PrintTextBoxText
-.asm_b870d
-	ld a, $54
-	ld [wd002], a
-	ld a, $64
-	ld [wd004], a
-	ret
-; b8718 (2e:4718)
-
-Functionb8718: ; b8718
-	push hl
-	ld b, $28
-.asm_b871b
-	ld a, [hl]
-	cp $e8
-	jr nz, .asm_b8722
-	ld [hl], $7f
-
-.asm_b8722
-	inc hl
-	dec b
-	jr nz, .asm_b871b
-	pop hl
-	ret
-; b8728
-
-Functionb8728: ; b8728 (2e:4728)
-	ld hl, wd004
-	ld a, [hl]
-	and a
-	jr z, .asm_b8731
-	dec [hl]
-	ret
-.asm_b8731
-	ld a, [wd003]
-	ld [wd002], a
-	ld a, [wd005]
-	cp $1
-	call nz, Functionb8a0b
-	jp Functionb8a17
-
-MaryOakShow1: ; b8742 (2e:4742)
-	ld a, $5
-	ld [wd006], a
-	call Functionb91eb
-	ld hl, UnknownText_0xb8820
-	ld a, $b
-	jp NextRadioLine
-
-Functionb8752: ; b8752 (2e:4752)
-	ld hl, UnknownText_0xb8825
-	ld a, $c
-	jp NextRadioLine
-
-Functionb875a: ; b875a (2e:475a)
-	ld hl, UnknownText_0xb882a
-	ld a, $d
-	jp NextRadioLine
-
-Functionb8762: ; b8762 (2e:4762)
-	call Random
-	and $1f
-	cp $f
-	jr nc, Functionb8762
-	ld hl, Unknown_b87f2
-	ld c, a
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld b, [hl]
-	inc hl
-	ld c, [hl]
-	push bc
-
-	ld hl, WildMons1
-.loop
-	ld a, BANK(WildMons1)
-	call GetFarByte
-	cp $ff
-	jr z, .done2
-	inc hl
-	cp b
-	jr nz, .next
-	ld a, BANK(WildMons1)
-	call GetFarByte
-	cp c
-	jr z, .done
-.next
-	dec hl
-	ld de, $2f
-	add hl, de
-	jr .loop
-
-.done
-rept 4
-	inc hl
-endr
-
-.not3
-	call Random
-	and 3
-	cp 3
-	jr z, .not3
-
-	ld bc, $e
-	call AddNTimes
-.loop2
-	call Random
-	and 7
-	cp 2
-	jr c, .loop2
-	cp 5
-	jr nc, .loop2
-	ld e, a
-	ld d, 0
-rept 2
-	add hl, de
-endr
-	inc hl
-	ld a, BANK(WildMons1)
-	call GetFarByte
-	ld [wd265], a
-	ld [CurPartySpecies], a
-	call GetPokemonName
-	ld hl, StringBuffer1
-	ld de, wd050
-	ld bc, $b
-	call CopyBytes
-
-	pop bc
-	call GetWorldMapLocation
-	ld e, a
-	callba GetLandmarkName
-	ld hl, UnknownText_0xb882f
-	call Functionb91dc
-	ld a, $e
-	jp Functionb86ea
-
-.done2
-	pop bc
-	ld a, $0
-	jp Functionb86ea
-; b87f2 (2e:47f2)
-
-Unknown_b87f2: ; b87f2
-	map ROUTE_29
-	map ROUTE_46
-	map ROUTE_30
-	map ROUTE_32
-	map ROUTE_34
-	map ROUTE_35
-	map ROUTE_37
-	map ROUTE_38
-	map ROUTE_39
-	map ROUTE_42
-	map ROUTE_43
-	map ROUTE_44
-	map ROUTE_45
-	map ROUTE_36
-	map ROUTE_31
-; b8810
-
-Functionb8810: ; b8810 (2e:4810)
-	ld hl, UnknownText_0xb8834
-	ld a, $f
-	jp NextRadioLine
-
-Functionb8818: ; b8818 (2e:4818)
-	ld hl, UnknownText_0xb8839
-	ld a, $10
-	jp NextRadioLine
-; b8820 (2e:4820)
-
-UnknownText_0xb8820: ; 0xb8820
-	; MARY: PROF.OAK'S
-	text_jump UnknownText_0x1bc81a
-	db "@"
-; 0xb8825
-
-UnknownText_0xb8825: ; 0xb8825
-	; #MON TALK!
-	text_jump UnknownText_0x1bc82d
-	db "@"
-; 0xb882a
-
-UnknownText_0xb882a: ; 0xb882a
-	; With me, MARY!
-	text_jump UnknownText_0x1bc83a
-	db "@"
-; 0xb882f
-
-UnknownText_0xb882f: ; 0xb882f
-	; OAK: @ @
-	text_jump UnknownText_0x1bc84b
-	db "@"
-; 0xb8834
-
-UnknownText_0xb8834: ; 0xb8834
-	; may be seen around
-	text_jump UnknownText_0x1bc858
-	db "@"
-; 0xb8839
-
-UnknownText_0xb8839: ; 0xb8839
-	; @ .
-	text_jump UnknownText_0x1bc86d
-	db "@"
-; 0xb883e
-
-Functionb883e: ; b883e (2e:483e)
-	ld a, [CurPartySpecies]
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, UnknownText_0xb884f
-	ld a, $11
-	jp NextRadioLine
-; b884f (2e:484f)
-
-UnknownText_0xb884f: ; 0xb884f
-	; MARY: @ 's
-	text_jump UnknownText_0x1bc876
-	db "@"
-; 0xb8854
-
-Functionb8854: ; b8854 (2e:4854)
-	call Random
-	and $f
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_b8869
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, $12
-	jp NextRadioLine
-; b8869 (2e:4869)
-
-Unknown_b8869: ; b8869
-	dw UnknownText_0xb8889
-	dw UnknownText_0xb888e
-	dw UnknownText_0xb8893
-	dw UnknownText_0xb8898
-	dw UnknownText_0xb889d
-	dw UnknownText_0xb88a2
-	dw UnknownText_0xb88a7
-	dw UnknownText_0xb88ac
-	dw UnknownText_0xb88b1
-	dw UnknownText_0xb88b6
-	dw UnknownText_0xb88bb
-	dw UnknownText_0xb88c0
-	dw UnknownText_0xb88c5
-	dw UnknownText_0xb88ca
-	dw UnknownText_0xb88cf
-	dw UnknownText_0xb88d4
-; b8889
-
-UnknownText_0xb8889: ; 0xb8889
-	; sweet and adorably
-	text_jump UnknownText_0x1bc885
-	db "@"
-; 0xb888e
-
-UnknownText_0xb888e: ; 0xb888e
-	; wiggly and slickly
-	text_jump UnknownText_0x1bc89a
-	db "@"
-; 0xb8893
-
-UnknownText_0xb8893: ; 0xb8893
-	; aptly named and
-	text_jump UnknownText_0x1bc8af
-	db "@"
-; 0xb8898
-
-UnknownText_0xb8898: ; 0xb8898
-	; undeniably kind of
-	text_jump UnknownText_0x1bc8c1
-	db "@"
-; 0xb889d
-
-UnknownText_0xb889d: ; 0xb889d
-	; so, so unbearably
-	text_jump UnknownText_0x1bc8d6
-	db "@"
-; 0xb88a2
-
-UnknownText_0xb88a2: ; 0xb88a2
-	; wow, impressively
-	text_jump UnknownText_0x1bc8ea
-	db "@"
-; 0xb88a7
-
-UnknownText_0xb88a7: ; 0xb88a7
-	; almost poisonously
-	text_jump UnknownText_0x1bc8fe
-	db "@"
-; 0xb88ac
-
-UnknownText_0xb88ac: ; 0xb88ac
-	; ooh, so sensually
-	text_jump UnknownText_0x1bc913
-	db "@"
-; 0xb88b1
-
-UnknownText_0xb88b1: ; 0xb88b1
-	; so mischievously
-	text_jump UnknownText_0x1bc927
-	db "@"
-; 0xb88b6
-
-UnknownText_0xb88b6: ; 0xb88b6
-	; so very topically
-	text_jump UnknownText_0x1bc93a
-	db "@"
-; 0xb88bb
-
-UnknownText_0xb88bb: ; 0xb88bb
-	; sure addictively
-	text_jump UnknownText_0x1bc94e
-	db "@"
-; 0xb88c0
-
-UnknownText_0xb88c0: ; 0xb88c0
-	; looks in water is
-	text_jump UnknownText_0x1bc961
-	db "@"
-; 0xb88c5
-
-UnknownText_0xb88c5: ; 0xb88c5
-	; evolution must be
-	text_jump UnknownText_0x1bc975
-	db "@"
-; 0xb88ca
-
-UnknownText_0xb88ca: ; 0xb88ca
-	; provocatively
-	text_jump UnknownText_0x1bc989
-	db "@"
-; 0xb88cf
-
-UnknownText_0xb88cf: ; 0xb88cf
-	; so flipped out and
-	text_jump UnknownText_0x1bc999
-	db "@"
-; 0xb88d4
-
-UnknownText_0xb88d4: ; 0xb88d4
-	; heart-meltingly
-	text_jump UnknownText_0x1bc9ae
-	db "@"
-; 0xb88d9
-
-Functionb88d9: ; b88d9 (2e:48d9)
-	call Random
-	and $f
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_b88fe
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [wd006]
-	dec a
-	ld [wd006], a
-	ld a, $d
-	jr nz, .asm_b88fb
-	ld a, $5
-	ld [wd006], a
-	ld a, $3b
-.asm_b88fb
-	jp NextRadioLine
-; b88fe (2e:48fe)
-
-Unknown_b88fe: ; b88fe
-	dw UnknownText_0xb891e
-	dw UnknownText_0xb8923
-	dw UnknownText_0xb8928
-	dw UnknownText_0xb892d
-	dw UnknownText_0xb8932
-	dw UnknownText_0xb8937
-	dw UnknownText_0xb893c
-	dw UnknownText_0xb8941
-	dw UnknownText_0xb8946
-	dw UnknownText_0xb894b
-	dw UnknownText_0xb8950
-	dw UnknownText_0xb8955
-	dw UnknownText_0xb895a
-	dw UnknownText_0xb895f
-	dw UnknownText_0xb8964
-	dw UnknownText_0xb8969
-; b891e
-
-UnknownText_0xb891e: ; 0xb891e
-	; cute.
-	text_jump UnknownText_0x1bc9c0
-	db "@"
-; 0xb8923
-
-UnknownText_0xb8923: ; 0xb8923
-	; weird.
-	text_jump UnknownText_0x1bc9c8
-	db "@"
-; 0xb8928
-
-UnknownText_0xb8928: ; 0xb8928
-	; pleasant.
-	text_jump UnknownText_0x1bc9d1
-	db "@"
-; 0xb892d
-
-UnknownText_0xb892d: ; 0xb892d
-	; bold, sort of.
-	text_jump UnknownText_0x1bc9dd
-	db "@"
-; 0xb8932
-
-UnknownText_0xb8932: ; 0xb8932
-	; frightening.
-	text_jump UnknownText_0x1bc9ee
-	db "@"
-; 0xb8937
-
-UnknownText_0xb8937: ; 0xb8937
-	; suave & debonair!
-	text_jump UnknownText_0x1bc9fd
-	db "@"
-; 0xb893c
-
-UnknownText_0xb893c: ; 0xb893c
-	; powerful.
-	text_jump UnknownText_0x1bca11
-	db "@"
-; 0xb8941
-
-UnknownText_0xb8941: ; 0xb8941
-	; exciting.
-	text_jump UnknownText_0x1bca1d
-	db "@"
-; 0xb8946
-
-UnknownText_0xb8946: ; 0xb8946
-	; groovy!
-	text_jump UnknownText_0x1bca29
-	db "@"
-; 0xb894b
-
-UnknownText_0xb894b: ; 0xb894b
-	; inspiring.
-	text_jump UnknownText_0x1bca33
-	db "@"
-; 0xb8950
-
-UnknownText_0xb8950: ; 0xb8950
-	; friendly.
-	text_jump UnknownText_0x1bca40
-	db "@"
-; 0xb8955
-
-UnknownText_0xb8955: ; 0xb8955
-	; hot, hot, hot!
-	text_jump UnknownText_0x1bca4c
-	db "@"
-; 0xb895a
-
-UnknownText_0xb895a: ; 0xb895a
-	; stimulating.
-	text_jump UnknownText_0x1bca5d
-	db "@"
-; 0xb895f
-
-UnknownText_0xb895f: ; 0xb895f
-	; guarded.
-	text_jump UnknownText_0x1bca6c
-	db "@"
-; 0xb8964
-
-UnknownText_0xb8964: ; 0xb8964
-	; lovely.
-	text_jump UnknownText_0x1bca77
-	db "@"
-; 0xb8969
-
-UnknownText_0xb8969: ; 0xb8969
-	; speedy.
-	text_jump UnknownText_0x1bca81
-	db "@"
-; 0xb896e
-
-Functionb896e: ; b896e (2e:496e)
-	callba Function91868
-	ld hl, UnknownText_0xb8993
-	call PrintText
-	call WaitBGMap
-	ld hl, UnknownText_0xb898e
-	call PrintText
-	ld a, $3c
-	ld [wd002], a
-	ld a, $64
-	ld [wd004], a
-	ret
-; b898e (2e:498e)
-
-UnknownText_0xb898e: ; 0xb898e
-	; #MON
-	text_jump UnknownText_0x1bca8b
-	db "@"
-; 0xb8993
-
-UnknownText_0xb8993: ; 0xb8993
-	db "@"
-; 0xb8994
-
-Functionb8994: ; b8994 (2e:4994)
-	ld hl, wd004
-	dec [hl]
-	ret nz
-	hlcoord 9, 14
-	ld de, String_b89a4
-	ld a, $3d
-	jp Functionb8a00
-; b89a4 (2e:49a4)
-
-String_b89a4:
-	db "#MON@"
-; b89a9
-
-Functionb89a9: ; b89a9 (2e:49a9)
-	ld hl, wd004
-	dec [hl]
-	ret nz
-	hlcoord 1, 16
-	ld de, String_b89b9
-	ld a, $3e
-	jp Functionb8a00
-; b89b9 (2e:49b9)
-
-String_b89b9:
-	db "#MON Channel@"
-; b89c6
-
-Functionb89c6: ; b89c6 (2e:49c6)
-	ld hl, wd004
-	dec [hl]
-	ret nz
-	hlcoord 12, 16
-	ld de, String_b89d6
-	ld a, $3f
-	jp Functionb8a00
-; b89d6 (2e:49d6)
-
-String_b89d6:
-	db "@"
-; b89d7
-
-Functionb89d7: ; b89d7 (2e:49d7)
-	ld hl, wd004
-	dec [hl]
-	ret nz
-	ld de, $1d
-	callab Function91854
-	ld hl, UnknownText_0xb89ff
-	call PrintText
-	ld a, $d
-	ld [wd003], a
-	xor a
-	ld [wd005], a
-	ld a, $54
-	ld [wd002], a
-	ld a, $a
-	ld [wd004], a
-	ret
-; b89ff (2e:49ff)
-
-UnknownText_0xb89ff: ; 0xb89ff
-	db "@"
-; 0xb8a00
-
-Functionb8a00: ; b8a00 (2e:4a00)
-	ld [wd002], a
-	ld a, $64
-	ld [wd004], a
-	jp PlaceString
-
-Functionb8a0b: ; b8a0b (2e:4a0b)
-	hlcoord 0, 15
-	decoord 0, 13
-	ld bc, $28
-	jp CopyBytes
-
-Functionb8a17: ; b8a17 (2e:4a17)
-	hlcoord 1, 15
-	ld bc, $12
-	ld a, $7f
-	call ByteFill
-	hlcoord 1, 16
-	ld bc, $12
-	ld a, $7f
-	jp ByteFill
-
-Functionb8a2d: ; b8a2d (2e:4a2d)
-	push hl
-	push de
-	ld a, [CurPartySpecies]
-	dec a
-	rlca
-	rlca
-	and 3
-	ld hl, .pokedexbanks
-	ld d, 0
-	ld e, a
-	add hl, de
-	ld a, [hl]
-	pop de
-	pop hl
-	ret
-; b8a42 (2e:4a42)
-
-.pokedexbanks
-	db BANK(PokedexEntries1)
-	db BANK(PokedexEntries2)
-	db BANK(PokedexEntries3)
-	db BANK(PokedexEntries4)
-; b8a46
-
-MaryOakShow2: ; b8a46 (2e:4a46)
-	call Functionb91eb
-.asm_b8a49
-	call Random
-	cp CELEBI
-	jr nc, .asm_b8a49
-	ld c, a
-	push bc
-	ld a, c
-	call CheckCaughtMon
-	pop bc
-	jr z, .asm_b8a49
-	inc c
-	ld a, c
-	ld [CurPartySpecies], a
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, UnknownText_0xb8b30
-	ld a, $13
-	jp NextRadioLine
-
-Functionb8a6c: ; b8a6c (2e:4a6c)
-	ld a, [CurPartySpecies]
-	dec a
-	ld hl, PokedexDataPointerTable
-	ld c, a
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld a, BANK(PokedexDataPointerTable)
-	call GetFarHalfword
-	call Functionb8a2d
-	push af
-	push hl
-	call Functionb8af3
-	dec hl
-	ld [hl], $57
-	ld hl, wd26b
-	call Functionb91dc
-	pop hl
-	pop af
-	call Functionb8b11
-rept 4
-	inc hl
-endr
-	ld a, l
-	ld [wd26b], a
-	ld a, h
-	ld [wd26c], a
-	ld a, $14
-	jp Functionb86ea
-
-Functionb8aa4: ; b8aa4 (2e:4aa4)
-	call Functionb8ad4
-	ld a, $15
-	jp Functionb86ea
-
-Functionb8aac: ; b8aac (2e:4aac)
-	call Functionb8ad4
-	ld a, $16
-	jp Functionb86ea
-
-Functionb8ab4: ; b8ab4 (2e:4ab4)
-	call Functionb8ad4
-	ld a, $55
-	jp Functionb86ea
-
-Functionb8abc: ; b8abc (2e:4abc)
-	call Functionb8ad4
-	ld a, $56
-	jp Functionb86ea
-
-Functionb8ac4: ; b8ac4 (2e:4ac4)
-	call Functionb8ad4
-	ld a, $57
-	jp Functionb86ea
-
-Functionb8acc: ; b8acc (2e:4acc)
-	call Functionb8ad4
-	ld a, $1
-	jp Functionb86ea
-
-Functionb8ad4: ; b8ad4 (2e:4ad4)
-	ld a, [wd26b]
-	ld l, a
-	ld a, [wd26c]
-	ld h, a
-	ld a, [wd26d]
-	push af
-	push hl
-	call Functionb8af3
-	dec hl
-	ld [hl], $57
-	ld hl, wd26b
-	call Functionb91dc
-	pop hl
-	pop af
-	call Functionb8b11
-	ret
-
-Functionb8af3: ; b8af3 (2e:4af3)
-	ld de, wd26d
-	ld bc, $13
-	call FarCopyBytes
-	ld hl, wd26b
-	ld [hl], $0
-	inc hl
-	ld [hl], $4f
-	inc hl
-.asm_b8b05
-	ld a, [hli]
-	cp $50
-	ret z
-	cp $4e
-	ret z
-	cp $5f
-	ret z
-	jr .asm_b8b05
-
-Functionb8b11: ; b8b11 (2e:4b11)
-	ld d, a
-.asm_b8b12
-	ld a, d
-	call GetFarByte
-	inc hl
-	cp $50
-	jr z, .asm_b8b23
-	cp $4e
-	jr z, .asm_b8b23
-	cp $5f
-	jr nz, .asm_b8b12
-.asm_b8b23
-	ld a, l
-	ld [wd26b], a
-	ld a, h
-	ld [wd26c], a
-	ld a, d
-	ld [wd26d], a
-	ret
-; b8b30 (2e:4b30)
-
-UnknownText_0xb8b30: ; 0xb8b30
-	; @ @
-	text_jump UnknownText_0x1bca91
-	db "@"
-; 0xb8b35
-
-BenMonMusic1: ; b8b35 (2e:4b35)
-	call Functionb8b90
-	ld hl, UnknownText_0xb8baa
-	ld a, $17
-	jp NextRadioLine
-
-Functionb8b40: ; b8b40 (2e:4b40)
-	ld hl, UnknownText_0xb8baf
-	ld a, $18
-	jp NextRadioLine
-
-Functionb8b48: ; b8b48 (2e:4b48)
-	ld hl, UnknownText_0xb8bb4
-	ld a, $19
-	jp NextRadioLine
-
-Functionb8b50: ; b8b50 (2e:4b50)
-	call Functionb8b90
-	ld hl, UnknownText_0xb8bb9
-	ld a, $1d
-	jp NextRadioLine
-
-Functionb8b5b: ; b8b5b (2e:4b5b)
-	ld hl, UnknownText_0xb8bbe
-	ld a, $19
-	jp NextRadioLine
-
-Functionb8b63: ; b8b63 (2e:4b63)
-	ld hl, UnknownText_0xb8bc3
-	ld a, $1a
-	jp NextRadioLine
-
-Functionb8b6b: ; b8b6b (2e:4b6b)
-	call GetWeekday
-	and 1
-	ld hl, UnknownText_0xb8bc8
-	jr z, .asm_b8b78
-	ld hl, UnknownText_0xb8bcd
-.asm_b8b78
-	ld a, $1b
-	jp NextRadioLine
-
-Functionb8b7d: ; b8b7d (2e:4b7d)
-	call GetWeekday
-	and 1
-	ld hl, UnknownText_0xb8bd2
-	jr z, .asm_b8b8a
-	ld hl, UnknownText_0xb8bd7
-.asm_b8b8a
-	ld a, $1c
-	jp NextRadioLine
-
-Functionb8b8f: ; b8b8f (2e:4b8f)
-	ret
-
-Functionb8b90: ; b8b90 (2e:4b90)
-	call Function1052
-	call PrintText
-	ld de, MUSIC_POKEMON_MARCH
-	call GetWeekday
-	and 1
-	jr z, .done
-	ld de, MUSIC_POKEMON_LULLABY
-.done
-	callab Function91854
-	ret
-; b8baa (2e:4baa)
-
-UnknownText_0xb8baa: ; 0xb8baa
-	; BEN: #MON MUSIC
-	text_jump UnknownText_0x1bca99
-	db "@"
-; 0xb8baf
-
-UnknownText_0xb8baf: ; 0xb8baf
-	; CHANNEL!
-	text_jump UnknownText_0x1bcaab
-	db "@"
-; 0xb8bb4
-
-UnknownText_0xb8bb4: ; 0xb8bb4
-	; It's me, DJ BEN!
-	text_jump UnknownText_0x1bcab6
-	db "@"
-; 0xb8bb9
-
-UnknownText_0xb8bb9: ; 0xb8bb9
-	; FERN: #MUSIC!
-	text_jump UnknownText_0x1bcac8
-	db "@"
-; 0xb8bbe
-
-UnknownText_0xb8bbe: ; 0xb8bbe
-	; With DJ FERN!
-	text_jump UnknownText_0x1bcad8
-	db "@"
-; 0xb8bc3
-
-UnknownText_0xb8bc3: ; 0xb8bc3
-	; Today's @ ,
-	text_jump UnknownText_0x1bcae8
-	db "@"
-; 0xb8bc8
-
-UnknownText_0xb8bc8: ; 0xb8bc8
-	; so let us jam to
-	text_jump UnknownText_0x1bcaf6
-	db "@"
-; 0xb8bcd
-
-UnknownText_0xb8bcd: ; 0xb8bcd
-	; so chill out to
-	text_jump UnknownText_0x1bcb09
-	db "@"
-; 0xb8bd2
-
-UnknownText_0xb8bd2: ; 0xb8bd2
-	; #MON March!
-	text_jump UnknownText_0x1bcb1b
-	db "@"
-; 0xb8bd7
-
-UnknownText_0xb8bd7: ; 0xb8bd7
-	; #MON Lullaby!
-	text_jump UnknownText_0x1bcb29
-	db "@"
-; 0xb8bdc
-
-DJReed1: ; b8bdc (2e:4bdc)
-	call Functionb91eb
-	callab Functionc434
-	jr nc, .asm_b8bed
-	callab Functionc422
-.asm_b8bed
-	ld hl, UnknownText_0xb8c7e
-	ld a, $1e
-	jp NextRadioLine
-
-Functionb8bf5: ; b8bf5 (2e:4bf5)
-	ld hl, UnknownText_0xb8c83
-	ld a, $1f
-	jp NextRadioLine
-
-Functionb8bfd: ; b8bfd (2e:4bfd)
-	ld hl, UnknownText_0xb8c88
-	ld a, $20
-	jp NextRadioLine
-
-Functionb8c05: ; b8c05 (2e:4c05)
-	ld hl, UnknownText_0xb8c8d
-	ld a, $21
-	jp NextRadioLine
-
-Functionb8c0d: ; b8c0d (2e:4c0d)
-	ld hl, UnknownText_0xb8c92
-	ld a, $22
-	jp NextRadioLine
-
-Functionb8c15: ; b8c15 (2e:4c15)
-	ld hl, UnknownText_0xb8c97
-	ld a, $23
-	jp NextRadioLine
-
-Functionb8c1d: ; b8c1d (2e:4c1d)
-	ld hl, UnknownText_0xb8c9c
-	ld a, $24
-	jp NextRadioLine
-
-Functionb8c25: ; b8c25 (2e:4c25)
-	ld hl, StringBuffer1
-	ld de, wdc9f
-	ld bc, $8205
-	call PrintNum
-	ld a, $50
-	ld [StringBuffer1 + 5], a
-	ld hl, UnknownText_0xb8ca1
-	ld a, $25
-	jp NextRadioLine
-
-Functionb8c3e: ; b8c3e (2e:4c3e)
-	ld hl, UnknownText_0xb8ca6
-	ld a, $26
-	jp NextRadioLine
-
-Functionb8c46: ; b8c46 (2e:4c46)
-	ld hl, UnknownText_0xb8c9c
-	ld a, $27
-	jp NextRadioLine
-
-Functionb8c4e: ; b8c4e (2e:4c4e)
-	ld hl, UnknownText_0xb8ca1
-	ld a, $28
-	jp NextRadioLine
-
-Functionb8c56: ; b8c56 (2e:4c56)
-	ld hl, UnknownText_0xb8cab
-	ld a, $29
-	jp NextRadioLine
-
-Functionb8c5e: ; b8c5e (2e:4c5e)
-	ld hl, UnknownText_0xb8cb0
-	call Random
-	and a
-	ld a, $3
-	jr nz, .asm_b8c6b
-	ld a, $2a
-.asm_b8c6b
-	jp NextRadioLine
-
-Functionb8c6e: ; b8c6e (2e:4c6e)
-	ld hl, UnknownText_0xb8cb5
-	ld a, $2b
-	jp NextRadioLine
-
-Functionb8c76: ; b8c76 (2e:4c76)
-	ld hl, UnknownText_0xb8cba
-	ld a, $3
-	jp NextRadioLine
-; b8c7e (2e:4c7e)
-
-UnknownText_0xb8c7e: ; 0xb8c7e
-	; REED: Yeehaw! How
-	text_jump UnknownText_0x1bcb39
-	db "@"
-; 0xb8c83
-
-UnknownText_0xb8c83: ; 0xb8c83
-	; y'all doin' now?
-	text_jump UnknownText_0x1bcb4d
-	db "@"
-; 0xb8c88
-
-UnknownText_0xb8c88: ; 0xb8c88
-	; Whether you're up
-	text_jump UnknownText_0x1bcb60
-	db "@"
-; 0xb8c8d
-
-UnknownText_0xb8c8d: ; 0xb8c8d
-	; or way down low,
-	text_jump UnknownText_0x1bcb73
-	db "@"
-; 0xb8c92
-
-UnknownText_0xb8c92: ; 0xb8c92
-	; don't you miss the
-	text_jump UnknownText_0x1bcb86
-	db "@"
-; 0xb8c97
-
-UnknownText_0xb8c97: ; 0xb8c97
-	; LUCKY NUMBER SHOW!
-	text_jump UnknownText_0x1bcb9a
-	db "@"
-; 0xb8c9c
-
-UnknownText_0xb8c9c: ; 0xb8c9c
-	; This week's Lucky
-	text_jump UnknownText_0x1bcbaf
-	db "@"
-; 0xb8ca1
-
-UnknownText_0xb8ca1: ; 0xb8ca1
-	; Number is @ !
-	text_jump UnknownText_0x1bcbc2
-	db "@"
-; 0xb8ca6
-
-UnknownText_0xb8ca6: ; 0xb8ca6
-	; I'll repeat that!
-	text_jump UnknownText_0x1bcbd6
-	db "@"
-; 0xb8cab
-
-UnknownText_0xb8cab: ; 0xb8cab
-	; Match it and go to
-	text_jump UnknownText_0x1bcbe9
-	db "@"
-; 0xb8cb0
-
-UnknownText_0xb8cb0: ; 0xb8cb0
-	; the RADIO TOWER!
-	text_jump UnknownText_0x1bcbfe
-	db "@"
-; 0xb8cb5
-
-UnknownText_0xb8cb5: ; 0xb8cb5
-	; …Repeating myself
-	text_jump UnknownText_0x1bcc11
-	db "@"
-; 0xb8cba
-
-UnknownText_0xb8cba: ; 0xb8cba
-	; gets to be a drag…
-	text_jump UnknownText_0x1bcc25
-	db "@"
-; 0xb8cbf
-
-Functionb8cbf: ; b8cbf (2e:4cbf)
-	call Functionb91eb
-	ld hl, UnknownText_0xb8ce3
-	ld a, $2c
-	jp NextRadioLine
-
-Functionb8cca: ; b8cca (2e:4cca)
-	ld hl, UnknownText_0xb8ce8
-	ld a, $2d
-	jp NextRadioLine
-
-Functionb8cd2: ; b8cd2 (2e:4cd2)
-	ld hl, UnknownText_0xb8ced
-	call Random
-	cp $7b
-	ld a, $2e
-	jr c, .asm_b8ce0
-	ld a, $30
-.asm_b8ce0
-	jp NextRadioLine
-; b8ce3 (2e:4ce3)
-
-UnknownText_0xb8ce3: ; 0xb8ce3
-	; PLACES AND PEOPLE!
-	text_jump UnknownText_0x1bcc3a
-	db "@"
-; 0xb8ce8
-
-UnknownText_0xb8ce8: ; 0xb8ce8
-	; Brought to you by
-	text_jump UnknownText_0x1bcc4f
-	db "@"
-; 0xb8ced
-
-UnknownText_0xb8ced: ; 0xb8ced
-	; me, DJ LILY!
-	text_jump UnknownText_0x1bcc63
-	db "@"
-; 0xb8cf2
-
-Functionb8cf2: ; b8cf2 (2e:4cf2)
-	call Random
-	and $7f
-	inc a
-	cp $43
-	jr nc, Functionb8cf2
-	push af
-	ld hl, Unknown_b8d3e
-	ld a, [StatusFlags]
-	bit 6, a
-	jr z, .NotMet
-	ld hl, Unknown_b8d43
-	ld a, [KantoBadges]
-	cp %11111111
-	jr nz, .NotMet
-	ld hl, Unknown_b8d4b
-.NotMet
-	pop af
-	ld c, a
-	ld de, $1
-	push bc
-	call IsInArray
-	pop bc
-	jr c, Functionb8cf2
-	push bc
-	callab Function3952d
-	ld de, StringBuffer1
-	call CopyName1
-	pop bc
-	ld b, $1
-	callab GetTrainerName
-	ld hl, UnknownText_0xb8d51
-	ld a, $2f
-	jp NextRadioLine
-; b8d3e (2e:4d3e)
-
-Unknown_b8d3e: db $0b, $0d, $0e, $0f, $10
-Unknown_b8d43: db $11, $12, $13, $15, $1a, $23, $2e, $40
-Unknown_b8d4b: db $09, $0a, $0c, $2a, $3f
-               db $ff
-; b8d51
-
-UnknownText_0xb8d51: ; 0xb8d51
-	; @  @ @
-	text_jump UnknownText_0x1bcc72
-	db "@"
-; 0xb8d56
-
-Functionb8d56: ; b8d56 (2e:4d56)
-	call Random
-	and $f
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_b8d7d
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call Random
-	cp $a
-	ld a, $5
-	jr c, .asm_b8d7a
-	call Random
-	cp $7b
-	ld a, $2e
-	jr c, .asm_b8d7a
-	ld a, $30
-.asm_b8d7a
-	jp NextRadioLine
-; b8d7d (2e:4d7d)
-
-Unknown_b8d7d: ; b8d7d
-	dw UnknownText_0xb8d9d
-	dw UnknownText_0xb8da2
-	dw UnknownText_0xb8da7
-	dw UnknownText_0xb8dac
-	dw UnknownText_0xb8db1
-	dw UnknownText_0xb8db6
-	dw UnknownText_0xb8dbb
-	dw UnknownText_0xb8dc0
-	dw UnknownText_0xb8dc5
-	dw UnknownText_0xb8dca
-	dw UnknownText_0xb8dcf
-	dw UnknownText_0xb8dd4
-	dw UnknownText_0xb8dd9
-	dw UnknownText_0xb8dde
-	dw UnknownText_0xb8de3
-	dw UnknownText_0xb8de8
-; b8d9d
-
-UnknownText_0xb8d9d: ; 0xb8d9d
-	; is cute.
-	text_jump UnknownText_0x1bcc80
-	db "@"
-; 0xb8da2
-
-UnknownText_0xb8da2: ; 0xb8da2
-	; is sort of lazy.
-	text_jump UnknownText_0x1bcc8b
-	db "@"
-; 0xb8da7
-
-UnknownText_0xb8da7: ; 0xb8da7
-	; is always happy.
-	text_jump UnknownText_0x1bcc9e
-	db "@"
-; 0xb8dac
-
-UnknownText_0xb8dac: ; 0xb8dac
-	; is quite noisy.
-	text_jump UnknownText_0x1bccb1
-	db "@"
-; 0xb8db1
-
-UnknownText_0xb8db1: ; 0xb8db1
-	; is precocious.
-	text_jump UnknownText_0x1bccc3
-	db "@"
-; 0xb8db6
-
-UnknownText_0xb8db6: ; 0xb8db6
-	; is somewhat bold.
-	text_jump UnknownText_0x1bccd4
-	db "@"
-; 0xb8dbb
-
-UnknownText_0xb8dbb: ; 0xb8dbb
-	; is too picky!
-	text_jump UnknownText_0x1bcce8
-	db "@"
-; 0xb8dc0
-
-UnknownText_0xb8dc0: ; 0xb8dc0
-	; is sort of OK.
-	text_jump UnknownText_0x1bccf8
-	db "@"
-; 0xb8dc5
-
-UnknownText_0xb8dc5: ; 0xb8dc5
-	; is just so-so.
-	text_jump UnknownText_0x1bcd09
-	db "@"
-; 0xb8dca
-
-UnknownText_0xb8dca: ; 0xb8dca
-	; is actually great.
-	text_jump UnknownText_0x1bcd1a
-	db "@"
-; 0xb8dcf
-
-UnknownText_0xb8dcf: ; 0xb8dcf
-	; is just my type.
-	text_jump UnknownText_0x1bcd2f
-	db "@"
-; 0xb8dd4
-
-UnknownText_0xb8dd4: ; 0xb8dd4
-	; is so cool, no?
-	text_jump UnknownText_0x1bcd42
-	db "@"
-; 0xb8dd9
-
-UnknownText_0xb8dd9: ; 0xb8dd9
-	; is inspiring!
-	text_jump UnknownText_0x1bcd54
-	db "@"
-; 0xb8dde
-
-UnknownText_0xb8dde: ; 0xb8dde
-	; is kind of weird.
-	text_jump UnknownText_0x1bcd64
-	db "@"
-; 0xb8de3
-
-UnknownText_0xb8de3: ; 0xb8de3
-	; is right for me?
-	text_jump UnknownText_0x1bcd78
-	db "@"
-; 0xb8de8
-
-UnknownText_0xb8de8: ; 0xb8de8
-	; is definitely odd!
-	text_jump UnknownText_0x1bcd8b
-	db "@"
-; 0xb8ded
-
-Functionb8ded: ; b8ded (2e:4ded)
-	call Random
-	cp $9
-	jr nc, Functionb8ded
-	ld hl, Unknown_b8e11
-	ld c, a
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld b, [hl]
-	inc hl
-	ld c, [hl]
-	call GetWorldMapLocation
-	ld e, a
-	callba GetLandmarkName
-	ld hl, UnknownText_0xb8e23
-	ld a, $31
-	jp NextRadioLine
-; b8e11 (2e:4e11)
-
-Unknown_b8e11: ; b8e11
-	map PALLET_TOWN
-	map ROUTE_22
-	map PEWTER_CITY
-	map CERULEAN_POLICE_STATION
-	map ROUTE_12
-	map ROUTE_11
-	map ROUTE_16
-	map ROUTE_14
-	map CINNABAR_POKECENTER_2F_BETA
-; b8e23
-
-UnknownText_0xb8e23: ; 0xb8e23
-	; @ @
-	text_jump UnknownText_0x1bcda0
-	db "@"
-; 0xb8e28
-
-Functionb8e28: ; b8e28 (2e:4e28)
-	call Random
-	and $f
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_b8e52
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call Functionb91dc
-	call Random
-	cp $a
-	ld a, $5
-	jr c, .asm_b8e4f
-	call Random
-	cp $7b
-	ld a, $2e
-	jr c, .asm_b8e4f
-	ld a, $30
-.asm_b8e4f
-	jp Functionb86ea
-; b8e52 (2e:4e52)
-
-Unknown_b8e52: ; b8e52
-	dw UnknownText_0xb8d9d
-	dw UnknownText_0xb8da2
-	dw UnknownText_0xb8da7
-	dw UnknownText_0xb8dac
-	dw UnknownText_0xb8db1
-	dw UnknownText_0xb8db6
-	dw UnknownText_0xb8dbb
-	dw UnknownText_0xb8dc0
-	dw UnknownText_0xb8dc5
-	dw UnknownText_0xb8dca
-	dw UnknownText_0xb8dcf
-	dw UnknownText_0xb8dd4
-	dw UnknownText_0xb8dd9
-	dw UnknownText_0xb8dde
-	dw UnknownText_0xb8de3
-	dw UnknownText_0xb8de8
-; b8e72
-
-Functionb8e72: ; b8e72 (2e:4e72)
-	call Functionb91eb
-	ld hl, UnknownText_0xb8ec5
-	ld a, $32
-	jp NextRadioLine
-
-Functionb8e7d: ; b8e7d (2e:4e7d)
-	ld hl, UnknownText_0xb8eca
-	ld a, $33
-	jp NextRadioLine
-
-Functionb8e85: ; b8e85 (2e:4e85)
-	ld hl, UnknownText_0xb8ecf
-	ld a, $34
-	jp NextRadioLine
-
-Functionb8e8d: ; b8e8d (2e:4e8d)
-	ld hl, UnknownText_0xb8ed4
-	ld a, $35
-	jp NextRadioLine
-
-Functionb8e95: ; b8e95 (2e:4e95)
-	ld hl, UnknownText_0xb8ed9
-	ld a, $36
-	jp NextRadioLine
-
-Functionb8e9d: ; b8e9d (2e:4e9d)
-	ld hl, UnknownText_0xb8ede
-	ld a, $37
-	jp NextRadioLine
-
-Functionb8ea5: ; b8ea5 (2e:4ea5)
-	ld hl, UnknownText_0xb8ee3
-	ld a, $38
-	jp NextRadioLine
-
-Functionb8ead: ; b8ead (2e:4ead)
-	ld hl, UnknownText_0xb8ee8
-	ld a, $39
-	jp NextRadioLine
-
-Functionb8eb5: ; b8eb5 (2e:4eb5)
-	ld hl, UnknownText_0xb8eed
-	ld a, $3a
-	jp NextRadioLine
-
-Functionb8ebd: ; b8ebd (2e:4ebd)
-	ld hl, UnknownText_0xb8ef2
-	ld a, $7
-	jp NextRadioLine
-; b8ec5 (2e:4ec5)
-
-UnknownText_0xb8ec5: ; 0xb8ec5
-	; … …Ahem, we are
-	text_jump UnknownText_0x1bcda8
-	db "@"
-; 0xb8eca
-
-UnknownText_0xb8eca: ; 0xb8eca
-	; TEAM ROCKET!
-	text_jump UnknownText_0x1bcdba
-	db "@"
-; 0xb8ecf
-
-UnknownText_0xb8ecf: ; 0xb8ecf
-	; After three years
-	text_jump UnknownText_0x1bcdc9
-	db "@"
-; 0xb8ed4
-
-UnknownText_0xb8ed4: ; 0xb8ed4
-	; of preparation, we
-	text_jump UnknownText_0x1bcddd
-	db "@"
-; 0xb8ed9
-
-UnknownText_0xb8ed9: ; 0xb8ed9
-	; have risen again
-	text_jump UnknownText_0x1bcdf2
-	db "@"
-; 0xb8ede
-
-UnknownText_0xb8ede: ; 0xb8ede
-	; from the ashes!
-	text_jump UnknownText_0x1bce05
-	db "@"
-; 0xb8ee3
-
-UnknownText_0xb8ee3: ; 0xb8ee3
-	; GIOVANNI! @ Can you
-	text_jump UnknownText_0x1bce17
-	db "@"
-; 0xb8ee8
-
-UnknownText_0xb8ee8: ; 0xb8ee8
-	; hear?@  We did it!
-	text_jump UnknownText_0x1bce2e
-	db "@"
-; 0xb8eed
-
-UnknownText_0xb8eed: ; 0xb8eed
-	; @ Where is our boss?
-	text_jump UnknownText_0x1bce44
-	db "@"
-; 0xb8ef2
-
-UnknownText_0xb8ef2: ; 0xb8ef2
-	; @ Is he listening?
-	text_jump UnknownText_0x1bce5c
-	db "@"
-; 0xb8ef7
-
-Functionb8ef7: ; b8ef7 (2e:4ef7)
-	call Functionb91eb
-	ld a, $1
-	ld [wd005], a
-	ret
-
-Functionb8f00: ; b8f00 (2e:4f00)
-	call Functionb91eb
-	ld a, $1
-	ld [wd005], a
-	ret
-
-Functionb8f09: ; b8f09 (2e:4f09)
-	call Functionb91eb
-	ld a, $1
-	ld [wd005], a
-	ret
-
-Functionb8f12: ; b8f12 (2e:4f12)
-	call Functionb9169
-	jp nc, Functionb8f22
-	ld a, [wd005]
-	and a
-	jp z, Functionb912a
-	jp Functionb90c5
-
-Functionb8f22: ; b8f22 (2e:4f22)
-	call Functionb91eb
-	ld a, [hBGMapMode] ; $ff00+$d4
-	push af
-	xor a
-	ld [hBGMapMode], a ; $ff00+$d4
-	ld de, String_b9171
-	hlcoord 2, 9
-	call PlaceString
-	pop af
-	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, UnknownText_0xb9182
-	ld a, $40
-	jp NextRadioLine
-
-Functionb8f3f: ; b8f3f (2e:4f3f)
-	ld hl, UnknownText_0xb9187
-	ld a, $41
-	jp NextRadioLine
-
-Functionb8f47: ; b8f47 (2e:4f47)
-	call Functionb9169
-	ld hl, UnknownText_0xb918c
-	jp c, Functionb90b9
-	ld a, $42
-	jp NextRadioLine
-
-Functionb8f55: ; b8f55 (2e:4f55)
-	call Functionb9169
-	jp c, Functionb90c5
-	ld a, [wdc4a]
-	ld hl, WeeklyFlags
-	bit 7, [hl]
-	jr nz, .asm_b8f83
-.asm_b8f65
-	call Random
-	and $f
-	cp $b
-	jr nc, .asm_b8f65
-	swap a
-	ld e, a
-.asm_b8f71
-	call Random
-	and $3
-	cp $3
-	jr nc, .asm_b8f71
-	add e
-	ld [wdc4a], a
-	ld hl, WeeklyFlags
-	set 7, [hl]
-.asm_b8f83
-	ld c, a
-	call Functionb8f8f
-	ld hl, UnknownText_0xb9191
-	ld a, $43
-	jp NextRadioLine
-
-Functionb8f8f: ; b8f8f
-	ld a, c
-	swap a
-	and $f
-	ld hl, Unknown_b8ff9
-	ld d, 0
-	ld e, a
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [hli]
-	ld b, a
-	push hl
-	inc hl
-	ld a, c
-	and $f
-	ld c, a
-	push hl
-	ld hl, Jumptable_b8fb8
-	ld e, b
-rept 2
-	add hl, de
-endr
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	pop de
-	call _hl_
-	pop hl
-	ld c, [hl]
-	ret
-; b8fb8
-
-
-Jumptable_b8fb8: ; b8fb8 (2e:4fb8)
-	dw Functionb8fc0
-	dw Functionb8fc7
-	dw Functionb8fce
-	dw Functionb8fde
-
-
-Functionb8fc0: ; b8fc0 (2e:4fc0)
-	call Functionb8fd5
-	call GetPokemonName
-	ret
-
-Functionb8fc7: ; b8fc7 (2e:4fc7)
-	call Functionb8fd5
-	call GetItemName
-	ret
-
-Functionb8fce: ; b8fce (2e:4fce)
-	call Functionb8fd5
-	call GetMoveName
-	ret
-
-Functionb8fd5: ; b8fd5 (2e:4fd5)
-	ld h, 0
-	ld l, c
-	add hl, de
-	ld a, [hl]
-	ld [wd265], a
-	ret
-
-Functionb8fde: ; b8fde (2e:4fde)
-	ld a, c
-	and a
-	jr z, .asm_b8feb
-.asm_b8fe2
-	ld a, [de]
-	inc de
-	cp $50
-	jr nz, .asm_b8fe2
-	dec c
-	jr nz, .asm_b8fe2
-.asm_b8feb
-	ld hl, StringBuffer1
-.asm_b8fee
-	ld a, [de]
-	inc de
-	ld [hli], a
-	cp $50
-	jr nz, .asm_b8fee
-	ld de, StringBuffer1
-	ret
-; b8ff9 (2e:4ff9)
-
-Unknown_b8ff9: ; b8ff9
-	dw Unknown_b900f
-	dw Unknown_b9014
-	dw Unknown_b9019
-	dw Unknown_b901e
-	dw Unknown_b9023
-	dw Unknown_b9028
-	dw Unknown_b902d
-	dw Unknown_b905a
-	dw Unknown_b906d
-	dw Unknown_b9072
-	dw Unknown_b9077
-; b900f
-
-Unknown_b900f: db 0, 10, CYNDAQUIL, TOTODILE, CHIKORITA
-Unknown_b9014: db 1, 12, FRESH_WATER, SODA_POP, LEMONADE
-Unknown_b9019: db 1, 12, POTION, ANTIDOTE, PARLYZ_HEAL
-Unknown_b901e: db 1, 12, POKE_BALL, GREAT_BALL, ULTRA_BALL
-Unknown_b9023: db 0, 10, PIKACHU, RATTATA, GEODUDE
-Unknown_b9028: db 0, 10, HOOTHOOT, SPINARAK, DROWZEE
-Unknown_b902d: db 3, 16, "NEW BARK TOWN@", "CHERRYGROVE CITY@", "AZALEA TOWN@"
-Unknown_b905a: db 3,  6, "FLYING@", "BUG@", "GRASS@"
-Unknown_b906d: db 2, 12, TACKLE, GROWL, MUD_SLAP
-Unknown_b9072: db 1, 12, X_ATTACK, X_DEFEND, X_SPEED
-Unknown_b9077: db 3, 13, "#MON Talk@", "#MON Music@", "Lucky Channel@"
-; b909c
-
-Functionb909c: ; b909c (2e:509c)
-	ld hl, UnknownText_0xb9196
-	ld a, $44
-	jp NextRadioLine
-
-Functionb90a4: ; b90a4 (2e:50a4)
-	ld hl, UnknownText_0xb919b
-	ld a, $45
-	jp NextRadioLine
-
-Functionb90ac: ; b90ac (2e:50ac)
-	call Functionb9169
-	ld hl, UnknownText_0xb91a0
-	jr c, Functionb90b9
-	ld a, $4
-	jp NextRadioLine
-
-Functionb90b9: ; b90b9 (2e:50b9)
-	push hl
-	ld hl, WeeklyFlags
-	res 7, [hl]
-	pop hl
-	ld a, $46
-	jp NextRadioLine
-
-Functionb90c5: ; b90c5 (2e:50c5)
-	ld hl, WeeklyFlags
-	res 7, [hl]
-	ld hl, UnknownText_0xb91d2
-	ld a, $47
-	jp NextRadioLine
-
-Functionb90d2: ; b90d2 (2e:50d2)
-	ld hl, UnknownText_0xb91a5
-	ld a, $48
-	jp NextRadioLine
-
-Functionb90da: ; b90da (2e:50da)
-	ld hl, UnknownText_0xb91aa
-	ld a, $49
-	jp NextRadioLine
-
-Functionb90e2: ; b90e2 (2e:50e2)
-	ld hl, UnknownText_0xb91af
-	ld a, $4a
-	jp NextRadioLine
-
-Functionb90ea: ; b90ea (2e:50ea)
-	ld hl, UnknownText_0xb91b4
-	ld a, $4b
-	jp NextRadioLine
-
-Functionb90f2: ; b90f2 (2e:50f2)
-	ld hl, UnknownText_0xb91b9
-	ld a, $4c
-	jp NextRadioLine
-
-Functionb90fa: ; b90fa (2e:50fa)
-	ld hl, UnknownText_0xb91be
-	ld a, $4d
-	jp NextRadioLine
-
-Functionb9102: ; b9102 (2e:5102)
-	ld hl, UnknownText_0xb91c3
-	ld a, $4e
-	jp NextRadioLine
-
-Functionb910a: ; b910a (2e:510a)
-	ld hl, UnknownText_0xb91c8
-	ld a, $4f
-	jp NextRadioLine
-
-Functionb9112: ; b9112 (2e:5112)
-	ld hl, UnknownText_0xb91cd
-	ld a, $50
-	jp NextRadioLine
-
-Functionb911a: ; b911a (2e:511a)
-	ld hl, UnknownText_0xb91d2
-	ld a, $51
-	jp NextRadioLine
-
-Functionb9122: ; b9122 (2e:5122)
-	ld hl, UnknownText_0xb91d2
-	ld a, $52
-	jp NextRadioLine
-
-Functionb912a: ; b912a (2e:512a)
-	ld a, [hBGMapMode] ; $ff00+$d4
-	push af
-	callba NoRadioMusic
-	callba NoRadioName
-	pop af
-	ld [hBGMapMode], a ; $ff00+$d4
-	ld hl, WeeklyFlags
-	res 7, [hl]
-	ld a, $4
-	ld [wd002], a
-	xor a
-	ld [wd005], a
-	ld hl, UnknownText_0xb91d7
-	ld a, $53
-	jp NextRadioLine
-
-Functionb9152: ; b9152 (2e:5152)
-	ld a, $4
-	ld [wd002], a
-	xor a
-	ld [wd005], a
-	call Functionb9169
-	jp nc, Functionb8f12
-	ld hl, UnknownText_0xb91d7
-	ld a, $53
-	jp NextRadioLine
-
-Functionb9169: ; b9169 (2e:5169)
-	call UpdateTime
-	ld a, [hHours] ; $ff00+$94
-	cp $12
-	ret
-; b9171 (2e:5171)
-
-String_b9171:
-	db "BUENA'S PASSWORD@"
-; b9182
-
-UnknownText_0xb9182: ; 0xb9182
-	; BUENA: BUENA here!
-	text_jump UnknownText_0x1bce72
-	db "@"
-; 0xb9187
-
-UnknownText_0xb9187: ; 0xb9187
-	; Today's password!
-	text_jump UnknownText_0x1bce87
-	db "@"
-; 0xb918c
-
-UnknownText_0xb918c: ; 0xb918c
-	; Let me think… It's
-	text_jump UnknownText_0x1bce9a
-	db "@"
-; 0xb9191
-
-UnknownText_0xb9191: ; 0xb9191
-	; @ !
-	text_jump UnknownText_0x1bceae
-	db "@"
-; 0xb9196
-
-UnknownText_0xb9196: ; 0xb9196
-	; Don't forget it!
-	text_jump UnknownText_0x1bceb7
-	db "@"
-; 0xb919b
-
-UnknownText_0xb919b: ; 0xb919b
-	; I'm in GOLDENROD's
-	text_jump UnknownText_0x1bcec9
-	db "@"
-; 0xb91a0
-
-UnknownText_0xb91a0: ; 0xb91a0
-	; RADIO TOWER!
-	text_jump UnknownText_0x1bcedc
-	db "@"
-; 0xb91a5
-
-UnknownText_0xb91a5: ; 0xb91a5
-	; BUENA: Oh my…
-	text_jump UnknownText_0x1bceeb
-	db "@"
-; 0xb91aa
-
-UnknownText_0xb91aa: ; 0xb91aa
-	; It's midnight! I
-	text_jump UnknownText_0x1bcefb
-	db "@"
-; 0xb91af
-
-UnknownText_0xb91af: ; 0xb91af
-	; have to shut down!
-	text_jump UnknownText_0x1bcf0d
-	db "@"
-; 0xb91b4
-
-UnknownText_0xb91b4: ; 0xb91b4
-	; Thanks for tuning
-	text_jump UnknownText_0x1bcf22
-	db "@"
-; 0xb91b9
-
-UnknownText_0xb91b9: ; 0xb91b9
-	; in to the end! But
-	text_jump UnknownText_0x1bcf36
-	db "@"
-; 0xb91be
-
-UnknownText_0xb91be: ; 0xb91be
-	; don't stay up too
-	text_jump UnknownText_0x1bcf4b
-	db "@"
-; 0xb91c3
-
-UnknownText_0xb91c3: ; 0xb91c3
-	; late! Presented to
-	text_jump UnknownText_0x1bcf5e
-	db "@"
-; 0xb91c8
-
-UnknownText_0xb91c8: ; 0xb91c8
-	; you by DJ BUENA!
-	text_jump UnknownText_0x1bcf73
-	db "@"
-; 0xb91cd
-
-UnknownText_0xb91cd: ; 0xb91cd
-	; I'm outta here!
-	text_jump UnknownText_0x1bcf86
-	db "@"
-; 0xb91d2
-
-UnknownText_0xb91d2: ; 0xb91d2
-	; …
-	text_jump UnknownText_0x1bcf96
-	db "@"
-; 0xb91d7
-
-UnknownText_0xb91d7: ; 0xb91d7
-	;
-	text_jump UnknownText_0x1bcf99
-	db "@"
-; 0xb91dc
-
-Functionb91dc: ; b91dc (2e:51dc)
-	ld a, [hl]
-	cp $16 ; TX_FAR
-	jp z, FarJumpText
-	ld de, wd00c
-	ld bc, $28
-	jp CopyBytes
-
-Functionb91eb: ; b91eb (2e:51eb)
-	ld a, [wd005]
-	and a
-	ret nz
-	call Function1052
-	call PrintText
-	ld hl, RadioChannelSongs
-	ld a, [wd002]
-	ld c, a
-	ld b, 0
-rept 2
-	add hl, bc
-endr
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	callab Function91854
-	ret
-; b920b (2e:520b)
-
-RadioChannelSongs: ; b920b
-	dw MUSIC_POKEMON_TALK
-	dw MUSIC_POKEMON_CENTER
-	dw MUSIC_TITLE
-	dw MUSIC_GAME_CORNER
-	dw MUSIC_BUENAS_PASSWORD
-	dw MUSIC_VIRIDIAN_CITY
-	dw MUSIC_BICYCLE
-	dw MUSIC_ROCKET_OVERTURE
-	dw MUSIC_POKE_FLUTE_CHANNEL
-	dw MUSIC_RUINS_OF_ALPH_RADIO
-	dw MUSIC_LAKE_OF_RAGE_ROCKET_RADIO
-; b9221
-
-NextRadioLine: ; b9221 (2e:5221)
-	push af
-	call Functionb91dc
-	pop af
-	jp Functionb86ea
-; b9229
+PlayRadioShow: ; b8612
+; If we're already in the radio program proper, we don't need to be here.
+	ld a, [wd002]
+	cp 8
+	jr nc, .ok
+; If Team Rocket is not occupying the radio tower, we don't need to be here.
+	ld a, [StatusFlags2]
+	bit 0, a ; checkflag ENGINE_ROCKETS_IN_RADIO_TOWER
+	jr z, .ok
+; If we're in Kanto, we don't need to be here.
+	call IsInJohto
+	and a
+	jr nz, .ok
+; Team Rocket broadcasts on all stations.
+	ld a, 7
+	ld [wd002], a
+.ok
+; Jump to the currently loaded station.  The index to which we need to jump is in wd002.
+	ld a, [wd002]
+	ld e, a
+	ld d, 0
+	ld hl, RadioJumptable
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+
+RadioJumptable: ; b863a (2e:463a)
+	dw OaksPkmnTalk1  ; $00
+	dw PokedexShow1 ; $01
+	dw BenMonMusic1  ; $02
+	dw LuckyNumberShow1 ; $03
+	dw BuenasPassword1 ; $04
+	dw PeoplePlaces1 ; $05
+	dw FernMonMusic1 ; $06
+	dw RocketRadio1 ; $07
+	dw PokeFluteRadio ; $08
+	dw EvolutionRadio ; $09
+	dw UnownRadio ; $0a
+; OaksPkmnTalk
+	dw OaksPkmnTalk2  ; $0b
+	dw OaksPkmnTalk3  ; $0c
+	dw OaksPkmnTalk4  ; $0d
+	dw OaksPkmnTalk5  ; $0e
+	dw OaksPkmnTalk6  ; $0f
+	dw OaksPkmnTalk7  ; $10
+	dw OaksPkmnTalk8  ; $11
+	dw OaksPkmnTalk9  ; $12
+	dw OaksPkmnTalk10 ; $13
+	dw OaksPkmnTalk11 ; $14
+	dw OaksPkmnTalk12 ; $15
+	dw OaksPkmnTalk13 ; $16
+; Ben Music
+	dw BenMonMusic2  ; $17
+	dw BenMonMusic3  ; $18
+	dw BenFernMusic4 ; $19
+	dw BenFernMusic5 ; $1a
+	dw BenFernMusic6 ; $1b
+	dw BenFernMusic7 ; $1c
+	dw FernMonMusic2 ; $1d
+; Lucky Number Show
+	dw LuckyNumberShow2 ; $1e
+	dw LuckyNumberShow3 ; $1f
+	dw LuckyNumberShow4 ; $20
+	dw LuckyNumberShow5 ; $21
+	dw LuckyNumberShow6 ; $22
+	dw LuckyNumberShow7 ; $23
+	dw LuckyNumberShow8 ; $24
+	dw LuckyNumberShow9 ; $25
+	dw LuckyNumberShow10 ; $26
+	dw LuckyNumberShow11 ; $27
+	dw LuckyNumberShow12 ; $28
+	dw LuckyNumberShow13 ; $29
+	dw LuckyNumberShow14 ; $2a
+	dw LuckyNumberShow15 ; $2b
+	dw LuckyNumberShow16 ; $2c
+	dw LuckyNumberShow17 ; $2d
+	dw LuckyNumberShow18 ; $2e
+	dw LuckyNumberShow19 ; $2f
+	dw LuckyNumberShow20 ; $30
+	dw LuckyNumberShow21 ; $31
+; Rocket Radio
+	dw RocketRadio2 ; $32
+	dw RocketRadio3 ; $33
+	dw RocketRadio4 ; $34
+	dw RocketRadio5 ; $35
+	dw RocketRadio6 ; $36
+	dw RocketRadio7 ; $37
+	dw RocketRadio8 ; $38
+	dw RocketRadio9 ; $39
+	dw RocketRadio10 ; $3a
+; More Pokemon Channel stuff
+	dw OaksPkmnTalk14 ; $3b
+	dw OaksPkmnTalk15 ; $3c
+	dw OaksPkmnTalk16 ; $3d
+	dw OaksPkmnTalk17 ; $3e
+	dw OaksPkmnTalk18 ; $3f
+; Buenas Password
+	dw BuenasPassword2 ; $40
+	dw BuenasPassword3 ; $41
+	dw BuenasPassword4 ; $42
+	dw BuenasPassword5 ; $43
+	dw BuenasPassword6 ; $44
+	dw BuenasPassword7 ; $45
+	dw BuenasPassword8 ; $46
+	dw BuenasPassword9 ; $47
+	dw BuenasPassword10 ; $48
+	dw BuenasPassword11 ; $49
+	dw BuenasPassword12 ; $4a
+	dw BuenasPassword13 ; $4b
+	dw BuenasPassword14 ; $4c
+	dw BuenasPassword15 ; $4d
+	dw BuenasPassword16 ; $4e
+	dw BuenasPassword17 ; $4f
+	dw BuenasPassword18 ; $50
+	dw BuenasPassword19 ; $51
+	dw BuenasPassword20 ; $52
+	dw BuenasPassword21 ; $53
+	dw RadioScroll ; $54
+; More Pokemon Channel stuff
+	dw OaksPkmnTalk19 ; $55
+	dw OaksPkmnTalk20 ; $56
+	dw OaksPkmnTalk21 ; $57
+
+
+PrintRadioLine: ; b86ea (2e:46ea)
+	ld [wd003], a
+	ld hl, wd00c
+	ld a, [wd005]
+	cp $2
+	jr nc, .print
+	inc hl
+	ld [hl], $0
+	inc a
+	ld [wd005], a
+	cp $2
+	jr nz, .print
+	bccoord 1, 16
+	call PlaceWholeStringInBoxAtOnce
+	jr .skip
+.print
+	call PrintTextBoxText
+.skip
+	ld a, $54
+	ld [wd002], a
+	ld a, $64
+	ld [wd004], a
+	ret
+; b8718 (2e:4718)
+
+Functionb8718: ; b8718
+	push hl
+	ld b, SCREEN_WIDTH * 2
+.greater_than_10
+	ld a, [hl]
+	cp "."
+	jr nz, .next
+	ld [hl], " "
+
+.next
+	inc hl
+	dec b
+	jr nz, .greater_than_10
+	pop hl
+	ret
+; b8728
+
+RadioScroll: ; b8728 (2e:4728)
+	ld hl, wd004
+	ld a, [hl]
+	and a
+	jr z, .proceed
+	dec [hl]
+	ret
+.proceed
+	ld a, [wd003]
+	ld [wd002], a
+	ld a, [wd005]
+	cp 1
+	call nz, CopyBottomLineToTopLine
+	jp ClearBottomLine
+
+OaksPkmnTalk1: ; b8742 (2e:4742)
+	ld a, $5
+	ld [wd006], a
+	call StartRadioStation
+	ld hl, UnknownText_0xb8820
+	ld a, $b
+	jp NextRadioLine
+
+OaksPkmnTalk2: ; b8752 (2e:4752)
+	ld hl, UnknownText_0xb8825
+	ld a, $c
+	jp NextRadioLine
+
+OaksPkmnTalk3: ; b875a (2e:475a)
+	ld hl, UnknownText_0xb882a
+	ld a, $d
+	jp NextRadioLine
+
+OaksPkmnTalk4: ; b8762 (2e:4762)
+; Choose a random root, and a random Pokemon from that route.
+	call Random
+	and $1f
+	cp $f
+	jr nc, OaksPkmnTalk4
+	ld hl, Unknown_b87f2
+	ld c, a
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld b, [hl]
+	inc hl
+	ld c, [hl]
+	push bc
+
+	ld hl, WildMons1
+.greater_than_10
+	ld a, BANK(WildMons1)
+	call GetFarByte
+	cp -1
+	jr z, .done2
+	inc hl
+	cp b
+	jr nz, .next
+	ld a, BANK(WildMons1)
+	call GetFarByte
+	cp c
+	jr z, .done
+.next
+	dec hl
+	ld de, $2f
+	add hl, de
+	jr .greater_than_10
+
+.done
+rept 4
+	inc hl
+endr
+
+.both_bits_set
+	call Random
+	and 3
+	cp 3
+	jr z, .both_bits_set
+
+	ld bc, $e
+	call AddNTimes
+.greater_than_102
+	call Random
+	and 7
+	cp 2
+	jr c, .greater_than_102
+	cp 5
+	jr nc, .greater_than_102
+	ld e, a
+	ld d, 0
+rept 2
+	add hl, de
+endr
+	inc hl
+	ld a, BANK(WildMons1)
+	call GetFarByte
+	ld [wd265], a
+	ld [CurPartySpecies], a
+	call GetPokemonName
+	ld hl, StringBuffer1
+	ld de, wd050
+	ld bc, $b
+	call CopyBytes
+
+	pop bc
+	call GetWorldMapLocation
+	ld e, a
+	callba GetLandmarkName
+	ld hl, UnknownText_0xb882f
+	call CopyRadioTextToRAM
+	ld a, $e
+	jp PrintRadioLine
+
+.done2
+	pop bc
+	ld a, $0
+	jp PrintRadioLine
+; b87f2 (2e:47f2)
+
+Unknown_b87f2: ; b87f2
+	map ROUTE_29
+	map ROUTE_46
+	map ROUTE_30
+	map ROUTE_32
+	map ROUTE_34
+	map ROUTE_35
+	map ROUTE_37
+	map ROUTE_38
+	map ROUTE_39
+	map ROUTE_42
+	map ROUTE_43
+	map ROUTE_44
+	map ROUTE_45
+	map ROUTE_36
+	map ROUTE_31
+; b8810
+
+OaksPkmnTalk5: ; b8810 (2e:4810)
+	ld hl, UnknownText_0xb8834
+	ld a, $f
+	jp NextRadioLine
+
+OaksPkmnTalk6: ; b8818 (2e:4818)
+	ld hl, UnknownText_0xb8839
+	ld a, $10
+	jp NextRadioLine
+; b8820 (2e:4820)
+
+UnknownText_0xb8820: ; 0xb8820
+	; MARY: PROF.OAK'S
+	text_jump UnknownText_0x1bc81a
+	db "@"
+; 0xb8825
+
+UnknownText_0xb8825: ; 0xb8825
+	; #MON TALK!
+	text_jump UnknownText_0x1bc82d
+	db "@"
+; 0xb882a
+
+UnknownText_0xb882a: ; 0xb882a
+	; With me, MARY!
+	text_jump UnknownText_0x1bc83a
+	db "@"
+; 0xb882f
+
+UnknownText_0xb882f: ; 0xb882f
+	; OAK: @ @
+	text_jump UnknownText_0x1bc84b
+	db "@"
+; 0xb8834
+
+UnknownText_0xb8834: ; 0xb8834
+	; may be seen around
+	text_jump UnknownText_0x1bc858
+	db "@"
+; 0xb8839
+
+UnknownText_0xb8839: ; 0xb8839
+	; @ .
+	text_jump UnknownText_0x1bc86d
+	db "@"
+; 0xb883e
+
+OaksPkmnTalk7: ; b883e (2e:483e)
+	ld a, [CurPartySpecies]
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, UnknownText_0xb884f
+	ld a, $11
+	jp NextRadioLine
+; b884f (2e:484f)
+
+UnknownText_0xb884f: ; 0xb884f
+	; MARY: @ 's
+	text_jump UnknownText_0x1bc876
+	db "@"
+; 0xb8854
+
+OaksPkmnTalk8: ; b8854 (2e:4854)
+	call Random
+	and $f
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_b8869
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, $12
+	jp NextRadioLine
+; b8869 (2e:4869)
+
+Unknown_b8869: ; b8869
+	dw UnknownText_0xb8889
+	dw UnknownText_0xb888e
+	dw UnknownText_0xb8893
+	dw UnknownText_0xb8898
+	dw UnknownText_0xb889d
+	dw UnknownText_0xb88a2
+	dw UnknownText_0xb88a7
+	dw UnknownText_0xb88ac
+	dw UnknownText_0xb88b1
+	dw UnknownText_0xb88b6
+	dw UnknownText_0xb88bb
+	dw UnknownText_0xb88c0
+	dw UnknownText_0xb88c5
+	dw UnknownText_0xb88ca
+	dw UnknownText_0xb88cf
+	dw UnknownText_0xb88d4
+; b8889
+
+UnknownText_0xb8889: ; 0xb8889
+	; sweet and adorably
+	text_jump UnknownText_0x1bc885
+	db "@"
+; 0xb888e
+
+UnknownText_0xb888e: ; 0xb888e
+	; wiggly and slickly
+	text_jump UnknownText_0x1bc89a
+	db "@"
+; 0xb8893
+
+UnknownText_0xb8893: ; 0xb8893
+	; aptly named and
+	text_jump UnknownText_0x1bc8af
+	db "@"
+; 0xb8898
+
+UnknownText_0xb8898: ; 0xb8898
+	; undeniably kind of
+	text_jump UnknownText_0x1bc8c1
+	db "@"
+; 0xb889d
+
+UnknownText_0xb889d: ; 0xb889d
+	; so, so unbearably
+	text_jump UnknownText_0x1bc8d6
+	db "@"
+; 0xb88a2
+
+UnknownText_0xb88a2: ; 0xb88a2
+	; wow, impressively
+	text_jump UnknownText_0x1bc8ea
+	db "@"
+; 0xb88a7
+
+UnknownText_0xb88a7: ; 0xb88a7
+	; almost poisonously
+	text_jump UnknownText_0x1bc8fe
+	db "@"
+; 0xb88ac
+
+UnknownText_0xb88ac: ; 0xb88ac
+	; ooh, so sensually
+	text_jump UnknownText_0x1bc913
+	db "@"
+; 0xb88b1
+
+UnknownText_0xb88b1: ; 0xb88b1
+	; so mischievously
+	text_jump UnknownText_0x1bc927
+	db "@"
+; 0xb88b6
+
+UnknownText_0xb88b6: ; 0xb88b6
+	; so very topically
+	text_jump UnknownText_0x1bc93a
+	db "@"
+; 0xb88bb
+
+UnknownText_0xb88bb: ; 0xb88bb
+	; sure addictively
+	text_jump UnknownText_0x1bc94e
+	db "@"
+; 0xb88c0
+
+UnknownText_0xb88c0: ; 0xb88c0
+	; looks in water is
+	text_jump UnknownText_0x1bc961
+	db "@"
+; 0xb88c5
+
+UnknownText_0xb88c5: ; 0xb88c5
+	; evolution must be
+	text_jump UnknownText_0x1bc975
+	db "@"
+; 0xb88ca
+
+UnknownText_0xb88ca: ; 0xb88ca
+	; provocatively
+	text_jump UnknownText_0x1bc989
+	db "@"
+; 0xb88cf
+
+UnknownText_0xb88cf: ; 0xb88cf
+	; so flipped out and
+	text_jump UnknownText_0x1bc999
+	db "@"
+; 0xb88d4
+
+UnknownText_0xb88d4: ; 0xb88d4
+	; heart-meltingly
+	text_jump UnknownText_0x1bc9ae
+	db "@"
+; 0xb88d9
+
+OaksPkmnTalk9: ; b88d9 (2e:48d9)
+	call Random
+	and $f
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_b88fe
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [wd006]
+	dec a
+	ld [wd006], a
+	ld a, $d
+	jr nz, .nope
+	ld a, $5
+	ld [wd006], a
+	ld a, $3b
+.nope
+	jp NextRadioLine
+; b88fe (2e:48fe)
+
+Unknown_b88fe: ; b88fe
+	dw UnknownText_0xb891e
+	dw UnknownText_0xb8923
+	dw UnknownText_0xb8928
+	dw UnknownText_0xb892d
+	dw UnknownText_0xb8932
+	dw UnknownText_0xb8937
+	dw UnknownText_0xb893c
+	dw UnknownText_0xb8941
+	dw UnknownText_0xb8946
+	dw UnknownText_0xb894b
+	dw UnknownText_0xb8950
+	dw UnknownText_0xb8955
+	dw UnknownText_0xb895a
+	dw UnknownText_0xb895f
+	dw UnknownText_0xb8964
+	dw UnknownText_0xb8969
+; b891e
+
+UnknownText_0xb891e: ; 0xb891e
+	; cute.
+	text_jump UnknownText_0x1bc9c0
+	db "@"
+; 0xb8923
+
+UnknownText_0xb8923: ; 0xb8923
+	; weird.
+	text_jump UnknownText_0x1bc9c8
+	db "@"
+; 0xb8928
+
+UnknownText_0xb8928: ; 0xb8928
+	; pleasant.
+	text_jump UnknownText_0x1bc9d1
+	db "@"
+; 0xb892d
+
+UnknownText_0xb892d: ; 0xb892d
+	; bold, sort of.
+	text_jump UnknownText_0x1bc9dd
+	db "@"
+; 0xb8932
+
+UnknownText_0xb8932: ; 0xb8932
+	; frightening.
+	text_jump UnknownText_0x1bc9ee
+	db "@"
+; 0xb8937
+
+UnknownText_0xb8937: ; 0xb8937
+	; suave & debonair!
+	text_jump UnknownText_0x1bc9fd
+	db "@"
+; 0xb893c
+
+UnknownText_0xb893c: ; 0xb893c
+	; powerful.
+	text_jump UnknownText_0x1bca11
+	db "@"
+; 0xb8941
+
+UnknownText_0xb8941: ; 0xb8941
+	; exciting.
+	text_jump UnknownText_0x1bca1d
+	db "@"
+; 0xb8946
+
+UnknownText_0xb8946: ; 0xb8946
+	; groovy!
+	text_jump UnknownText_0x1bca29
+	db "@"
+; 0xb894b
+
+UnknownText_0xb894b: ; 0xb894b
+	; inspiring.
+	text_jump UnknownText_0x1bca33
+	db "@"
+; 0xb8950
+
+UnknownText_0xb8950: ; 0xb8950
+	; friendly.
+	text_jump UnknownText_0x1bca40
+	db "@"
+; 0xb8955
+
+UnknownText_0xb8955: ; 0xb8955
+	; hot, hot, hot!
+	text_jump UnknownText_0x1bca4c
+	db "@"
+; 0xb895a
+
+UnknownText_0xb895a: ; 0xb895a
+	; stimulating.
+	text_jump UnknownText_0x1bca5d
+	db "@"
+; 0xb895f
+
+UnknownText_0xb895f: ; 0xb895f
+	; guarded.
+	text_jump UnknownText_0x1bca6c
+	db "@"
+; 0xb8964
+
+UnknownText_0xb8964: ; 0xb8964
+	; lovely.
+	text_jump UnknownText_0x1bca77
+	db "@"
+; 0xb8969
+
+UnknownText_0xb8969: ; 0xb8969
+	; speedy.
+	text_jump UnknownText_0x1bca81
+	db "@"
+; 0xb896e
+
+OaksPkmnTalk14: ; b896e (2e:496e)
+	callba Function91868
+	ld hl, UnknownText_0xb8993
+	call PrintText
+	call WaitBGMap
+	ld hl, UnknownText_0xb898e
+	call PrintText
+	ld a, $3c
+	ld [wd002], a
+	ld a, $64
+	ld [wd004], a
+	ret
+; b898e (2e:498e)
+
+UnknownText_0xb898e: ; 0xb898e
+	; #MON
+	text_jump UnknownText_0x1bca8b
+	db "@"
+; 0xb8993
+
+UnknownText_0xb8993: ; 0xb8993
+	db "@"
+; 0xb8994
+
+OaksPkmnTalk15: ; b8994 (2e:4994)
+	ld hl, wd004
+	dec [hl]
+	ret nz
+	hlcoord 9, 14
+	ld de, String_b89a4
+	ld a, $3d
+	jp Functionb8a00
+; b89a4 (2e:49a4)
+
+String_b89a4:
+	db "#MON@"
+; b89a9
+
+OaksPkmnTalk16: ; b89a9 (2e:49a9)
+	ld hl, wd004
+	dec [hl]
+	ret nz
+	hlcoord 1, 16
+	ld de, String_b89b9
+	ld a, $3e
+	jp Functionb8a00
+; b89b9 (2e:49b9)
+
+String_b89b9:
+	db "#MON Channel@"
+; b89c6
+
+OaksPkmnTalk17: ; b89c6 (2e:49c6)
+	ld hl, wd004
+	dec [hl]
+	ret nz
+	hlcoord 12, 16
+	ld de, String_b89d6
+	ld a, $3f
+	jp Functionb8a00
+; b89d6 (2e:49d6)
+
+String_b89d6:
+	db "@"
+; b89d7
+
+OaksPkmnTalk18: ; b89d7 (2e:49d7)
+	ld hl, wd004
+	dec [hl]
+	ret nz
+	ld de, $1d
+	callab RadioMusicNone
+	ld hl, UnknownText_0xb89ff
+	call PrintText
+	ld a, $d
+	ld [wd003], a
+	xor a
+	ld [wd005], a
+	ld a, $54
+	ld [wd002], a
+	ld a, $a
+	ld [wd004], a
+	ret
+; b89ff (2e:49ff)
+
+UnknownText_0xb89ff: ; 0xb89ff
+	db "@"
+; 0xb8a00
+
+Functionb8a00: ; b8a00 (2e:4a00)
+	ld [wd002], a
+	ld a, $64
+	ld [wd004], a
+	jp PlaceString
+
+CopyBottomLineToTopLine: ; b8a0b (2e:4a0b)
+	hlcoord 0, 15
+	decoord 0, 13
+	ld bc, SCREEN_WIDTH * 2
+	jp CopyBytes
+
+ClearBottomLine: ; b8a17 (2e:4a17)
+	hlcoord 1, 15
+	ld bc, $12
+	ld a, " "
+	call ByteFill
+	hlcoord 1, 16
+	ld bc, $12
+	ld a, " "
+	jp ByteFill
+
+Functionb8a2d: ; b8a2d (2e:4a2d)
+	push hl
+	push de
+	ld a, [CurPartySpecies]
+	dec a
+	rlca
+	rlca
+	and 3
+	ld hl, .pokedexbanks
+	ld d, 0
+	ld e, a
+	add hl, de
+	ld a, [hl]
+	pop de
+	pop hl
+	ret
+; b8a42 (2e:4a42)
+
+.pokedexbanks
+	db BANK(PokedexEntries1)
+	db BANK(PokedexEntries2)
+	db BANK(PokedexEntries3)
+	db BANK(PokedexEntries4)
+; b8a46
+
+PokedexShow1: ; b8a46 (2e:4a46)
+	call StartRadioStation
+.asm_b8a49
+	call Random
+	cp CELEBI
+	jr nc, .asm_b8a49
+	ld c, a
+	push bc
+	ld a, c
+	call CheckCaughtMon
+	pop bc
+	jr z, .asm_b8a49
+	inc c
+	ld a, c
+	ld [CurPartySpecies], a
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, UnknownText_0xb8b30
+	ld a, $13
+	jp NextRadioLine
+
+OaksPkmnTalk10: ; b8a6c (2e:4a6c)
+	ld a, [CurPartySpecies]
+	dec a
+	ld hl, PokedexDataPointerTable
+	ld c, a
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld a, BANK(PokedexDataPointerTable)
+	call GetFarHalfword
+	call Functionb8a2d
+	push af
+	push hl
+	call Functionb8af3
+	dec hl
+	ld [hl], $57
+	ld hl, wd26b
+	call CopyRadioTextToRAM
+	pop hl
+	pop af
+	call Functionb8b11
+rept 4
+	inc hl
+endr
+	ld a, l
+	ld [wd26b], a
+	ld a, h
+	ld [wd26c], a
+	ld a, $14
+	jp PrintRadioLine
+
+OaksPkmnTalk11: ; b8aa4 (2e:4aa4)
+	call Functionb8ad4
+	ld a, $15
+	jp PrintRadioLine
+
+OaksPkmnTalk12: ; b8aac (2e:4aac)
+	call Functionb8ad4
+	ld a, $16
+	jp PrintRadioLine
+
+OaksPkmnTalk13: ; b8ab4 (2e:4ab4)
+	call Functionb8ad4
+	ld a, $55
+	jp PrintRadioLine
+
+OaksPkmnTalk19: ; b8abc (2e:4abc)
+	call Functionb8ad4
+	ld a, $56
+	jp PrintRadioLine
+
+OaksPkmnTalk20: ; b8ac4 (2e:4ac4)
+	call Functionb8ad4
+	ld a, $57
+	jp PrintRadioLine
+
+OaksPkmnTalk21: ; b8acc (2e:4acc)
+	call Functionb8ad4
+	ld a, $1
+	jp PrintRadioLine
+
+Functionb8ad4: ; b8ad4 (2e:4ad4)
+	ld a, [wd26b]
+	ld l, a
+	ld a, [wd26c]
+	ld h, a
+	ld a, [wd26d]
+	push af
+	push hl
+	call Functionb8af3
+	dec hl
+	ld [hl], $57
+	ld hl, wd26b
+	call CopyRadioTextToRAM
+	pop hl
+	pop af
+	call Functionb8b11
+	ret
+
+Functionb8af3: ; b8af3 (2e:4af3)
+	ld de, wd26d
+	ld bc, $13
+	call FarCopyBytes
+	ld hl, wd26b
+	ld [hl], $0
+	inc hl
+	ld [hl], $4f
+	inc hl
+.asm_b8b05
+	ld a, [hli]
+	cp $50
+	ret z
+	cp $4e
+	ret z
+	cp $5f
+	ret z
+	jr .asm_b8b05
+
+Functionb8b11: ; b8b11 (2e:4b11)
+	ld d, a
+.asm_b8b12
+	ld a, d
+	call GetFarByte
+	inc hl
+	cp $50
+	jr z, .asm_b8b23
+	cp $4e
+	jr z, .asm_b8b23
+	cp $5f
+	jr nz, .asm_b8b12
+.asm_b8b23
+	ld a, l
+	ld [wd26b], a
+	ld a, h
+	ld [wd26c], a
+	ld a, d
+	ld [wd26d], a
+	ret
+; b8b30 (2e:4b30)
+
+UnknownText_0xb8b30: ; 0xb8b30
+	; @ @
+	text_jump UnknownText_0x1bca91
+	db "@"
+; 0xb8b35
+
+BenMonMusic1: ; b8b35 (2e:4b35)
+	call Functionb8b90
+	ld hl, UnknownText_0xb8baa
+	ld a, $17
+	jp NextRadioLine
+
+BenMonMusic2: ; b8b40 (2e:4b40)
+	ld hl, UnknownText_0xb8baf
+	ld a, $18
+	jp NextRadioLine
+
+BenMonMusic3: ; b8b48 (2e:4b48)
+	ld hl, UnknownText_0xb8bb4
+	ld a, $19
+	jp NextRadioLine
+
+FernMonMusic1: ; b8b50 (2e:4b50)
+	call Functionb8b90
+	ld hl, UnknownText_0xb8bb9
+	ld a, $1d
+	jp NextRadioLine
+
+FernMonMusic2: ; b8b5b (2e:4b5b)
+	ld hl, UnknownText_0xb8bbe
+	ld a, $19
+	jp NextRadioLine
+
+BenFernMusic4: ; b8b63 (2e:4b63)
+	ld hl, UnknownText_0xb8bc3
+	ld a, $1a
+	jp NextRadioLine
+
+BenFernMusic5: ; b8b6b (2e:4b6b)
+	call GetWeekday
+	and 1
+	ld hl, UnknownText_0xb8bc8
+	jr z, .asm_b8b78
+	ld hl, UnknownText_0xb8bcd
+.asm_b8b78
+	ld a, $1b
+	jp NextRadioLine
+
+BenFernMusic6: ; b8b7d (2e:4b7d)
+	call GetWeekday
+	and 1
+	ld hl, UnknownText_0xb8bd2
+	jr z, .asm_b8b8a
+	ld hl, UnknownText_0xb8bd7
+.asm_b8b8a
+	ld a, $1c
+	jp NextRadioLine
+
+BenFernMusic7: ; b8b8f (2e:4b8f)
+	ret
+
+Functionb8b90: ; b8b90 (2e:4b90)
+	call RadioTerminator
+	call PrintText
+	ld de, MUSIC_POKEMON_MARCH
+	call GetWeekday
+	and 1
+	jr z, .done
+	ld de, MUSIC_POKEMON_LULLABY
+.done
+	callab RadioMusicNone
+	ret
+; b8baa (2e:4baa)
+
+UnknownText_0xb8baa: ; 0xb8baa
+	; BEN: #MON MUSIC
+	text_jump UnknownText_0x1bca99
+	db "@"
+; 0xb8baf
+
+UnknownText_0xb8baf: ; 0xb8baf
+	; CHANNEL!
+	text_jump UnknownText_0x1bcaab
+	db "@"
+; 0xb8bb4
+
+UnknownText_0xb8bb4: ; 0xb8bb4
+	; It's me, DJ BEN!
+	text_jump UnknownText_0x1bcab6
+	db "@"
+; 0xb8bb9
+
+UnknownText_0xb8bb9: ; 0xb8bb9
+	; FERN: #MUSIC!
+	text_jump UnknownText_0x1bcac8
+	db "@"
+; 0xb8bbe
+
+UnknownText_0xb8bbe: ; 0xb8bbe
+	; With DJ FERN!
+	text_jump UnknownText_0x1bcad8
+	db "@"
+; 0xb8bc3
+
+UnknownText_0xb8bc3: ; 0xb8bc3
+	; Today's @ ,
+	text_jump UnknownText_0x1bcae8
+	db "@"
+; 0xb8bc8
+
+UnknownText_0xb8bc8: ; 0xb8bc8
+	; so let us jam to
+	text_jump UnknownText_0x1bcaf6
+	db "@"
+; 0xb8bcd
+
+UnknownText_0xb8bcd: ; 0xb8bcd
+	; so chill out to
+	text_jump UnknownText_0x1bcb09
+	db "@"
+; 0xb8bd2
+
+UnknownText_0xb8bd2: ; 0xb8bd2
+	; #MON March!
+	text_jump UnknownText_0x1bcb1b
+	db "@"
+; 0xb8bd7
+
+UnknownText_0xb8bd7: ; 0xb8bd7
+	; #MON Lullaby!
+	text_jump UnknownText_0x1bcb29
+	db "@"
+; 0xb8bdc
+
+LuckyNumberShow1: ; b8bdc (2e:4bdc)
+	call StartRadioStation
+	callab Functionc434
+	jr nc, .asm_b8bed
+	callab Functionc422
+.asm_b8bed
+	ld hl, UnknownText_0xb8c7e
+	ld a, $1e
+	jp NextRadioLine
+
+LuckyNumberShow2: ; b8bf5 (2e:4bf5)
+	ld hl, UnknownText_0xb8c83
+	ld a, $1f
+	jp NextRadioLine
+
+LuckyNumberShow3: ; b8bfd (2e:4bfd)
+	ld hl, UnknownText_0xb8c88
+	ld a, $20
+	jp NextRadioLine
+
+LuckyNumberShow4: ; b8c05 (2e:4c05)
+	ld hl, UnknownText_0xb8c8d
+	ld a, $21
+	jp NextRadioLine
+
+LuckyNumberShow5: ; b8c0d (2e:4c0d)
+	ld hl, UnknownText_0xb8c92
+	ld a, $22
+	jp NextRadioLine
+
+LuckyNumberShow6: ; b8c15 (2e:4c15)
+	ld hl, UnknownText_0xb8c97
+	ld a, $23
+	jp NextRadioLine
+
+LuckyNumberShow7: ; b8c1d (2e:4c1d)
+	ld hl, UnknownText_0xb8c9c
+	ld a, $24
+	jp NextRadioLine
+
+LuckyNumberShow8: ; b8c25 (2e:4c25)
+	ld hl, StringBuffer1
+	ld de, wdc9f
+	ld bc, $8205
+	call PrintNum
+	ld a, $50
+	ld [StringBuffer1 + 5], a
+	ld hl, UnknownText_0xb8ca1
+	ld a, $25
+	jp NextRadioLine
+
+LuckyNumberShow9: ; b8c3e (2e:4c3e)
+	ld hl, UnknownText_0xb8ca6
+	ld a, $26
+	jp NextRadioLine
+
+LuckyNumberShow10: ; b8c46 (2e:4c46)
+	ld hl, UnknownText_0xb8c9c
+	ld a, $27
+	jp NextRadioLine
+
+LuckyNumberShow11: ; b8c4e (2e:4c4e)
+	ld hl, UnknownText_0xb8ca1
+	ld a, $28
+	jp NextRadioLine
+
+LuckyNumberShow12: ; b8c56 (2e:4c56)
+	ld hl, UnknownText_0xb8cab
+	ld a, $29
+	jp NextRadioLine
+
+LuckyNumberShow13: ; b8c5e (2e:4c5e)
+	ld hl, UnknownText_0xb8cb0
+	call Random
+	and a
+	ld a, $3
+	jr nz, .asm_b8c6b
+	ld a, $2a
+.asm_b8c6b
+	jp NextRadioLine
+
+LuckyNumberShow14: ; b8c6e (2e:4c6e)
+	ld hl, UnknownText_0xb8cb5
+	ld a, $2b
+	jp NextRadioLine
+
+LuckyNumberShow15: ; b8c76 (2e:4c76)
+	ld hl, UnknownText_0xb8cba
+	ld a, $3
+	jp NextRadioLine
+; b8c7e (2e:4c7e)
+
+UnknownText_0xb8c7e: ; 0xb8c7e
+	; REED: Yeehaw! How
+	text_jump UnknownText_0x1bcb39
+	db "@"
+; 0xb8c83
+
+UnknownText_0xb8c83: ; 0xb8c83
+	; y'all doin' now?
+	text_jump UnknownText_0x1bcb4d
+	db "@"
+; 0xb8c88
+
+UnknownText_0xb8c88: ; 0xb8c88
+	; Whether you're up
+	text_jump UnknownText_0x1bcb60
+	db "@"
+; 0xb8c8d
+
+UnknownText_0xb8c8d: ; 0xb8c8d
+	; or way down low,
+	text_jump UnknownText_0x1bcb73
+	db "@"
+; 0xb8c92
+
+UnknownText_0xb8c92: ; 0xb8c92
+	; don't you miss the
+	text_jump UnknownText_0x1bcb86
+	db "@"
+; 0xb8c97
+
+UnknownText_0xb8c97: ; 0xb8c97
+	; LUCKY NUMBER SHOW!
+	text_jump UnknownText_0x1bcb9a
+	db "@"
+; 0xb8c9c
+
+UnknownText_0xb8c9c: ; 0xb8c9c
+	; This week's Lucky
+	text_jump UnknownText_0x1bcbaf
+	db "@"
+; 0xb8ca1
+
+UnknownText_0xb8ca1: ; 0xb8ca1
+	; Number is @ !
+	text_jump UnknownText_0x1bcbc2
+	db "@"
+; 0xb8ca6
+
+UnknownText_0xb8ca6: ; 0xb8ca6
+	; I'll repeat that!
+	text_jump UnknownText_0x1bcbd6
+	db "@"
+; 0xb8cab
+
+UnknownText_0xb8cab: ; 0xb8cab
+	; Match it and go to
+	text_jump UnknownText_0x1bcbe9
+	db "@"
+; 0xb8cb0
+
+UnknownText_0xb8cb0: ; 0xb8cb0
+	; the RADIO TOWER!
+	text_jump UnknownText_0x1bcbfe
+	db "@"
+; 0xb8cb5
+
+UnknownText_0xb8cb5: ; 0xb8cb5
+	; …Repeating myself
+	text_jump UnknownText_0x1bcc11
+	db "@"
+; 0xb8cba
+
+UnknownText_0xb8cba: ; 0xb8cba
+	; gets to be a drag…
+	text_jump UnknownText_0x1bcc25
+	db "@"
+; 0xb8cbf
+
+PeoplePlaces1: ; b8cbf (2e:4cbf)
+	call StartRadioStation
+	ld hl, UnknownText_0xb8ce3
+	ld a, $2c
+	jp NextRadioLine
+
+LuckyNumberShow16: ; b8cca (2e:4cca)
+	ld hl, UnknownText_0xb8ce8
+	ld a, $2d
+	jp NextRadioLine
+
+LuckyNumberShow17: ; b8cd2 (2e:4cd2)
+	ld hl, UnknownText_0xb8ced
+	call Random
+	cp $7b
+	ld a, $2e
+	jr c, .asm_b8ce0
+	ld a, $30
+.asm_b8ce0
+	jp NextRadioLine
+; b8ce3 (2e:4ce3)
+
+UnknownText_0xb8ce3: ; 0xb8ce3
+	; PLACES AND PEOPLE!
+	text_jump UnknownText_0x1bcc3a
+	db "@"
+; 0xb8ce8
+
+UnknownText_0xb8ce8: ; 0xb8ce8
+	; Brought to you by
+	text_jump UnknownText_0x1bcc4f
+	db "@"
+; 0xb8ced
+
+UnknownText_0xb8ced: ; 0xb8ced
+	; me, DJ LILY!
+	text_jump UnknownText_0x1bcc63
+	db "@"
+; 0xb8cf2
+
+LuckyNumberShow18: ; b8cf2 (2e:4cf2)
+	call Random
+	and " "
+	inc a
+	cp $43
+	jr nc, LuckyNumberShow18
+	push af
+	ld hl, Unknown_b8d3e
+	ld a, [StatusFlags]
+	bit 6, a
+	jr z, .NotMet
+	ld hl, Unknown_b8d43
+	ld a, [KantoBadges]
+	cp %11111111
+	jr nz, .NotMet
+	ld hl, Unknown_b8d4b
+.NotMet
+	pop af
+	ld c, a
+	ld de, $1
+	push bc
+	call IsInArray
+	pop bc
+	jr c, LuckyNumberShow18
+	push bc
+	callab Function3952d
+	ld de, StringBuffer1
+	call CopyName1
+	pop bc
+	ld b, $1
+	callab GetTrainerName
+	ld hl, UnknownText_0xb8d51
+	ld a, $2f
+	jp NextRadioLine
+; b8d3e (2e:4d3e)
+
+Unknown_b8d3e: db $0b, $0d, $0e, $0f, $10
+Unknown_b8d43: db $11, $12, $13, $15, $1a, $23, $2e, $40
+Unknown_b8d4b: db $09, $0a, $0c, $2a, $3f
+               db $ff
+; b8d51
+
+UnknownText_0xb8d51: ; 0xb8d51
+	; @  @ @
+	text_jump UnknownText_0x1bcc72
+	db "@"
+; 0xb8d56
+
+LuckyNumberShow19: ; b8d56 (2e:4d56)
+	call Random
+	and $f
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_b8d7d
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call Random
+	cp $a
+	ld a, $5
+	jr c, .asm_b8d7a
+	call Random
+	cp $7b
+	ld a, $2e
+	jr c, .asm_b8d7a
+	ld a, $30
+.asm_b8d7a
+	jp NextRadioLine
+; b8d7d (2e:4d7d)
+
+Unknown_b8d7d: ; b8d7d
+	dw UnknownText_0xb8d9d
+	dw UnknownText_0xb8da2
+	dw UnknownText_0xb8da7
+	dw UnknownText_0xb8dac
+	dw UnknownText_0xb8db1
+	dw UnknownText_0xb8db6
+	dw UnknownText_0xb8dbb
+	dw UnknownText_0xb8dc0
+	dw UnknownText_0xb8dc5
+	dw UnknownText_0xb8dca
+	dw UnknownText_0xb8dcf
+	dw UnknownText_0xb8dd4
+	dw UnknownText_0xb8dd9
+	dw UnknownText_0xb8dde
+	dw UnknownText_0xb8de3
+	dw UnknownText_0xb8de8
+; b8d9d
+
+UnknownText_0xb8d9d: ; 0xb8d9d
+	; is cute.
+	text_jump UnknownText_0x1bcc80
+	db "@"
+; 0xb8da2
+
+UnknownText_0xb8da2: ; 0xb8da2
+	; is sort of lazy.
+	text_jump UnknownText_0x1bcc8b
+	db "@"
+; 0xb8da7
+
+UnknownText_0xb8da7: ; 0xb8da7
+	; is always happy.
+	text_jump UnknownText_0x1bcc9e
+	db "@"
+; 0xb8dac
+
+UnknownText_0xb8dac: ; 0xb8dac
+	; is quite noisy.
+	text_jump UnknownText_0x1bccb1
+	db "@"
+; 0xb8db1
+
+UnknownText_0xb8db1: ; 0xb8db1
+	; is precocious.
+	text_jump UnknownText_0x1bccc3
+	db "@"
+; 0xb8db6
+
+UnknownText_0xb8db6: ; 0xb8db6
+	; is somewhat bold.
+	text_jump UnknownText_0x1bccd4
+	db "@"
+; 0xb8dbb
+
+UnknownText_0xb8dbb: ; 0xb8dbb
+	; is too picky!
+	text_jump UnknownText_0x1bcce8
+	db "@"
+; 0xb8dc0
+
+UnknownText_0xb8dc0: ; 0xb8dc0
+	; is sort of OK.
+	text_jump UnknownText_0x1bccf8
+	db "@"
+; 0xb8dc5
+
+UnknownText_0xb8dc5: ; 0xb8dc5
+	; is just so-so.
+	text_jump UnknownText_0x1bcd09
+	db "@"
+; 0xb8dca
+
+UnknownText_0xb8dca: ; 0xb8dca
+	; is actually great.
+	text_jump UnknownText_0x1bcd1a
+	db "@"
+; 0xb8dcf
+
+UnknownText_0xb8dcf: ; 0xb8dcf
+	; is just my type.
+	text_jump UnknownText_0x1bcd2f
+	db "@"
+; 0xb8dd4
+
+UnknownText_0xb8dd4: ; 0xb8dd4
+	; is so cool, no?
+	text_jump UnknownText_0x1bcd42
+	db "@"
+; 0xb8dd9
+
+UnknownText_0xb8dd9: ; 0xb8dd9
+	; is inspiring!
+	text_jump UnknownText_0x1bcd54
+	db "@"
+; 0xb8dde
+
+UnknownText_0xb8dde: ; 0xb8dde
+	; is kind of weird.
+	text_jump UnknownText_0x1bcd64
+	db "@"
+; 0xb8de3
+
+UnknownText_0xb8de3: ; 0xb8de3
+	; is right for me?
+	text_jump UnknownText_0x1bcd78
+	db "@"
+; 0xb8de8
+
+UnknownText_0xb8de8: ; 0xb8de8
+	; is definitely odd!
+	text_jump UnknownText_0x1bcd8b
+	db "@"
+; 0xb8ded
+
+LuckyNumberShow20: ; b8ded (2e:4ded)
+	call Random
+	cp $9
+	jr nc, LuckyNumberShow20
+	ld hl, Unknown_b8e11
+	ld c, a
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld b, [hl]
+	inc hl
+	ld c, [hl]
+	call GetWorldMapLocation
+	ld e, a
+	callba GetLandmarkName
+	ld hl, UnknownText_0xb8e23
+	ld a, $31
+	jp NextRadioLine
+; b8e11 (2e:4e11)
+
+Unknown_b8e11: ; b8e11
+	map PALLET_TOWN
+	map ROUTE_22
+	map PEWTER_CITY
+	map CERULEAN_POLICE_STATION
+	map ROUTE_12
+	map ROUTE_11
+	map ROUTE_16
+	map ROUTE_14
+	map CINNABAR_POKECENTER_2F_BETA
+; b8e23
+
+UnknownText_0xb8e23: ; 0xb8e23
+	; @ @
+	text_jump UnknownText_0x1bcda0
+	db "@"
+; 0xb8e28
+
+LuckyNumberShow21: ; b8e28 (2e:4e28)
+	call Random
+	and $f
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_b8e52
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call CopyRadioTextToRAM
+	call Random
+	cp $a
+	ld a, $5
+	jr c, .asm_b8e4f
+	call Random
+	cp $7b
+	ld a, $2e
+	jr c, .asm_b8e4f
+	ld a, $30
+.asm_b8e4f
+	jp PrintRadioLine
+; b8e52 (2e:4e52)
+
+Unknown_b8e52: ; b8e52
+	dw UnknownText_0xb8d9d
+	dw UnknownText_0xb8da2
+	dw UnknownText_0xb8da7
+	dw UnknownText_0xb8dac
+	dw UnknownText_0xb8db1
+	dw UnknownText_0xb8db6
+	dw UnknownText_0xb8dbb
+	dw UnknownText_0xb8dc0
+	dw UnknownText_0xb8dc5
+	dw UnknownText_0xb8dca
+	dw UnknownText_0xb8dcf
+	dw UnknownText_0xb8dd4
+	dw UnknownText_0xb8dd9
+	dw UnknownText_0xb8dde
+	dw UnknownText_0xb8de3
+	dw UnknownText_0xb8de8
+; b8e72
+
+RocketRadio1: ; b8e72 (2e:4e72)
+	call StartRadioStation
+	ld hl, UnknownText_0xb8ec5
+	ld a, $32
+	jp NextRadioLine
+
+RocketRadio2: ; b8e7d (2e:4e7d)
+	ld hl, UnknownText_0xb8eca
+	ld a, $33
+	jp NextRadioLine
+
+RocketRadio3: ; b8e85 (2e:4e85)
+	ld hl, UnknownText_0xb8ecf
+	ld a, $34
+	jp NextRadioLine
+
+RocketRadio4: ; b8e8d (2e:4e8d)
+	ld hl, UnknownText_0xb8ed4
+	ld a, $35
+	jp NextRadioLine
+
+RocketRadio5: ; b8e95 (2e:4e95)
+	ld hl, UnknownText_0xb8ed9
+	ld a, $36
+	jp NextRadioLine
+
+RocketRadio6: ; b8e9d (2e:4e9d)
+	ld hl, UnknownText_0xb8ede
+	ld a, $37
+	jp NextRadioLine
+
+RocketRadio7: ; b8ea5 (2e:4ea5)
+	ld hl, UnknownText_0xb8ee3
+	ld a, $38
+	jp NextRadioLine
+
+RocketRadio8: ; b8ead (2e:4ead)
+	ld hl, UnknownText_0xb8ee8
+	ld a, $39
+	jp NextRadioLine
+
+RocketRadio9: ; b8eb5 (2e:4eb5)
+	ld hl, UnknownText_0xb8eed
+	ld a, $3a
+	jp NextRadioLine
+
+RocketRadio10: ; b8ebd (2e:4ebd)
+	ld hl, UnknownText_0xb8ef2
+	ld a, $7
+	jp NextRadioLine
+; b8ec5 (2e:4ec5)
+
+UnknownText_0xb8ec5: ; 0xb8ec5
+	; … …Ahem, we are
+	text_jump UnknownText_0x1bcda8
+	db "@"
+; 0xb8eca
+
+UnknownText_0xb8eca: ; 0xb8eca
+	; TEAM ROCKET!
+	text_jump UnknownText_0x1bcdba
+	db "@"
+; 0xb8ecf
+
+UnknownText_0xb8ecf: ; 0xb8ecf
+	; After three years
+	text_jump UnknownText_0x1bcdc9
+	db "@"
+; 0xb8ed4
+
+UnknownText_0xb8ed4: ; 0xb8ed4
+	; of preparation, we
+	text_jump UnknownText_0x1bcddd
+	db "@"
+; 0xb8ed9
+
+UnknownText_0xb8ed9: ; 0xb8ed9
+	; have risen again
+	text_jump UnknownText_0x1bcdf2
+	db "@"
+; 0xb8ede
+
+UnknownText_0xb8ede: ; 0xb8ede
+	; from the ashes!
+	text_jump UnknownText_0x1bce05
+	db "@"
+; 0xb8ee3
+
+UnknownText_0xb8ee3: ; 0xb8ee3
+	; GIOVANNI! @ Can you
+	text_jump UnknownText_0x1bce17
+	db "@"
+; 0xb8ee8
+
+UnknownText_0xb8ee8: ; 0xb8ee8
+	; hear?@  We did it!
+	text_jump UnknownText_0x1bce2e
+	db "@"
+; 0xb8eed
+
+UnknownText_0xb8eed: ; 0xb8eed
+	; @ Where is our boss?
+	text_jump UnknownText_0x1bce44
+	db "@"
+; 0xb8ef2
+
+UnknownText_0xb8ef2: ; 0xb8ef2
+	; @ Is he listening?
+	text_jump UnknownText_0x1bce5c
+	db "@"
+; 0xb8ef7
+
+PokeFluteRadio: ; b8ef7 (2e:4ef7)
+	call StartRadioStation
+	ld a, $1
+	ld [wd005], a
+	ret
+
+EvolutionRadio: ; b8f00 (2e:4f00)
+	call StartRadioStation
+	ld a, $1
+	ld [wd005], a
+	ret
+
+UnownRadio: ; b8f09 (2e:4f09)
+	call StartRadioStation
+	ld a, $1
+	ld [wd005], a
+	ret
+
+BuenasPassword1: ; b8f12 (2e:4f12)
+; Determine if we need to be here
+	call BuenasPasswordCheckMidnight
+	jp nc, Functionb8f22
+	ld a, [wd005]
+	and a
+	jp z, BuenasPassword20
+	jp BuenasPassword8
+
+Functionb8f22: ; b8f22 (2e:4f22)
+	call StartRadioStation
+	ld a, [hBGMapMode] ; $ff00+$d4
+	push af
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	ld de, String_b9171
+	hlcoord 2, 9
+	call PlaceString
+	pop af
+	ld [hBGMapMode], a ; $ff00+$d4
+	ld hl, UnknownText_0xb9182
+	ld a, $40
+	jp NextRadioLine
+
+BuenasPassword2: ; b8f3f (2e:4f3f)
+	ld hl, UnknownText_0xb9187
+	ld a, $41
+	jp NextRadioLine
+
+BuenasPassword3: ; b8f47 (2e:4f47)
+	call BuenasPasswordCheckMidnight
+	ld hl, UnknownText_0xb918c
+	jp c, BuenasPasswordAfterMidnight
+	ld a, $42
+	jp NextRadioLine
+
+BuenasPassword4: ; b8f55 (2e:4f55)
+	call BuenasPasswordCheckMidnight
+	jp c, BuenasPassword8
+	ld a, [wdc4a]
+; If we already generated the password today, we don't need to generate a new one.
+	ld hl, WeeklyFlags
+	bit 7, [hl]
+	jr nz, .AlreadyGotIt
+; There are only 11 groups to choose from.
+.greater_than_11
+	call Random
+	and $f
+	cp $b
+	jr nc, .greater_than_11
+; Store it in the high nybble of e.
+	swap a
+	ld e, a
+; For each group, choose one of the three passwords.
+.greater_than_three
+	call Random
+	and $3
+	cp $3
+	jr nc, .greater_than_three
+; The high nybble of wdc4a will now contain the password group index, and the low nybble contains the actual password.
+	add e
+	ld [wdc4a], a
+; Set the flag so that we don't generate a new password this week.
+	ld hl, WeeklyFlags
+	set 7, [hl]
+.AlreadyGotIt
+	ld c, a
+	call GetBuenasPassword
+	ld hl, UnknownText_0xb9191
+	ld a, $43
+	jp NextRadioLine
+
+GetBuenasPassword: ; b8f8f
+; The password indices are held in c.  High nybble contains the group index, low nybble contains the word index.
+; Load the password group pointer in hl.
+	ld a, c
+	swap a
+	and $f
+	ld hl, PasswordTable
+	ld d, 0
+	ld e, a
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+; Get the password type and store it in b.
+	ld a, [hli]
+	ld b, a
+	push hl
+	inc hl
+; Get the password index.
+	ld a, c
+	and $f
+	ld c, a
+	push hl
+	ld hl, .StringFunctionJumpTable
+	ld e, b
+rept 2
+	add hl, de
+endr
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	pop de ; de now contains the pointer to the value of this week's password, in Blue Card Points.
+	call _hl_
+	pop hl
+	ld c, [hl]
+	ret
+; b8fb8
+
+
+.StringFunctionJumpTable: ; b8fb8 (2e:4fb8)
+	dw .Mon
+	dw .Item
+	dw .Move
+	dw .RawString
+
+
+.Mon: ; b8fc0 (2e:4fc0)
+	call .GetTheIndex
+	call GetPokemonName
+	ret
+
+.Item: ; b8fc7 (2e:4fc7)
+	call .GetTheIndex
+	call GetItemName
+	ret
+
+.Move: ; b8fce (2e:4fce)
+	call .GetTheIndex
+	call GetMoveName
+	ret
+
+.GetTheIndex: ; b8fd5 (2e:4fd5)
+	ld h, 0
+	ld l, c
+	add hl, de
+	ld a, [hl]
+	ld [wd265], a
+	ret
+
+.RawString: ; b8fde (2e:4fde)
+; Get the string from the table...
+	ld a, c
+	and a
+	jr z, .skip
+.read_loop
+	ld a, [de]
+	inc de
+	cp "@"
+	jr nz, .read_loop
+	dec c
+	jr nz, .read_loop
+; ... and copy it into StringBuffer1.
+.skip
+	ld hl, StringBuffer1
+.copy_loop
+	ld a, [de]
+	inc de
+	ld [hli], a
+	cp "@"
+	jr nz, .copy_loop
+	ld de, StringBuffer1
+	ret
+; b8ff9 (2e:4ff9)
+
+PasswordTable: ; b8ff9
+	dw .JohtoStarters
+	dw .Beverages
+	dw .HealingItems
+	dw .Balls
+	dw .Pokemon1
+	dw .Pokemon2
+	dw .JohtoTowns
+	dw .Types
+	dw .Moves
+	dw .XItems
+	dw .RadioStations
+; b900f
+                     ; string type, points, option 1, option 2, option 3
+.JohtoStarters:      db BUENA_MON,    10, CYNDAQUIL, TOTODILE, CHIKORITA
+.Beverages:          db BUENA_ITEM,   12, FRESH_WATER, SODA_POP, LEMONADE
+.HealingItems:       db BUENA_ITEM,   12, POTION, ANTIDOTE, PARLYZ_HEAL
+.Balls:              db BUENA_ITEM,   12, POKE_BALL, GREAT_BALL, ULTRA_BALL
+.Pokemon1:           db BUENA_MON,    10, PIKACHU, RATTATA, GEODUDE
+.Pokemon2:           db BUENA_MON,    10, HOOTHOOT, SPINARAK, DROWZEE
+.JohtoTowns:         db BUENA_STRING, 16, "NEW BARK TOWN@", "CHERRYGROVE CITY@", "AZALEA TOWN@"
+.Types:              db BUENA_STRING,  6, "FLYING@", "BUG@", "GRASS@"
+.Moves:              db BUENA_MOVE,   12, TACKLE, GROWL, MUD_SLAP
+.XItems:             db BUENA_ITEM,   12, X_ATTACK, X_DEFEND, X_SPEED
+.RadioStations:      db BUENA_STRING, 13, "#MON Talk@", "#MON Music@", "Lucky Channel@"
+; b909c
+
+BuenasPassword5: ; b909c (2e:509c)
+	ld hl, UnknownText_0xb9196
+	ld a, $44
+	jp NextRadioLine
+
+BuenasPassword6: ; b90a4 (2e:50a4)
+	ld hl, UnknownText_0xb919b
+	ld a, $45
+	jp NextRadioLine
+
+BuenasPassword7: ; b90ac (2e:50ac)
+	call BuenasPasswordCheckMidnight
+	ld hl, UnknownText_0xb91a0
+	jr c, BuenasPasswordAfterMidnight
+	ld a, $4
+	jp NextRadioLine
+
+BuenasPasswordAfterMidnight: ; b90b9 (2e:50b9)
+	push hl
+	ld hl, WeeklyFlags
+	res 7, [hl]
+	pop hl
+	ld a, $46
+	jp NextRadioLine
+
+BuenasPassword8: ; b90c5 (2e:50c5)
+	ld hl, WeeklyFlags
+	res 7, [hl]
+	ld hl, UnknownText_0xb91d2
+	ld a, $47
+	jp NextRadioLine
+
+BuenasPassword9: ; b90d2 (2e:50d2)
+	ld hl, UnknownText_0xb91a5
+	ld a, $48
+	jp NextRadioLine
+
+BuenasPassword10: ; b90da (2e:50da)
+	ld hl, UnknownText_0xb91aa
+	ld a, $49
+	jp NextRadioLine
+
+BuenasPassword11: ; b90e2 (2e:50e2)
+	ld hl, UnknownText_0xb91af
+	ld a, $4a
+	jp NextRadioLine
+
+BuenasPassword12: ; b90ea (2e:50ea)
+	ld hl, UnknownText_0xb91b4
+	ld a, $4b
+	jp NextRadioLine
+
+BuenasPassword13: ; b90f2 (2e:50f2)
+	ld hl, UnknownText_0xb91b9
+	ld a, $4c
+	jp NextRadioLine
+
+BuenasPassword14: ; b90fa (2e:50fa)
+	ld hl, UnknownText_0xb91be
+	ld a, $4d
+	jp NextRadioLine
+
+BuenasPassword15: ; b9102 (2e:5102)
+	ld hl, UnknownText_0xb91c3
+	ld a, $4e
+	jp NextRadioLine
+
+BuenasPassword16: ; b910a (2e:510a)
+	ld hl, UnknownText_0xb91c8
+	ld a, $4f
+	jp NextRadioLine
+
+BuenasPassword17: ; b9112 (2e:5112)
+	ld hl, UnknownText_0xb91cd
+	ld a, $50
+	jp NextRadioLine
+
+BuenasPassword18: ; b911a (2e:511a)
+	ld hl, UnknownText_0xb91d2
+	ld a, $51
+	jp NextRadioLine
+
+BuenasPassword19: ; b9122 (2e:5122)
+	ld hl, UnknownText_0xb91d2
+	ld a, $52
+	jp NextRadioLine
+
+BuenasPassword20: ; b912a (2e:512a)
+	ld a, [hBGMapMode] ; $ff00+$d4
+	push af
+	callba NoRadioMusic
+	callba NoRadioName
+	pop af
+	ld [hBGMapMode], a ; $ff00+$d4
+	ld hl, WeeklyFlags
+	res 7, [hl]
+	ld a, $4
+	ld [wd002], a
+	xor a
+	ld [wd005], a
+	ld hl, UnknownText_0xb91d7
+	ld a, $53
+	jp NextRadioLine
+
+BuenasPassword21: ; b9152 (2e:5152)
+	ld a, $4
+	ld [wd002], a
+	xor a
+	ld [wd005], a
+	call BuenasPasswordCheckMidnight
+	jp nc, BuenasPassword1
+	ld hl, UnknownText_0xb91d7
+	ld a, $53
+	jp NextRadioLine
+
+BuenasPasswordCheckMidnight: ; b9169 (2e:5169)
+	call UpdateTime
+	ld a, [hHours] ; $ff00+$94
+	cp $12
+	ret
+; b9171 (2e:5171)
+
+String_b9171:
+	db "BUENA'S PASSWORD@"
+; b9182
+
+UnknownText_0xb9182: ; 0xb9182
+	; BUENA: BUENA here!
+	text_jump UnknownText_0x1bce72
+	db "@"
+; 0xb9187
+
+UnknownText_0xb9187: ; 0xb9187
+	; Today's password!
+	text_jump UnknownText_0x1bce87
+	db "@"
+; 0xb918c
+
+UnknownText_0xb918c: ; 0xb918c
+	; Let me think… It's
+	text_jump UnknownText_0x1bce9a
+	db "@"
+; 0xb9191
+
+UnknownText_0xb9191: ; 0xb9191
+	; @ !
+	text_jump UnknownText_0x1bceae
+	db "@"
+; 0xb9196
+
+UnknownText_0xb9196: ; 0xb9196
+	; Don't forget it!
+	text_jump UnknownText_0x1bceb7
+	db "@"
+; 0xb919b
+
+UnknownText_0xb919b: ; 0xb919b
+	; I'm in GOLDENROD's
+	text_jump UnknownText_0x1bcec9
+	db "@"
+; 0xb91a0
+
+UnknownText_0xb91a0: ; 0xb91a0
+	; RADIO TOWER!
+	text_jump UnknownText_0x1bcedc
+	db "@"
+; 0xb91a5
+
+UnknownText_0xb91a5: ; 0xb91a5
+	; BUENA: Oh my…
+	text_jump UnknownText_0x1bceeb
+	db "@"
+; 0xb91aa
+
+UnknownText_0xb91aa: ; 0xb91aa
+	; It's midnight! I
+	text_jump UnknownText_0x1bcefb
+	db "@"
+; 0xb91af
+
+UnknownText_0xb91af: ; 0xb91af
+	; have to shut down!
+	text_jump UnknownText_0x1bcf0d
+	db "@"
+; 0xb91b4
+
+UnknownText_0xb91b4: ; 0xb91b4
+	; Thanks for tuning
+	text_jump UnknownText_0x1bcf22
+	db "@"
+; 0xb91b9
+
+UnknownText_0xb91b9: ; 0xb91b9
+	; in to the end! But
+	text_jump UnknownText_0x1bcf36
+	db "@"
+; 0xb91be
+
+UnknownText_0xb91be: ; 0xb91be
+	; don't stay up too
+	text_jump UnknownText_0x1bcf4b
+	db "@"
+; 0xb91c3
+
+UnknownText_0xb91c3: ; 0xb91c3
+	; late! Presented to
+	text_jump UnknownText_0x1bcf5e
+	db "@"
+; 0xb91c8
+
+UnknownText_0xb91c8: ; 0xb91c8
+	; you by DJ BUENA!
+	text_jump UnknownText_0x1bcf73
+	db "@"
+; 0xb91cd
+
+UnknownText_0xb91cd: ; 0xb91cd
+	; I'm outta here!
+	text_jump UnknownText_0x1bcf86
+	db "@"
+; 0xb91d2
+
+UnknownText_0xb91d2: ; 0xb91d2
+	; …
+	text_jump UnknownText_0x1bcf96
+	db "@"
+; 0xb91d7
+
+UnknownText_0xb91d7: ; 0xb91d7
+	;
+	text_jump UnknownText_0x1bcf99
+	db "@"
+; 0xb91dc
+
+CopyRadioTextToRAM: ; b91dc (2e:51dc)
+	ld a, [hl]
+	cp TX_FAR
+	jp z, FarJumpText
+	ld de, wd00c
+	ld bc, SCREEN_WIDTH * 2
+	jp CopyBytes
+
+StartRadioStation: ; b91eb (2e:51eb)
+	ld a, [wd005]
+	and a
+	ret nz
+	call RadioTerminator
+	call PrintText
+	ld hl, RadioChannelSongs
+	ld a, [wd002]
+	ld c, a
+	ld b, 0
+rept 2
+	add hl, bc
+endr
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	callab RadioMusicNone
+	ret
+; b920b (2e:520b)
+
+RadioChannelSongs: ; b920b
+	dw MUSIC_POKEMON_TALK
+	dw MUSIC_POKEMON_CENTER
+	dw MUSIC_TITLE
+	dw MUSIC_GAME_CORNER
+	dw MUSIC_BUENAS_PASSWORD
+	dw MUSIC_VIRIDIAN_CITY
+	dw MUSIC_BICYCLE
+	dw MUSIC_ROCKET_OVERTURE
+	dw MUSIC_POKE_FLUTE_CHANNEL
+	dw MUSIC_RUINS_OF_ALPH_RADIO
+	dw MUSIC_LAKE_OF_RAGE_ROCKET_RADIO
+; b9221
+
+NextRadioLine: ; b9221 (2e:5221)
+	push af
+	call CopyRadioTextToRAM
+	pop af
+	jp PrintRadioLine
+; b9229
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -475,7 +475,7 @@
 	ld de, LoadMenuDataHeader
 	ld a, [ScriptBank]
 	call Call_a_de
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 0x96f0f
 
@@ -483,7 +483,7 @@
 ; script command 0x50
 
 	call WriteBackup
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 0x96f16
 
@@ -1212,7 +1212,7 @@
 	jr nz, .asm_972b5 ; 0x972b0 $3
 	call Function972bc
 .asm_972b5
-	call DrawOnMap
+	call UpdateSprites
 	ret
 .not_visible
 	pop de
@@ -1222,8 +1222,8 @@
 
 Function972bc: ; 0x972bc
 	call Function217a
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 .asm_972c5
 	res 7, [hl]
 	inc hl
@@ -2970,7 +2970,7 @@
 	call Function2173
 	call Function2914
 	callba Function104061
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 0x97af6
 
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -75,7 +75,7 @@
 	add_special WhiteBGMap
 	add_special UpdateTimePals
 	add_special ClearTileMap
-	add_special DrawOnMap
+	add_special UpdateSprites
 	add_special Special_ReplaceKrisSprite
 	add_special Special_GameCornerPrizeMonCheckDex
 	add_special SpecialSeenMon
@@ -110,7 +110,7 @@
 	add_special SpecialNameRater
 	add_special Functionc2da
 	add_special GetFirstPokemonHappiness
-	add_special Function71ac
+	add_special CheckFirstMonIsEgg
 	add_special Function2a4ab
 	add_special Function2a51f
 	add_special RandomPhoneMon
--- a/home.asm
+++ b/home.asm
@@ -217,7 +217,7 @@
 	push af
 	ld a, 2
 	ld [rSVBK], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, w2_d000
 	ld bc, TileMapEnd - TileMap
 	call CopyBytes
@@ -241,7 +241,7 @@
 	ld a, 2
 	ld [rSVBK], a
 	ld hl, w2_d000
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, TileMapEnd - TileMap
 	call CopyBytes
 	pop af
@@ -271,7 +271,7 @@
 	ld c, a
 .loop
 	ld a, [hl]
-	cp $ff
+	cp -1
 	jr z, .NotInArray
 	cp c
 	jr z, .InArray
@@ -626,11 +626,11 @@
 	di
 	ld a, $1
 	ld [rVBK], a
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	call Function327b
 	ld a, $0
 	ld [rVBK], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	call Function327b
 .wait2
 	ld a, [rLY]
@@ -761,7 +761,7 @@
 	ret z
 
 .sgb
-	predef_jump Function864c ; LoadSGBLayout
+	predef_jump Predef_LoadSGBLayout ; LoadSGBLayout
 ; 334e
 
 
@@ -2153,11 +2153,11 @@
 ; 3f20
 
 Function3f20:: ; 3f20
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld b, $6
 	ld c, $14
 	call Function3f35
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $4
 	ld c, $12
 	call Function3f47
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -312,7 +312,7 @@
 	push hl
 	call SpeechTextBox
 	call MobileTextBorder
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	pop hl
 	call PrintTextBoxText
--- a/home/map.asm
+++ b/home/map.asm
@@ -97,7 +97,7 @@
 
 Function2173:: ; 2173
 	call Function217a
-	call Functiondb1
+	call FarCallFunction4c000
 	ret
 ; 217a
 
@@ -110,7 +110,7 @@
 
 	call Function2198
 	ld a, $60
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, TileMapEnd - TileMap
 	call ByteFill
 
@@ -1143,7 +1143,7 @@
 ; 0x26f2
 
 ObjectEventText::
-	TX_FAR _ObjectEventText
+	text_jump _ObjectEventText
 	db "@"
 ; 0x26f7
 
@@ -1200,11 +1200,11 @@
 
 
 Function272a:: ; 272a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, BGMapBuffer
 	call Function27b7
 	ld c, $28
-	call Functiondbd
+	call FarCallFunction4c03f
 	ld a, [wd152]
 	ld e, a
 	ld a, [wd153]
@@ -1220,7 +1220,7 @@
 	ld de, BGMapBuffer
 	call Function27b7
 	ld c, $28
-	call Functiondbd
+	call FarCallFunction4c03f
 	ld a, [wd152]
 	ld l, a
 	ld a, [wd153]
@@ -1239,11 +1239,11 @@
 ; 2771
 
 Function2771:: ; 2771
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, BGMapBuffer
 	call Function27c0
 	ld c, $24
-	call Functiondbd
+	call FarCallFunction4c03f
 	ld a, [wd152]
 	ld e, a
 	ld a, [wd153]
@@ -1259,7 +1259,7 @@
 	ld de, BGMapBuffer
 	call Function27c0
 	ld c, $24
-	call Functiondbd
+	call FarCallFunction4c03f
 	ld a, [wd152]
 	ld e, a
 	and $e0
@@ -1966,7 +1966,7 @@
 Function2b3c:: ; 2b3c
 	call WhiteBGMap
 	call Function2bae
-	call DrawOnMap
+	call UpdateSprites
 	call Function1d7d
 	call Functiond90
 	jr Function2b5c
@@ -1976,7 +1976,7 @@
 	call WhiteBGMap
 	call Function1d7d
 	call Function2bae
-	call DrawOnMap
+	call UpdateSprites
 	call Functiond90
 ; 2b5c
 
@@ -2003,7 +2003,7 @@
 	call TextBox
 	ld hl, VramState
 	set 0, [hl]
-	call DrawOnMap
+	call UpdateSprites
 	call Function3200
 	ld b, $9
 	call GetSGBLayout
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -623,7 +623,7 @@
 ; 1ad2
 
 
-DrawOnMap:: ; 1ad2
+UpdateSprites:: ; 1ad2
 	ld a, [VramState]
 	bit 0, a
 	ret z
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -75,7 +75,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function1c89
 	call Function321c
 	call Function1c66
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -209,7 +209,7 @@
 	push af
 	call ExitMenu
 	call Function321c
-	call DrawOnMap
+	call UpdateSprites
 	pop af
 	ret
 
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -323,7 +323,7 @@
 ; db1
 
 
-Functiondb1:: ; db1
+FarCallFunction4c000:: ; db1
 	ld a, [hROMBank]
 	push af
 	ld a, BANK(Function4c000)
@@ -334,7 +334,7 @@
 	ret
 ; dbd
 
-Functiondbd:: ; dbd
+FarCallFunction4c03f:: ; dbd
 	ld a, [hROMBank]
 	push af
 	ld a, BANK(Function4c03f)
--- a/home/text.asm
+++ b/home/text.asm
@@ -37,7 +37,7 @@
 ClearTileMap:: ; fc8
 ; Fill TileMap with blank tiles.
 
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, " "
 	ld bc, TileMapEnd - TileMap
 	call ByteFill
@@ -52,7 +52,7 @@
 
 ClearScreen:: ; fdb
 	ld a, TEXTBOX_PAL
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	jr ClearTileMap
@@ -163,7 +163,7 @@
 	done
 ; 1052
 
-Function1052:: ; 1052
+RadioTerminator:: ; 1052
 	ld hl, .stop
 	ret
 .stop	db "@"
@@ -181,7 +181,7 @@
 
 PrintTextBoxText:: ; 1065
 	bccoord TEXTBOX_INNERX, TEXTBOX_INNERY
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 106c
 
@@ -188,7 +188,7 @@
 SetUpTextBox:: ; 106c
 	push hl
 	call SpeechTextBox
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	pop hl
 	ret
@@ -478,7 +478,7 @@
 	jr .asm_12c4
 
 .asm_12d1
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, SCREEN_WIDTH
 	ld a, c
 .asm_12d8
@@ -697,7 +697,7 @@
 ; 13e5
 
 
-Function13e5:: ; 13e5
+PlaceWholeStringInBoxAtOnce:: ; 13e5
 	ld a, [TextBoxFrame + 1]
 	push af
 	set 1, a
@@ -780,7 +780,7 @@
 ; 1449
 
 Text_01:: ; 1449
-; TX_RAM
+; text_from_ram
 ; write text from a ram address
 ; little endian
 ; [$01][addr]
@@ -798,7 +798,7 @@
 ; 1455
 
 Text_16:: ; 1455
-; TX_FAR
+; text_jump
 ; write text from a different bank
 ; little endian
 ; [$16][addr][bank]
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -186,7 +186,7 @@
 	xor a
 	ld b, a
 	add hl, bc
-	ld bc, TileMap
+	bccoord 0, 0
 	add hl, bc
 	ret
 ; 1d19
@@ -216,7 +216,7 @@
 	xor a
 	ld b, a
 	add hl, bc
-	ld bc, AttrMap
+	bccoord 0, 0, AttrMap
 	add hl, bc
 	ret
 ; 1d35
--- a/home/video.asm
+++ b/home/video.asm
@@ -169,7 +169,7 @@
 	ld a, 1
 	ld [rVBK], a
 
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	call .update
 
 	ld a, 0
@@ -178,7 +178,7 @@
 
 
 .Tiles
-	ld hl, TileMap
+	hlcoord 0, 0
 
 
 .update
--- a/home/window.asm
+++ b/home/window.asm
@@ -83,7 +83,7 @@
 	ld [hBGMapMode], a
 	ld a, $1
 	ld [hOAMUpdate], a
-	call DrawOnMap
+	call UpdateSprites
 	xor a
 	ld [hOAMUpdate], a
 	call DelayFrame
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -1912,7 +1912,7 @@
 Functionf279: ; f279 (3:7279)
 	xor a
 	ld [hBGMapMode], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, TileMapEnd - TileMap
 	ld a, " "
 	call ByteFill
--- a/macros/movement.asm
+++ b/macros/movement.asm
@@ -359,12 +359,12 @@
 
 	enum movement_fish_got_bite
 fish_got_bite: macro
-	db movement_fish_got_bite
+	db movement_fish_got_bite ; $51
 	endm
 
 	enum movement_fish_got_bite_2
 fish_got_bite_2: macro
-	db movement_fish_got_bite_2
+	db movement_fish_got_bite_2 ; $52
 	endm
 
 	enum movement_hide_emote
@@ -381,4 +381,11 @@
 step_shake: macro
 	db movement_step_shake ; $55
 	db \1 ; displacement
+	endm
+
+__enum__ = $57
+	enum movement_rock_smash
+rock_smash: macro
+	db movement_rock_smash ; $57
+	db \1
 	endm
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -12,20 +12,20 @@
 dex    EQUS "db $e8, $50" ; End a Pokedex entry.
 
 
-TX_RAM: MACRO
-	db 1
+TX_RAM EQU 1
+TX_FAR EQU $16
+
+text_jump: MACRO
+	db TX_FAR
 	dw \1
+	db BANK(\1)
 	ENDM
 
-TX_FAR: MACRO
-	db $16
+text_from_ram: MACRO
+	db TX_RAM
 	dw \1
-	db BANK(\1)
 	ENDM
 
-
-text_from_ram EQUS "TX_RAM"
-
 text_dunno1: macro
 	db 5
 	endm
@@ -81,4 +81,3 @@
 	db $15
 	endm
 
-text_jump EQUS "TX_FAR"
--- a/main.asm
+++ b/main.asm
@@ -201,7 +201,7 @@
 	ld [wd84b], a
 
 	ld hl, PartyCount
-	call Function5ca1
+	call InitializePartyAndBag
 
 	xor a
 	ld [wCurBox], a
@@ -212,20 +212,20 @@
 	ld a, 1
 	call GetSRAMBank
 	ld hl, sBoxCount
-	call Function5ca1
+	call InitializePartyAndBag
 	call CloseSRAM
 
 	ld hl, NumItems
-	call Function5ca1
+	call InitializePartyAndBag
 
 	ld hl, NumKeyItems
-	call Function5ca1
+	call InitializePartyAndBag
 
 	ld hl, NumBalls
-	call Function5ca1
+	call InitializePartyAndBag
 
 	ld hl, PCItems
-	call Function5ca1
+	call InitializePartyAndBag
 
 	xor a
 	ld [wRoamMon1Species], a
@@ -249,7 +249,7 @@
 	call CloseSRAM
 
 	call Function5d33
-	call Function5cd3
+	call InitializeRalphName
 
 	xor a
 	ld [MonType], a
@@ -281,7 +281,7 @@
 	inc hl
 	ld [hl], 2300 % $100
 
-	call Function5ce9
+	call InitializeNPCNames
 
 	callba Function26751
 
@@ -293,7 +293,8 @@
 	ret
 ; 5ca1
 
-Function5ca1: ; 5ca1
+InitializePartyAndBag: ; 5ca1
+; Loads 0 in the count and -1 in the first item or mon slot.
 	xor a
 	ld [hli], a
 	dec a
@@ -334,7 +335,7 @@
 	db "BOX@"
 ; 5cd3
 
-Function5cd3: ; 5cd3
+InitializeRalphName: ; 5cd3
 	ld hl, wdfe8
 	ld a, $3
 	ld [hli], a
@@ -349,7 +350,7 @@
 	db "RALPH@"
 ; 5ce9
 
-Function5ce9: ; 5ce9
+InitializeNPCNames: ; 5ce9
 	ld hl, .Rival
 	ld de, RivalName
 	call .Copy
@@ -377,7 +378,7 @@
 ; 5d23
 
 InitializeWorld: ; 5d23
-	call Function610f
+	call ShrinkPlayer
 	callba GetSpawnCoord
 	callba Function113d6
 	ret
@@ -394,7 +395,7 @@
 	ld a, [$ac6a]
 	ld c, a
 	ld a, [$ac69]
-	jr z, .asm_5d55
+	jr z, .skip
 	ld a, b
 	ld [$ac68], a
 	call Random
@@ -401,7 +402,7 @@
 	ld c, a
 	call Random
 
-.asm_5d55
+.skip
 	ld [wdc9f], a
 	ld [$ac69], a
 	ld a, c
@@ -412,7 +413,7 @@
 
 Continue: ; 5d65
 	callba TryLoadSaveFile
-	jr c, .asm_5dd6
+	jr c, .FailToLoad
 	callba Function150b9
 	call Function1d6e
 	call Function5e85
@@ -423,13 +424,13 @@
 	call Function5e34
 	jr nc, .asm_5d8c
 	call WriteBackup
-	jr .asm_5dd6
+	jr .FailToLoad
 
 .asm_5d8c
 	call Function5e48
 	jr nc, .asm_5d96
 	call WriteBackup
-	jr .asm_5dd6
+	jr .FailToLoad
 
 .asm_5d96
 	ld a, $8
@@ -454,7 +455,7 @@
 	ld [$ff9f], a
 	jp Function5e5d
 
-.asm_5dd6
+.FailToLoad
 	ret
 
 .asm_5dd7
@@ -567,13 +568,13 @@
 	ret
 
 .asm_5e93
-	ld de, $0408
+	lb de, 4, 8
 	call Function5e9f
 	ret
 ; 5e9a
 
 Function5e9a: ; 5e9a
-	ld de, $0400
+	lb de, 4, 0
 	jr Function5e9f
 ; 5e9f
 
@@ -582,7 +583,7 @@
 	call Function5f1c
 	call Function5f40
 	call Functione5f
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 5eaf
 
@@ -591,7 +592,7 @@
 	call Function5f1c
 	call Function5f48
 	call Functione5f
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 5ebf
 
@@ -651,12 +652,12 @@
 	push hl
 	ld de, $005d
 	add hl, de
-	call Function5f58
+	call DisplayBadgeCount
 	pop hl
 	push hl
 	ld de, $0084
 	add hl, de
-	call Function5f6b
+	call DisplayPokedexNumCaught
 	pop hl
 	push hl
 	ld de, $0030
@@ -673,7 +674,7 @@
 Function5f40: ; 5f40
 	ld de, $00a9
 	add hl, de
-	call Function5f84
+	call DisplayGameTime
 	ret
 ; 5f48
 
@@ -688,7 +689,7 @@
 	db " ???@"
 ; 5f58
 
-Function5f58: ; 5f58
+DisplayBadgeCount: ; 5f58
 	push hl
 	ld hl, JohtoBadges
 	ld b, $2
@@ -695,11 +696,11 @@
 	call CountSetBits
 	pop hl
 	ld de, wd265
-	ld bc, $0102
+	lb bc, 1, 2
 	jp PrintNum
 ; 5f6b
 
-Function5f6b: ; 5f6b
+DisplayPokedexNumCaught: ; 5f6b
 	ld a, [StatusFlags]
 	bit 0, a
 	ret z
@@ -709,18 +710,18 @@
 	call CountSetBits
 	pop hl
 	ld de, wd265
-	ld bc, $0103
+	lb bc, 1, 3
 	jp PrintNum
 ; 5f84
 
-Function5f84: ; 5f84
+DisplayGameTime: ; 5f84
 	ld de, GameTimeHours
-	ld bc, $0203
+	lb bc, 2, 3
 	call PrintNum
 	ld [hl], $6d
 	inc hl
 	ld de, GameTimeMinutes
-	ld bc, $8102
+	lb bc, $81, 2
 	jp PrintNum
 ; 5f99
 
@@ -804,11 +805,11 @@
 	ret
 
 OakText1: ; 0x6045
-	TX_FAR _OakText1
+	text_jump _OakText1
 	db "@"
 
 OakText2: ; 0x604a
-	TX_FAR _OakText2
+	text_jump _OakText2
 	start_asm
 	ld a,WOOPER
 	call PlayCry
@@ -817,23 +818,23 @@
 	ret
 
 OakText3: ; 0x605b
-	TX_FAR _OakText3
+	text_jump _OakText3
 	db "@"
 
 OakText4: ; 0x6060
-	TX_FAR _OakText4
+	text_jump _OakText4
 	db "@"
 
 OakText5: ; 0x6065
-	TX_FAR _OakText5
+	text_jump _OakText5
 	db "@"
 
 OakText6: ; 0x606a
-	TX_FAR _OakText6
+	text_jump _OakText6
 	db "@"
 
 OakText7: ; 0x606f
-	TX_FAR _OakText7
+	text_jump _OakText7
 	db "@"
 
 NamePlayer: ; 0x6074
@@ -870,9 +871,9 @@
 	ld de, .Chris
 	ld a, [PlayerGender]
 	bit 0, a
-	jr z, .asm_60cf
+	jr z, .Male
 	ld de, .Kris
-.asm_60cf
+.Male
 	call InitName
 	ret
 
@@ -903,7 +904,7 @@
 	ret
 ; 610f
 
-Function610f: ; 610f
+ShrinkPlayer: ; 610f
 
 	ld a, [hROMBank]
 	push af
@@ -926,7 +927,7 @@
 
 	ld hl, Shrink1Pic
 	ld b, BANK(Shrink1Pic)
-	call Function61b4
+	call ShrinkFrame
 
 	ld c, 8
 	call DelayFrames
@@ -933,7 +934,7 @@
 
 	ld hl, Shrink2Pic
 	ld b, BANK(Shrink2Pic)
-	call Function61b4
+	call ShrinkFrame
 
 	ld c, 8
 	call DelayFrames
@@ -960,13 +961,13 @@
 Intro_FadeInFrontpic: ; 616a
 	ld hl, IntroFadePalettes
 	ld b, IntroFadePalettesEnd - IntroFadePalettes
-.asm_616f
+.loop
 	ld a, [hli]
 	call DmgToCgbBGPals
 	ld c, 10
 	call DelayFrames
 	dec b
-	jr nz, .asm_616f
+	jr nz, .loop
 	ret
 ; 617c
 
@@ -984,13 +985,13 @@
 	ld a, $77
 	ld [hWX], a
 	call DelayFrame
-	ld a, $e4
+	ld a, %11100100
 	call DmgToCgbBGPals
 .loop
 	call DelayFrame
 	ld a, [hWX]
 	sub $8
-	cp $ff
+	cp -1
 	ret z
 	ld [hWX], a
 	jr .loop
@@ -1007,7 +1008,7 @@
 	ret
 ; 61b4
 
-Function61b4: ; 61b4
+ShrinkFrame: ; 61b4
 	ld de, VTiles2
 	ld c, $31
 	predef DecompressPredef
@@ -1604,7 +1605,7 @@
 	jr nz, .next
 
 	push de
-	call Function65d3
+	call ForgetMove
 	pop de
 	jp c, .cancel
 
@@ -1693,7 +1694,7 @@
 	ret
 ; 65d3
 
-Function65d3: ; 65d3
+ForgetMove: ; 65d3
 	push hl
 	ld hl, UnknownText_0x667f
 	call PrintText
@@ -1707,7 +1708,7 @@
 	ld bc, NUM_MOVES
 	call CopyBytes
 	pop hl
-.asm_65ee
+.loop
 	push hl
 	ld hl, UnknownText_0x6670
 	call PrintText
@@ -1744,7 +1745,7 @@
 	pop af
 	pop hl
 	bit 1, a
-	jr nz, .asm_6669
+	jr nz, .cancel
 	push hl
 	ld a, [wcfa9]
 	dec a
@@ -1758,19 +1759,19 @@
 	pop bc
 	pop de
 	ld a, d
-	jr c, .asm_6660
+	jr c, .hmmove
 	pop hl
 	add hl, bc
 	and a
 	ret
 
-.asm_6660
+.hmmove
 	ld hl, UnknownText_0x669a
 	call PrintText
 	pop hl
-	jr .asm_65ee
+	jr .loop
 
-.asm_6669
+.cancel
 	scf
 	ret
 ; 666b
@@ -1846,7 +1847,7 @@
 	inc hl
 ; reached end of commands table?
 	ld a, [hl]
-	cp a, $ff
+	cp a, -1
 	jr z, .done
 
 ; is the current char between this value (inclusive)...
@@ -2691,7 +2692,7 @@
 	jp CopyPokemonName_Buffer1_Buffer3
 ; 71ac
 
-Function71ac: ; 71ac
+CheckFirstMonIsEgg: ; 71ac
 	ld a, [PartySpecies]
 	ld [wd265], a
 	cp EGG
@@ -3751,7 +3752,7 @@
 ; 839a
 
 .data_839a
-	db 8, 9, 10, 11
+	db 8 + DOWN, 8 + UP, 8 + LEFT, 8 + RIGHT
 ; 839e
 
 
@@ -4026,7 +4027,7 @@
 	and %011111
 	call Function84ef
 	ld a, h
-	xor $ff
+	xor -1
 	inc a
 	ret
 ; 84ef
@@ -4091,7 +4092,7 @@
 	db DAY,  2
 	db NITE, 4
 	db NITE, 4
-	db $ff
+	db -1
 ; c01b
 
 
@@ -4584,7 +4585,7 @@
 BadgeRequiredText: ; c73d
 	; Sorry! A new BADGE
 	; is required.
-	TX_FAR _BadgeRequiredText
+	text_jump _BadgeRequiredText
 	db "@"
 ; c742
 
@@ -4756,7 +4757,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function2173
-	call DrawOnMap
+	call UpdateSprites
 	call DelayFrame
 	ld a, [wd1ef]
 	ld e, a
@@ -4763,7 +4764,7 @@
 	callba Function8c940
 	call BufferScreen
 	call Function2914
-	call DrawOnMap
+	call UpdateSprites
 	call DelayFrame
 	call Functione51
 	ret
@@ -5019,17 +5020,17 @@
 ; c9a9
 
 UsedSurfText: ; c9a9
-	TX_FAR _UsedSurfText
+	text_jump _UsedSurfText
 	db "@"
 ; c9ae
 
 CantSurfText: ; c9ae
-	TX_FAR _CantSurfText
+	text_jump _CantSurfText
 	db "@"
 ; c9b3
 
 AlreadySurfingText: ; c9b3
-	TX_FAR _AlreadySurfingText
+	text_jump _AlreadySurfingText
 	db "@"
 ; c9b8
 
@@ -5146,7 +5147,7 @@
 ; ca36
 
 AskSurfText: ; ca36
-	TX_FAR _AskSurfText ; The water is calm.
+	text_jump _AskSurfText ; The water is calm.
 	db "@"              ; Want to SURF?
 ; ca3b
 
@@ -5233,7 +5234,7 @@
 	special WarpToSpawnPoint
 	callasm DelayLoadingNewSprites
 	writecode VAR_MOVEMENT, $0
-	newloadmap $fc
+	newloadmap -4
 	callasm Function8cb33
 	special WaitSFX
 	callasm Functioncacb
@@ -5501,7 +5502,7 @@
 	farscall UnknownScript_0x122c1
 	special WarpToSpawnPoint
 	writecode VAR_MOVEMENT, $0
-	newloadmap $f5
+	newloadmap -11
 	playsound SFX_WARP_FROM
 	applymovement $0, MovementData_0xcc5d
 	end
@@ -5599,7 +5600,7 @@
 	farscall UnknownScript_0x122c1
 	special WarpToSpawnPoint
 	writecode VAR_MOVEMENT, $0
-	newloadmap $f4
+	newloadmap -12
 	playsound SFX_WARP_FROM
 	applymovement $0, MovementData_0xcce3
 	end
@@ -5689,12 +5690,12 @@
 
 UnknownText_0xcd41: ; 0xcd41
 	text_jump UnknownText_0x1c0774
-	db $50
+	db "@"
 ; 0xcd46
 
 UnknownText_0xcd46: ; 0xcd46
 	text_jump UnknownText_0x1c0788
-	db $50
+	db "@"
 ; 0xcd4b
 
 AskStrengthScript:
@@ -6096,7 +6097,7 @@
 ; 0xcf55
 
 MovementData_0xcf55: ; 0xcf55
-	db $57, $0a
+	rock_smash 10
 	step_end
 
 UnknownText_0xcf58: ; 0xcf58
@@ -6334,7 +6335,7 @@
 ; 0xd093
 
 MovementData_0xd093: ; d093
-	db $52
+	fish_got_bite_2
 	step_end
 ; d095
 
@@ -6343,7 +6344,7 @@
 	ld [hBGMapMode], a
 	ld a, $1
 	ld [PlayerAction], a
-	call DrawOnMap
+	call UpdateSprites
 	call Special_ReplaceKrisSprite
 	ret
 ; d0a4
@@ -12880,7 +12881,7 @@
 	jr .Select
 
 .Reopen
-	call DrawOnMap
+	call UpdateSprites
 	call UpdateTimePals
 	call .SetUpMenuItems
 	ld a, [wd0d2]
@@ -12996,7 +12997,7 @@
 	call .DrawMenuAccount_
 	call MenuFunc_1e7f
 	call .DrawBugContestStatus
-	call DrawOnMap
+	call UpdateSprites
 	call Functiond90
 	call Function2b5c
 	ret
@@ -15128,7 +15129,7 @@
 	ld hl, Elevator_MenuDataHeader
 	call CopyMenuDataHeader
 	call Function352f
-	call DrawOnMap
+	call UpdateSprites
 	xor a
 	ld [wd0e4], a
 	call Function350c
@@ -18183,7 +18184,7 @@
 	call Function1d6e
 	callba Function5e9a
 	call SpeechTextBox
-	call DrawOnMap
+	call UpdateSprites
 	callba Function4cf45
 	ld hl, UnknownText_0x15283
 	call SaveTheGame_yesorno
@@ -19551,7 +19552,7 @@
 	jr nz, .asm_156f9
 	call Function2173
 	call Function321c
-	call DrawOnMap
+	call UpdateSprites
 	call Function156b8
 	ld c, $0
 	ret
@@ -19742,15 +19743,15 @@
 ; 0x15850
 
 .HowManyText ; 0x15850
-	TX_FAR _KrissPCHowManyWithdrawText
+	text_jump _KrissPCHowManyWithdrawText
 	db "@"
 
 .WithdrewText ; 0x15855
-	TX_FAR _KrissPCWithdrewItemsText
+	text_jump _KrissPCWithdrewItemsText
 	db "@"
 
 .NoRoomText ; 0x1585a
-	TX_FAR _KrissPCNoRoomWithdrawText
+	text_jump _KrissPCNoRoomWithdrawText
 	db "@"
 
 
@@ -19915,15 +19916,15 @@
 
 
 .HowManyText ; 0x1596e
-	TX_FAR _KrissPCHowManyDepositText
+	text_jump _KrissPCHowManyDepositText
 	db "@"
 
 .DepositText ; 0x15973
-	TX_FAR _KrissPCDepositItemsText
+	text_jump _KrissPCDepositItemsText
 	db "@"
 
 .NoRoomText ; 0x15978
-	TX_FAR _KrissPCNoRoomDepositText
+	text_jump _KrissPCNoRoomDepositText
 	db "@"
 
 
@@ -20521,7 +20522,7 @@
 
 Function15cef: ; 15cef
 	callba Function24ae8
-	call DrawOnMap
+	call UpdateSprites
 	ld hl, MenuDataHeader_0x15e18
 	call CopyMenuDataHeader
 	ld a, [WalkingX]
@@ -21588,13 +21589,13 @@
 	call Function164ea
 	bccoord 1, 14
 	ld hl, UnknownText_0x164f4
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call YesNoBox
 	ret c
 	call Function164ea
 	bccoord 1, 14
 	ld hl, LostInstructionBookletText
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 
 .loop
@@ -21604,7 +21605,7 @@
 	bit 7, a
 	jr z, .asm_16497
 	ld hl, UnknownText_0x16508
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call YesNoBox
 	ret c
 	ld a, [wDST]
@@ -21614,12 +21615,12 @@
 	call Function164ea
 	bccoord 1, 14
 	ld hl, UnknownText_0x1650d
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 
 .asm_16497
 	ld hl, UnknownText_0x164fe
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call YesNoBox
 	ret c
 	ld a, [wDST]
@@ -21629,7 +21630,7 @@
 	call Function164ea
 	bccoord 1, 14
 	ld hl, UnknownText_0x16503
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 164b9
 
@@ -21743,7 +21744,7 @@
 	ld de, StringBuffer2
 	ld bc, $a306
 	call PrintNum
-	call DrawOnMap
+	call UpdateSprites
 	call Function3238
 	ret
 ; 1656b
@@ -24340,7 +24341,7 @@
 	ld a, [wcf94]
 	rst FarCall
 	call Function24085
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	call Function2408f
 	ret
@@ -24352,7 +24353,7 @@
 	rst FarCall
 	call Function24085
 	callba MobileTextBorder
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	call Function2408f
 	ret
@@ -24364,7 +24365,7 @@
 	rst FarCall
 	call Function24085
 	callba MobileTextBorder
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	call Function2411a
 	ld hl, wcfa5
@@ -25184,7 +25185,7 @@
 	ld hl, MenuDataHeader_0x24547
 	call CopyMenuDataHeader
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	ld b, $12
 	call GetSGBLayout
@@ -25220,7 +25221,7 @@
 	ld [hBGMapMode], a
 	call Function2173
 	call Function321c
-	call DrawOnMap
+	call UpdateSprites
 	call Functione51
 	ret
 ; 24547
@@ -26700,7 +26701,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function1c89
 	call WaitBGMap
 	call Function1c66
@@ -27902,95 +27903,95 @@
 	dw OakRating19
 
 OakPCText1: ; 0x266de
-	TX_FAR _OakPCText1
+	text_jump _OakPCText1
 	db "@"
 
 OakPCText2: ; 0x266e3
-	TX_FAR _OakPCText2
+	text_jump _OakPCText2
 	db "@"
 
 OakPCText3: ; 0x266e8
-	TX_FAR _OakPCText3
+	text_jump _OakPCText3
 	db "@"
 
 OakRating01:
-	TX_FAR _OakRating01
+	text_jump _OakRating01
 	db "@"
 
 OakRating02:
-	TX_FAR _OakRating02
+	text_jump _OakRating02
 	db "@"
 
 OakRating03:
-	TX_FAR _OakRating03
+	text_jump _OakRating03
 	db "@"
 
 OakRating04:
-	TX_FAR _OakRating04
+	text_jump _OakRating04
 	db "@"
 
 OakRating05:
-	TX_FAR _OakRating05
+	text_jump _OakRating05
 	db "@"
 
 OakRating06:
-	TX_FAR _OakRating06
+	text_jump _OakRating06
 	db "@"
 
 OakRating07:
-	TX_FAR _OakRating07
+	text_jump _OakRating07
 	db "@"
 
 OakRating08:
-	TX_FAR _OakRating08
+	text_jump _OakRating08
 	db "@"
 
 OakRating09:
-	TX_FAR _OakRating09
+	text_jump _OakRating09
 	db "@"
 
 OakRating10:
-	TX_FAR _OakRating10
+	text_jump _OakRating10
 	db "@"
 
 OakRating11:
-	TX_FAR _OakRating11
+	text_jump _OakRating11
 	db "@"
 
 OakRating12:
-	TX_FAR _OakRating12
+	text_jump _OakRating12
 	db "@"
 
 OakRating13:
-	TX_FAR _OakRating13
+	text_jump _OakRating13
 	db "@"
 
 OakRating14:
-	TX_FAR _OakRating14
+	text_jump _OakRating14
 	db "@"
 
 OakRating15:
-	TX_FAR _OakRating15
+	text_jump _OakRating15
 	db "@"
 
 OakRating16:
-	TX_FAR _OakRating16
+	text_jump _OakRating16
 	db "@"
 
 OakRating17:
-	TX_FAR _OakRating17
+	text_jump _OakRating17
 	db "@"
 
 OakRating18:
-	TX_FAR _OakRating18
+	text_jump _OakRating18
 	db "@"
 
 OakRating19:
-	TX_FAR _OakRating19
+	text_jump _OakRating19
 	db "@"
 
 OakPCText4: ; 0x2674c
-	TX_FAR _OakPCText4
+	text_jump _OakPCText4
 	db "@"
 
 
@@ -29550,7 +29551,7 @@
 	call DelayFrames
 	call ClearScreen
 	call ClearSprites
-	call DrawOnMap
+	call UpdateSprites
 	xor a
 	ld [hSCX], a
 	ld [hSCY], a
@@ -29557,7 +29558,7 @@
 	ld c, $50
 	call DelayFrames
 	call ClearScreen
-	call DrawOnMap
+	call UpdateSprites
 	call Functione51
 	call Functione58
 	callba Function16d69a
@@ -30038,7 +30039,7 @@
 	pop de
 	pop hl
 	bccoord 1, 14
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call FadeToWhite
 	call ClearScreen
 	ld b, $8
@@ -31022,7 +31023,7 @@
 	callba Function4d354
 	ld hl, UnknownText_0x28aaf
 	bccoord 1, 14
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	jr .asm_28a89
 
 .asm_28a58
@@ -31044,7 +31045,7 @@
 	callba Function4d354
 	ld hl, UnknownText_0x28ac4
 	bccoord 1, 14
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 
 .asm_28a89
 	hlcoord 0, 12
@@ -31221,7 +31222,7 @@
 	call GetPokemonName
 	ld hl, UnknownText_0x28eb8
 	bccoord 1, 14
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	call Function1d6e
 	hlcoord 10, 7
 	ld b, $3
@@ -38721,7 +38722,7 @@
 ; 0x447b4
 
 .EmptyMailboxText ; 0x447b4
-	TX_FAR _EmptyMailboxText
+	text_jump _EmptyMailboxText
 	db "@"
 
 InitMail: ; 0x447b9
@@ -38791,7 +38792,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function352f
-	call DrawOnMap
+	call UpdateSprites
 	ld a, [wd0f1]
 	ld [wcf88], a
 	ld a, [OBPals + 8 * 6]
@@ -38869,15 +38870,15 @@
 ; 0x448ac
 
 .PutAwayText ; 0x448ac
-	TX_FAR ClearedMailPutAwayText
+	text_jump ClearedMailPutAwayText
 	db "@"
 
 .PackFullText ; 0x448b1
-	TX_FAR MailPackFullText
+	text_jump MailPackFullText
 	db "@"
 
 .MessageLostText ; 0x448b6
-	TX_FAR MailMessageLostText
+	text_jump MailMessageLostText
 	db "@"
 
 .Function448bb: ; 0x448bb
@@ -38939,15 +38940,15 @@
 ; 0x4493c
 
 .HoldingMailText ; 0x4493c
-	TX_FAR MailAlreadyHoldingItemText
+	text_jump MailAlreadyHoldingItemText
 	db "@"
 
 .EggText ; 0x44941
-	TX_FAR MailEggText
+	text_jump MailEggText
 	db "@"
 
 .MailMovedText ; 0x44946
-	TX_FAR MailMovedFromBoxText
+	text_jump MailMovedFromBoxText
 	db "@"
 
 .Cancel
@@ -43933,31 +43934,31 @@
 Function4aa7a: ; 4aa7a
 	ld hl, DefaultFlypoint
 	ld d, $3
-.asm_4aa7f
-	ld e, $6
+.loop
+	ld e, PARTY_LENGTH
 	ld a, [hli]
 	push de
 	push hl
-	cp $ff
-	jr z, .asm_4aab3
-	ld hl, wc314
+	cp -1
+	jr z, .done
+	ld hl, wPartyMon1MenuIconAnim
 	inc a
 	ld d, a
-.asm_4aa8d
+.inner_loop
 	ld a, [hl]
 	and a
-	jr z, .asm_4aaa5
+	jr z, .next
 	cp d
-	jr z, .asm_4aa9a
-	jr .asm_4aaa5
+	jr z, .same_as_d
+	jr .next
 
 	ld a, $3
-	jr .asm_4aa9c
+	jr .proceed
 
-.asm_4aa9a
+.same_as_d
 	ld a, $2
 
-.asm_4aa9c
+.proceed
 	push hl
 	ld c, l
 	ld b, h
@@ -43966,22 +43967,22 @@
 	ld [hl], a
 	pop hl
 
-.asm_4aaa5
+.next
 	ld bc, $0010
 	add hl, bc
 	dec e
-	jr nz, .asm_4aa8d
+	jr nz, .inner_loop
 	pop hl
 	pop de
 	dec d
-	jr nz, .asm_4aa7f
-	jr .asm_4aab5
+	jr nz, .loop
+	jr .finished
 
-.asm_4aab3
+.done
 	pop hl
 	pop de
 
-.asm_4aab5
+.finished
 	ret
 ; 4aab6
 
@@ -43988,10 +43989,10 @@
 Function4aab6: ; 4aab6
 	ld hl, DefaultFlypoint
 	ld d, $3
-.asm_4aabb
+.loop
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_4aad2
+	cp -1
+	jr z, .done
 	push de
 	push hl
 	hlcoord 0, 1
@@ -44001,9 +44002,9 @@
 	pop hl
 	pop de
 	dec d
-	jr nz, .asm_4aabb
+	jr nz, .loop
 
-.asm_4aad2
+.done
 	ret
 ; 4aad3
 
@@ -44011,12 +44012,12 @@
 	ld hl, PartyCount
 	ld a, [hli]
 	and a
-	ret z
+	ret z ; Nothing in your party
 
 	ld c, a
 	xor a
 	ld [$ffb0], a
-.asm_4aadd
+.loop
 	push bc
 	push hl
 	ld e, 0
@@ -44027,7 +44028,7 @@
 	pop hl
 	pop bc
 	dec c
-	jr nz, .asm_4aadd
+	jr nz, .loop
 
 	call Function4aa7a
 	callba Function8cf69
@@ -44037,11 +44038,11 @@
 Function4aafb: ; 4aafb
 	ld a, [CurPartySpecies]
 	cp EGG
-	jr z, .asm_4ab04
+	jr z, .egg
 	and a
 	ret
 
-.asm_4ab04
+.egg
 	scf
 	ret
 ; 4ab06
@@ -44055,10 +44056,10 @@
 	ld b, a
 	ld a, [hl]
 	or b
-	jr nz, .asm_4ab19
+	jr nz, .NotFainted
 	scf
 
-.asm_4ab19
+.NotFainted
 	ret
 ; 4ab1a
 
@@ -44563,7 +44564,7 @@
 	ld a, [hOAMUpdate]
 	push af
 	call ExitMenu
-	call DrawOnMap
+	call UpdateSprites
 	xor a
 	ld [hOAMUpdate], a
 	call DelayFrame
@@ -46344,7 +46345,7 @@
 	push hl
 	call WhiteBGMap
 	call ClearTileMap
-	call DrawOnMap
+	call UpdateSprites
 	callba Functionfb53e
 	pop hl
 	call _hl_
@@ -55176,10 +55177,10 @@
 
 Function84757: ; 84757
 	ld a, [wca88]
-	cp $ff
+	cp -1
 	jr nz, .c_directly_below_e5
 	ld a, [wca89]
-	cp $ff
+	cp -1
 	jr z, .asm_8477f
 
 .c_directly_below_e5
@@ -56278,7 +56279,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function352f
-	call DrawOnMap
+	call UpdateSprites
 	call Function350c
 	ld a, [wcf73]
 	cp $2
@@ -56348,7 +56349,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function88116
 	call Function88126
 	call Function321c
@@ -61465,7 +61466,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	call Function1cfd
 	inc hl
@@ -61648,7 +61649,7 @@
 	call CopyMenuDataHeader
 	ld a, [wdc4a]
 	ld c, a
-	callba Functionb8f8f
+	callba GetBuenasPassword
 	ld a, [wcf83]
 	add c
 	add $2
@@ -61701,7 +61702,7 @@
 	ld a, [MenuSelection]
 	add c
 	ld c, a
-	callba Functionb8f8f
+	callba GetBuenasPassword
 	pop hl
 	call PlaceString
 	ret
@@ -61724,7 +61725,7 @@
 
 .asm_8aff1
 	call DelayFrame
-	call DrawOnMap
+	call UpdateSprites
 	call Function8b097
 	call Function8b0e2
 	jr z, .asm_8b05f
@@ -61844,7 +61845,7 @@
 	ld hl, MenuDataHeader_0x8b0d1
 	call CopyMenuDataHeader
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function1cfd
 	ld bc, $0015
 	add hl, bc
@@ -61893,7 +61894,7 @@
 	ld [wcf76], a
 	ld [hBGMapMode], a
 	call Function352f
-	call DrawOnMap
+	call UpdateSprites
 	call Function350c
 	ld a, [MenuSelection]
 	ld c, a
@@ -63154,7 +63155,7 @@
 	ld c, $12
 	call Function8b703
 	call Function8b75d
-	call DrawOnMap
+	call UpdateSprites
 	call Function89209
 	call Function350c
 	call Function8920f
@@ -63957,7 +63958,7 @@
 	cp $4
 	jr z, .asm_8c288
 	callba Function6454
-	call DrawOnMap
+	call UpdateSprites
 	call DelayFrame
 	call Function8c2a0
 	call Function8cf4f
@@ -65695,12 +65696,12 @@
 ; 8cf7a
 
 Function8cf7a: ; 8cf7a
-	ld hl, wc314
-	ld e, $a
-.asm_8cf7f
+	ld hl, wPartyMon1MenuIconAnim
+	ld e, 10 ; Do this first loop 10 times
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_8cf91
+	jr z, .next ; Done with this iteration
 	ld c, l
 	ld b, h
 	push hl
@@ -65709,30 +65710,30 @@
 	call Function8d04c
 	pop de
 	pop hl
-	jr c, .asm_8cfa7
+	jr c, .done
 
-.asm_8cf91
+.next
 	ld bc, $0010
 	add hl, bc
 	dec e
-	jr nz, .asm_8cf7f
+	jr nz, .loop
 	ld a, [wc3b5]
 	ld l, a
-	ld h, $c4
-.asm_8cf9e
+	ld h, Sprites / $0100
+.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd)
 	ld a, l
-	cp $a0
-	jr nc, .asm_8cfa7
+	cp SpritesEnd % $0100
+	jr nc, .done
 	xor a
 	ld [hli], a
-	jr .asm_8cf9e
+	jr .loop2
 
-.asm_8cfa7
+.done
 	ret
 ; 8cfa8
 
 Function8cfa8: ; 8cfa8 (23:4fa8)
-	ld hl, wc314
+	ld hl, wPartyMon1MenuIconAnim
 	ld e, $a
 .asm_8cfad
 	ld a, [hl]
@@ -65768,7 +65769,7 @@
 Function8cfd6:: ; 8cfd6
 	push de
 	push af
-	ld hl, wc314
+	ld hl, wPartyMon1MenuIconAnim
 	ld e, $a
 .asm_8cfdd
 	ld a, [hl]
@@ -65854,19 +65855,20 @@
 
 
 Function8d03d: ; 8d03d (23:503d)
-	ld hl, wc314
+	ld hl, wPartyMon1MenuIconAnim
 	ld bc, $10
 	ld e, $a
 	xor a
-.asm_8d046
+.loop
 	ld [hl], a
 	add hl, bc
 	dec e
-	jr nz, .asm_8d046
+	jr nz, .loop
 	ret
 
 
 Function8d04c: ; 8d04c
+; Populate Sprites with the bounding mon icons
 	call Function8d0ec
 	call Function8d132
 	cp $fd
@@ -66046,7 +66048,7 @@
 
 
 Function8d132: ; 8d132
-.asm_8d132
+.loop
 	ld hl, $0008
 	add hl, bc
 	ld a, [hl]
@@ -66098,7 +66100,7 @@
 rept 2
 	dec [hl]
 endr
-	jr .asm_8d132
+	jr .loop
 
 .asm_8d17b
 	xor a
@@ -66109,7 +66111,7 @@
 	ld hl, $000a
 	add hl, bc
 	ld [hl], a
-	jr .asm_8d132
+	jr .loop
 ; 8d189
 
 Function8d189: ; 8d189
@@ -67099,81 +67101,156 @@
 	dw Unknown_8d948
 ; 8d76a
 
-Unknown_8d76a: 	db $00,$20, $ff
-Unknown_8d76d: 	db $00,$08, $01,$08, $fe
-Unknown_8d772: 	db $3d,$08, $3e,$08, $fe
-Unknown_8d777: 	db $3f,$08, $40,$08, $fe
-Unknown_8d77c: 	db $00,$04, $01,$04, $fe
-Unknown_8d781: 	db $3d,$04, $3e,$04, $fe
-Unknown_8d786: 	db $3f,$04, $40,$04, $fe
-Unknown_8d78b: 	db $00,$08, $01,$08, $00,$08, $01,$48, $fe
-Unknown_8d794: 	db $63,$08, $64,$08, $63,$08, $64,$48, $fe
-Unknown_8d79d: 	db $65,$08, $66,$08, $65,$08, $66,$48, $fe
-Unknown_8d7a6: 	db $1e,$01, $1f,$01, $fe
-Unknown_8d7ab: 	db $20,$01, $fd,$01, $fe
-Unknown_8d7b0: 	db $21,$01, $fd,$01, $fe
-Unknown_8d7b5: 	db $81,$0c, $82,$01, $83,$01, $82,$04, $81,$0c, $82,$0c, $83,$04, $84,$20, $85,$03, $86,$03, $87,$04, $88,$04, $89,$04, $8a,$0a, $8b,$07, $ff
-Unknown_8d7d4: 	db $23,$03, $23,$83, $fe
-Unknown_8d7d9: 	db $24,$02, $25,$02, $26,$02, $25,$02, $fe
-Unknown_8d7e2: 	db $27,$07, $28,$07, $27,$87, $28,$47, $fe
-Unknown_8d7eb: 	db $29,$07, $2a,$07, $29,$07, $2b,$07, $fe
-Unknown_8d7f4: 	db $29,$07, $2c,$07, $2d,$07, $2c,$07, $29,$07, $ff
-Unknown_8d7ff: 	db $2e,$14, $ff
-Unknown_8d802: 	db $2f,$20, $ff
-Unknown_8d805: 	db $30,$20, $ff
-Unknown_8d808: 	db $30,$03, $31,$03, $30,$03, $31,$43, $fe
-Unknown_8d811: 	db $32,$04, $33,$04, $34,$04, $fc
-Unknown_8d818: 	db $35,$03, $36,$03, $fe
-Unknown_8d81d: 	db $37,$07, $38,$07, $fe
-Unknown_8d822: 	db $39,$20, $ff
-Unknown_8d825: 	db $3b,$02, $3a,$02, $3b,$02, $ff
-Unknown_8d82c: 	db $3c,$20, $ff
-Unknown_8d82f: 	db $41,$08, $42,$08, $41,$08, $42,$48, $fe
-                db $43,$08, $44,$08, $fe
-                db $45,$08, $46,$08, $fe
-                db $47,$08, $48,$08, $fe
-                db $49,$01, $49,$41, $49,$c1, $49,$81, $fe
-                db $4a,$20, $ff
-                db $4b,$20, $ff
-                db $4c,$20, $ff
-                db $4d,$20, $ff
-                db $4e,$03, $fd,$03, $fe
-Unknown_8d861: 	db $fd,$20, $ff
-Unknown_8d864: 	db $4f,$20, $ff
-Unknown_8d867: 	db $50,$02, $51,$10, $fd,$01, $52,$01, $fd,$01, $53,$01, $fc
-Unknown_8d874: 	db $54,$20, $ff
-Unknown_8d877: 	db $55,$20, $ff
-Unknown_8d87a: 	db $55,$60, $ff
-Unknown_8d87d: 	db $55,$a0, $ff
-Unknown_8d880: 	db $55,$e0, $ff
-Unknown_8d883: 	db $56,$0a, $57,$09, $58,$0a, $59,$0a, $58,$09, $5a,$0a, $fe
-Unknown_8d890: 	db $50,$02, $5b,$02, $50,$02, $5b,$42, $fe
-Unknown_8d899: 	db $5c,$02, $ff
-Unknown_8d89c: 	db $5d,$02, $ff
-Unknown_8d89f: 	db $5e,$02, $ff
-Unknown_8d8a2: 	db $5f,$02, $ff
-Unknown_8d8a5: 	db $60,$02, $ff
-Unknown_8d8a8: 	db $61,$02, $ff
-Unknown_8d8ab: 	db $62,$02, $ff
-Unknown_8d8ae: 	db $32,$03, $33,$03, $34,$03, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $ff
-Unknown_8d8cd: 	db $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $30,$03, $31,$03, $30,$03, $31,$43, $32,$03, $33,$03, $34,$03, $fc
-Unknown_8d8ec: 	db $67,$03, $68,$03, $fe
-Unknown_8d8f1: 	db $6c,$03, $ff
-Unknown_8d8f4: 	db $6d,$03, $ff
-Unknown_8d8f7: 	db $69,$02, $6a,$02, $6b,$02, $fc
-Unknown_8d8fe: 	db $6e,$03, $6f,$03, $70,$03, $71,$03, $fe
-Unknown_8d907: 	db $71,$03, $6e,$07, $ff
-Unknown_8d90c: 	db $72,$20, $73,$07, $74,$07, $ff
-Unknown_8d913: 	db $75,$03, $ff
-Unknown_8d916: 	db $76,$03, $77,$03, $78,$07, $fc
-Unknown_8d91d: 	db $76,$43, $77,$43, $78,$47, $fc
-Unknown_8d924: 	db $76,$83, $77,$83, $78,$87, $fc
-Unknown_8d92b: 	db $76,$c3, $77,$c3, $78,$c7, $fc
-Unknown_8d932: 	db $79,$03, $7a,$03, $7b,$03, $7c,$07, $7d,$07, $ff
-Unknown_8d93d: 	db $7e,$03, $ff
-Unknown_8d940: 	db $fd,$00, $ff
-Unknown_8d943: 	db $7f,$08, $80,$08, $ff
-Unknown_8d948: 	db $7f,$48, $80,$48, $ff
+Unknown_8d76a: 	dw $2000
+                db -1
+Unknown_8d76d: 	dw $0800, $0801
+                db -2
+Unknown_8d772: 	dw $083d, $083e
+                db -2
+Unknown_8d777: 	dw $083f, $0840
+                db -2
+Unknown_8d77c: 	dw $0400, $0401
+                db -2
+Unknown_8d781: 	dw $043d, $043e
+                db -2
+Unknown_8d786: 	dw $043f, $0440
+                db -2
+Unknown_8d78b: 	dw $0800, $0801, $0800, $4801
+                db -2
+Unknown_8d794: 	dw $0863, $0864, $0863, $4864
+                db -2
+Unknown_8d79d: 	dw $0865, $0866, $0865, $4866
+                db -2
+Unknown_8d7a6: 	dw $011e, $011f
+                db -2
+Unknown_8d7ab: 	dw $0120, $01fd
+                db -2
+Unknown_8d7b0: 	dw $0121, $01fd
+                db -2
+Unknown_8d7b5: 	dw $0c81, $0182, $0183, $0482, $0c81, $0c82, $0483, $2084, $0385, $0386, $0487, $0488, $0489, $0a8a, $078b
+                db -1
+Unknown_8d7d4: 	dw $0323, $8323
+                db -2
+Unknown_8d7d9: 	dw $0224, $0225, $0226, $0225
+                db -2
+Unknown_8d7e2: 	dw $0727, $0728, $8727, $4728
+                db -2
+Unknown_8d7eb: 	dw $0729, $072a, $0729, $072b
+                db -2
+Unknown_8d7f4: 	dw $0729, $072c, $072d, $072c, $0729
+                db -1
+Unknown_8d7ff: 	dw $142e
+                db -1
+Unknown_8d802: 	dw $202f
+                db -1
+Unknown_8d805: 	dw $2030
+                db -1
+Unknown_8d808: 	dw $0330, $0331, $0330, $4331
+                db -2
+Unknown_8d811: 	dw $0432, $0433, $0434
+                db -4
+Unknown_8d818: 	dw $0335, $0336
+                db -2
+Unknown_8d81d: 	dw $0737, $0738
+                db -2
+Unknown_8d822: 	dw $2039
+                db -1
+Unknown_8d825: 	dw $023b, $023a, $023b
+                db -1
+Unknown_8d82c: 	dw $203c
+                db -1
+Unknown_8d82f: 	dw $0841, $0842, $0841, $4842
+                db -2
+                dw $0843, $0844
+                db -2
+                dw $0845, $0846
+                db -2
+                dw $0847, $0848
+                db -2
+                dw $0149, $4149, $c149, $8149
+                db -2
+                dw $204a
+                db -1
+                dw $204b
+                db -1
+                dw $204c
+                db -1
+                dw $204d
+                db -1
+                dw $034e, $03fd
+                db -2
+Unknown_8d861: 	dw $20fd
+                db -1
+Unknown_8d864: 	dw $204f
+                db -1
+Unknown_8d867: 	dw $0250, $1051, $01fd, $0152, $01fd, $0153
+                db -4
+Unknown_8d874: 	dw $2054
+                db -1
+Unknown_8d877: 	dw $2055
+                db -1
+Unknown_8d87a: 	dw $6055
+                db -1
+Unknown_8d87d: 	dw $a055
+                db -1
+Unknown_8d880: 	dw $e055
+                db -1
+Unknown_8d883: 	dw $0a56, $0957, $0a58, $0a59, $0958, $0a5a
+                db -2
+Unknown_8d890: 	dw $0250, $025b, $0250, $425b
+                db -2
+Unknown_8d899: 	dw $025c
+                db -1
+Unknown_8d89c: 	dw $025d
+                db -1
+Unknown_8d89f: 	dw $025e
+                db -1
+Unknown_8d8a2: 	dw $025f
+                db -1
+Unknown_8d8a5: 	dw $0260
+                db -1
+Unknown_8d8a8: 	dw $0261
+                db -1
+Unknown_8d8ab: 	dw $0262
+                db -1
+Unknown_8d8ae: 	dw $0332, $0333, $0334, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331
+                db -1
+Unknown_8d8cd: 	dw $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0330, $0331, $0330, $4331, $0332, $0333, $0334
+                db -4
+Unknown_8d8ec: 	dw $0367, $0368
+                db -2
+Unknown_8d8f1: 	dw $036c
+                db -1
+Unknown_8d8f4: 	dw $036d
+                db -1
+Unknown_8d8f7: 	dw $0269, $026a, $026b
+                db -4
+Unknown_8d8fe: 	dw $036e, $036f, $0370, $0371
+                db -2
+Unknown_8d907: 	dw $0371, $076e
+                db -1
+Unknown_8d90c: 	dw $2072, $0773, $0774
+                db -1
+Unknown_8d913: 	dw $0375
+                db -1
+Unknown_8d916: 	dw $0376, $0377, $0778
+                db -4
+Unknown_8d91d: 	dw $4376, $4377, $4778
+                db -4
+Unknown_8d924: 	dw $8376, $8377, $8778
+                db -4
+Unknown_8d92b: 	dw $c376, $c377, $c778
+                db -4
+Unknown_8d932: 	dw $0379, $037a, $037b, $077c, $077d
+                db -1
+Unknown_8d93d: 	dw $037e
+                db -1
+Unknown_8d940: 	dw $00fd
+                db -1
+Unknown_8d943: 	dw $087f, $0880
+                db -1
+Unknown_8d948: 	dw $487f, $4880
+                db -1
 ; 8d94d
 
 Unknown_8d94d: ; 8d94d
@@ -68892,23 +68969,23 @@
 ; 8ea4a
 
 Function8ea4a: ; 8ea4a
-	ld hl, wc314
+	ld hl, wPartyMon1MenuIconAnim
 	ld e, $6
 	ld a, [wcfa9]
 	ld d, a
-.asm_8ea53
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_8ea69
+	jr z, .next
 	cp d
-	jr z, .asm_8ea5e
+	jr z, .loadwithtwo
 	ld a, $0
-	jr .asm_8ea60
+	jr .ok
 
-.asm_8ea5e
+.loadwithtwo
 	ld a, $2
 
-.asm_8ea60
+.ok
 	push hl
 	ld c, l
 	ld b, h
@@ -68917,21 +68994,21 @@
 	ld [hl], a
 	pop hl
 
-.asm_8ea69
+.next
 	ld bc, $0010
 	add hl, bc
 	dec e
-	jr nz, .asm_8ea53
+	jr nz, .loop
 	ret
 ; 8ea71
 
 Function8ea71: ; 8ea71
-	ld hl, wc314
+	ld hl, wPartyMon1MenuIconAnim
 	ld e, $6
-.asm_8ea76
+.loop
 	ld a, [hl]
 	and a
-	jr z, .asm_8ea84
+	jr z, .zero
 	push hl
 	ld c, l
 	ld b, h
@@ -68939,16 +69016,16 @@
 	add hl, bc
 	ld [hl], $1
 	pop hl
-.asm_8ea84
+.zero
 	ld bc, $10
 	add hl, bc
 	dec e
-	jr nz, .asm_8ea76
+	jr nz, .loop
 	ret
 ; 8ea8c (23:6a8c)
 
 Function8ea8c: ; 8ea8c
-	ld hl, wc314
+	ld hl, wPartyMon1MenuIconAnim
 	ld e, $6
 	ld a, [wd0e3]
 	ld d, a
@@ -69569,7 +69646,7 @@
 	ld de, SFX_CALL
 	call PlaySFX
 	call Phone_CallerTextbox
-	call DrawOnMap
+	call UpdateSprites
 	callba Function4d188
 	ret
 ; 90355
@@ -70286,7 +70363,7 @@
 	call Function90993
 	jr nc, .asm_9096a
 	call ExitMenu
-	call DrawOnMap
+	call UpdateSprites
 	ld hl, UnknownText_0x90a44
 	call PrintText
 	call YesNoBox
@@ -70420,7 +70497,7 @@
 	ld bc, $0312
 	call ClearBox
 	ld hl, UnknownText_0x90a6c
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 90a6c
 
@@ -70451,7 +70528,7 @@
 	ld bc, $0312
 	call ClearBox
 	ld hl, UnknownText_0x90aa0
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 90aa0
 
@@ -70479,7 +70556,7 @@
 	ld bc, $0312
 	call ClearBox
 	ld hl, UnknownText_0x90acc
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 90acc
 
@@ -71142,7 +71219,7 @@
 	callba Function1dd6bb
 	ld hl, UnknownText_0x90faf
 	bccoord 6, 6
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 90fa8 (24:4fa8)
 
@@ -71973,7 +72050,7 @@
 
 
 Function914ab: ; 914ab (24:54ab)
-	ld hl, wc324
+	ld hl, wPartyMon2MenuIconAnim
 	ld bc, $90
 	xor a
 	call ByteFill
@@ -72232,17 +72309,6 @@
 	ret
 
 
-OAKS_POKEMON_TALK EQU 0
-POKEDEX_SHOW      EQU 1
-POKEMON_MUSIC     EQU 2
-LUCKY_CHANNEL     EQU 3
-BUENAS_PASSWORD   EQU 4
-PLACES_AND_PEOPLE EQU 5
-LETS_ALL_SING     EQU 6
-ROCKET_RADIO      EQU 7
-POKE_FLUTE_RADIO  EQU 8
-UNOWN_RADIO       EQU 9
-EVOLUTION_RADIO   EQU 10
 
 Function91753: ; 91753 (24:5753)
 	xor a ; OAKS_POKEMON_TALK
@@ -72378,7 +72444,7 @@
 Function91853: ; 91853
 	ret
 
-Function91854: ; 91854 (24:5854)
+RadioMusicNone: ; 91854 (24:5854)
 	push de
 	ld a, e
 	ld [wc6dc], a
@@ -72661,11 +72727,11 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	ld de, .asm_91a9b
+	ld de, .jump_return
 	push de
 	jp [hl]
 
-.asm_91a9b
+.jump_return
 	push de
 	hlcoord 0, 12
 	ld bc, $0412
@@ -72753,8 +72819,8 @@
 	ld a, [hl]
 	and A_BUTTON
 	jr nz, .pressedA
-	call Function91b73
-	call Function91c17
+	call FlyMapScroll
+	call GetMapCursorCoordinates
 	callba Function8cf69
 	call DelayFrame
 	jr .loop
@@ -72788,7 +72854,7 @@
 	ret
 ; 91b73
 
-Function91b73: ; 91b73
+FlyMapScroll: ; 91b73
 	ld a, [StartFlypoint]
 	ld e, a
 	ld a, [EndFlypoint]
@@ -72795,43 +72861,43 @@
 	ld d, a
 	ld hl, $ffa9
 	ld a, [hl]
-	and $40
-	jr nz, .asm_91b89
+	and D_UP
+	jr nz, .ScrollNext
 	ld a, [hl]
-	and $80
-	jr nz, .asm_91b9b
+	and D_DOWN
+	jr nz, .ScrollPrev
 	ret
 
-.asm_91b89
+.ScrollNext
 	ld hl, DefaultFlypoint
 	ld a, [hl]
 	cp d
-	jr nz, .asm_91b93
+	jr nz, .NotAtEndYet
 	ld a, e
 	dec a
 	ld [hl], a
 
-.asm_91b93
+.NotAtEndYet
 	inc [hl]
-	call Function91c3c
-	jr z, .asm_91b89
-	jr .asm_91bab
+	call CheckIfVisitedFlypoint
+	jr z, .ScrollNext
+	jr .Finally
 
-.asm_91b9b
+.ScrollPrev
 	ld hl, DefaultFlypoint
 	ld a, [hl]
 	cp e
-	jr nz, .asm_91ba5
+	jr nz, .NotAtStartYet
 	ld a, d
 	inc a
 	ld [hl], a
 
-.asm_91ba5
+.NotAtStartYet
 	dec [hl]
-	call Function91c3c
-	jr z, .asm_91b9b
+	call CheckIfVisitedFlypoint
+	jr z, .ScrollPrev
 
-.asm_91bab
+.Finally
 	call TownMapBubble
 	call WaitBGMap
 	xor a
@@ -72913,7 +72979,7 @@
 	ret
 ; 91c17
 
-Function91c17: ; 91c17
+GetMapCursorCoordinates: ; 91c17
 	ld a, [DefaultFlypoint]
 	ld l, a
 	ld h, $0
@@ -72935,7 +73001,8 @@
 	ret
 ; 91c3c
 
-Function91c3c: ; 91c3c
+CheckIfVisitedFlypoint: ; 91c3c
+; Check if the flypoint loaded in [hl] has been visited yet.
 	push bc
 	push de
 	push hl
@@ -73673,26 +73740,26 @@
 	ld b, $2
 	call GetSGBLayout
 	call Function32f9
-.asm_9236e
+.loop
 	call Functiona57
 	ld hl, hJoyPressed
 	ld a, [hl]
 	and B_BUTTON
-	jr nz, .asm_9238f
+	jr nz, .pressedB
 	ld a, [hl]
 	and A_BUTTON
-	jr nz, .asm_92393
+	jr nz, .pressedA
 	call Function923b8
-	call Function91c17
+	call GetMapCursorCoordinates
 	callba Function8cf69
 	call DelayFrame
-	jr .asm_9236e
+	jr .loop
 
-.asm_9238f
-	ld a, $ff
+.pressedB
+	ld a, -1
 	jr .asm_9239f
 
-.asm_92393
+.pressedA
 	ld a, [DefaultFlypoint]
 	ld l, a
 	ld h, 0
@@ -75513,11 +75580,11 @@
 ; 9311a (24:711a)
 
 UnknownText_9311a: ; 9311a
-	TX_FAR UnknownText_0x1c5079
+	text_jump UnknownText_0x1c5079
 	db "@"
 
 UnknownText_9311f: ; 9311f
-	TX_FAR UnknownText_0x1c5092
+	text_jump UnknownText_0x1c5092
 	db "@"
 
 Function93124: ; 93124 (24:7124)
@@ -87754,7 +87821,7 @@
 	call LowVolume
 	call WhiteBGMap
 	call ClearTileMap
-	call DrawOnMap
+	call UpdateSprites
 	call ClearSprites
 	ld a, [wPokedexStatus]
 	push af
--- a/maps/AzaleaGym.asm
+++ b/maps/AzaleaGym.asm
@@ -27,7 +27,7 @@
 	scall AzaleaGymTriggerRockets
 .FightDone
 	checkevent EVENT_GOT_TM49_FURY_CUTTER
-	iftrue UnknownScript_0x18ec6d
+	iftrue .GotFuryCutter
 	setevent EVENT_BEAT_TWINS_AMY_AND_MAY
 	setevent EVENT_BEAT_BUG_CATCHER_BENNY
 	setevent EVENT_BEAT_BUG_CATCHER_AL
@@ -35,7 +35,7 @@
 	writetext UnknownText_0x18ee2b
 	keeptextopen
 	verbosegiveitem TM_FURY_CUTTER, 1
-	iffalse UnknownScript_0x18ec71
+	iffalse .NoRoomForFuryCutter
 	setevent EVENT_GOT_TM49_FURY_CUTTER
 	writetext UnknownText_0x18eefa
 	closetext
@@ -42,10 +42,10 @@
 	loadmovesprites
 	end
 
-UnknownScript_0x18ec6d:
+.GotFuryCutter:
 	writetext UnknownText_0x18ef98
 	closetext
-UnknownScript_0x18ec71:
+.NoRoomForFuryCutter:
 	loadmovesprites
 	end
 
@@ -61,9 +61,9 @@
 	jumpstd radiotowerrockets
 
 TrainerTwinsAmyandmay1:
-	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY1, TwinsAmyandmay1SeenText, TwinsAmyandmay1BeatenText, $0000, TwinsAmyandmay1Script
+	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY1, TwinsAmyandmay1SeenText, TwinsAmyandmay1BeatenText, $0000, .AfterScript
 
-TwinsAmyandmay1Script:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f1fc
@@ -72,9 +72,9 @@
 	end
 
 TrainerTwinsAmyandmay2:
-	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY2, TwinsAmyandmay2SeenText, TwinsAmyandmay2BeatenText, $0000, TwinsAmyandmay2Script
+	trainer EVENT_BEAT_TWINS_AMY_AND_MAY, TWINS, AMYANDMAY2, TwinsAmyandmay2SeenText, TwinsAmyandmay2BeatenText, $0000, .AfterScript
 
-TwinsAmyandmay2Script:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f269
@@ -83,9 +83,9 @@
 	end
 
 TrainerBug_catcherBug_catcher_benny:
-	trainer EVENT_BEAT_BUG_CATCHER_BENNY, BUG_CATCHER, BUG_CATCHER_BENNY, Bug_catcherBug_catcher_bennySeenText, Bug_catcherBug_catcher_bennyBeatenText, $0000, Bug_catcherBug_catcher_bennyScript
+	trainer EVENT_BEAT_BUG_CATCHER_BENNY, BUG_CATCHER, BUG_CATCHER_BENNY, Bug_catcherBug_catcher_bennySeenText, Bug_catcherBug_catcher_bennyBeatenText, $0000, .AfterScript
 
-Bug_catcherBug_catcher_bennyScript:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f053
@@ -94,9 +94,9 @@
 	end
 
 TrainerBug_catcherAl:
-	trainer EVENT_BEAT_BUG_CATCHER_AL, BUG_CATCHER, AL, Bug_catcherAlSeenText, Bug_catcherAlBeatenText, $0000, Bug_catcherAlScript
+	trainer EVENT_BEAT_BUG_CATCHER_AL, BUG_CATCHER, AL, Bug_catcherAlSeenText, Bug_catcherAlBeatenText, $0000, .AfterScript
 
-Bug_catcherAlScript:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f0d3
@@ -105,9 +105,9 @@
 	end
 
 TrainerBug_catcherJosh:
-	trainer EVENT_BEAT_BUG_CATCHER_JOSH, BUG_CATCHER, JOSH, Bug_catcherJoshSeenText, Bug_catcherJoshBeatenText, $0000, Bug_catcherJoshScript
+	trainer EVENT_BEAT_BUG_CATCHER_JOSH, BUG_CATCHER, JOSH, Bug_catcherJoshSeenText, Bug_catcherJoshBeatenText, $0000, .AfterScript
 
-Bug_catcherJoshScript:
+.AfterScript:
 	talkaftercancel
 	loadfont
 	writetext UnknownText_0x18f17e
--- a/maps/GoldenrodFlowerShop.asm
+++ b/maps/GoldenrodFlowerShop.asm
@@ -5,17 +5,17 @@
 .MapCallbacks:
 	db 0
 
-TeacherScript_0x5535d:
+FlowerShopTeacherScript:
 	checkevent EVENT_FOUGHT_SUDOWOODO
-	iftrue UnknownScript_0x5538f
+	iftrue .Lalala
 	checkevent EVENT_GOT_SQUIRTBOTTLE
-	iftrue UnknownScript_0x55399
+	iftrue .GotSquirtbottle
 	checkevent EVENT_MET_FLORIA
-	iffalse UnknownScript_0x5539f
+	iffalse .HaventMetFloria
 	checkevent EVENT_TALKED_TO_FLORIA_AT_FLOWER_SHOP
-	iffalse UnknownScript_0x5538f
+	iffalse .Lalala
 	checkflag ENGINE_PLAINBADGE
-	iffalse UnknownScript_0x5539c
+	iffalse .NoPlainBadge
 	faceplayer
 	loadfont
 	writetext UnknownText_0x554c2
@@ -27,7 +27,7 @@
 	clearevent EVENT_FLORIA_AT_FLOWER_SHOP
 	end
 
-UnknownScript_0x5538f:
+.Lalala:
 	spriteface $2, LEFT
 	loadfont
 	writetext UnknownText_0x5552e
@@ -35,22 +35,22 @@
 	loadmovesprites
 	end
 
-UnknownScript_0x55399:
+.GotSquirtbottle:
 	jumptextfaceplayer UnknownText_0x5550d
 
-UnknownScript_0x5539c:
+.NoPlainBadge:
 	jumptextfaceplayer UnknownText_0x55463
 
-UnknownScript_0x5539f:
+.HaventMetFloria:
 	jumptextfaceplayer UnknownText_0x553d4
 
-LassScript_0x553a2:
+FlowerShopFloriaScript:
 	faceplayer
 	loadfont
 	checkevent EVENT_FOUGHT_SUDOWOODO
-	iftrue UnknownScript_0x553c5
+	iftrue .FoughtSudowoodo
 	checkevent EVENT_GOT_SQUIRTBOTTLE
-	iftrue UnknownScript_0x553bf
+	iftrue .GotSquirtbottle
 	writetext UnknownText_0x55561
 	closetext
 	loadmovesprites
@@ -59,13 +59,13 @@
 	clearevent EVENT_FLORIA_AT_SUDOWOODO
 	end
 
-UnknownScript_0x553bf:
+.GotSquirtbottle:
 	writetext UnknownText_0x555e6
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x553c5:
+.FoughtSudowoodo:
 	writetext UnknownText_0x55604
 	closetext
 	loadmovesprites
@@ -172,5 +172,5 @@
 
 .PersonEvents:
 	db 2
-	person_event SPRITE_TEACHER, 8, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, TeacherScript_0x5535d, -1
-	person_event SPRITE_LASS, 10, 9, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, LassScript_0x553a2, EVENT_FLORIA_AT_FLOWER_SHOP
+	person_event SPRITE_TEACHER, 8, 6, OW_LEFT | $1, $0, -1, -1, $0, 0, FlowerShopTeacherScript, -1
+	person_event SPRITE_LASS, 10, 9, OW_DOWN | $2, $11, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP
--- a/maps/Route35NationalParkgate.asm
+++ b/maps/Route35NationalParkgate.asm
@@ -135,7 +135,7 @@
 	if_equal 0, Route35NationalParkgate_NoRoomInBox
 
 Route35NationalParkgate_LessThanFullParty: ; 6a27d
-	special Function71ac
+	special CheckFirstMonIsEgg
 	if_equal $1, Route35NationalParkgate_FirstMonIsEgg
 	writetext UnknownText_0x6a4c6
 	yesorno
--- a/maps/Route36NationalParkgate.asm
+++ b/maps/Route36NationalParkgate.asm
@@ -3,9 +3,9 @@
 	db 3
 
 	; triggers
-	dw UnknownScript_0x6ab11, $0000
-	dw UnknownScript_0x6ab12, $0000
-	dw UnknownScript_0x6ab13, $0000
+	dw .Trigger1, $0000
+	dw .Trigger2, $0000
+	dw .Trigger3, $0000
 
 .MapCallbacks:
 	db 2
@@ -12,50 +12,50 @@
 
 	; callbacks
 
-	dbw 5, UnknownScript_0x6ab17
+	dbw 5, .CheckIfContestRunning
 
-	dbw 2, UnknownScript_0x6ab23
+	dbw 2, .CheckIfContestAvailable
 
-UnknownScript_0x6ab11:
+.Trigger1:
 	end
 
-UnknownScript_0x6ab12:
+.Trigger2:
 	end
 
-UnknownScript_0x6ab13:
-	priorityjump UnknownScript_0x6ab47
+.Trigger3:
+	priorityjump .LeftTheContestEarly
 	end
 
-UnknownScript_0x6ab17:
+.CheckIfContestRunning:
 	checkflag ENGINE_BUG_CONTEST_TIMER
-	iftrue UnknownScript_0x6ab20
+	iftrue .BugContestIsRunning
 	dotrigger $0
 	return
 
-UnknownScript_0x6ab20:
+.BugContestIsRunning:
 	dotrigger $2
 	return
 
-UnknownScript_0x6ab23:
+.CheckIfContestAvailable:
 	checkevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE
-	iftrue UnknownScript_0x6ab46
+	iftrue .Return
 	checkcode VAR_WEEKDAY
-	if_equal TUESDAY, UnknownScript_0x6ab42
-	if_equal THURSDAY, UnknownScript_0x6ab42
-	if_equal SATURDAY, UnknownScript_0x6ab42
+	if_equal TUESDAY, .SetContestOfficer
+	if_equal THURSDAY, .SetContestOfficer
+	if_equal SATURDAY, .SetContestOfficer
 	checkflag ENGINE_BUG_CONTEST_TIMER
-	iftrue UnknownScript_0x6ab42
+	iftrue .SetContestOfficer
 	disappear $2
 	appear $d
 	return
 
-UnknownScript_0x6ab42:
+.SetContestOfficer:
 	appear $2
 	disappear $d
-UnknownScript_0x6ab46:
+.Return:
 	return
 
-UnknownScript_0x6ab47:
+.LeftTheContestEarly:
 	spriteface $0, UP
 	loadfont
 	checkcode VAR_CONTESTMINUTES
@@ -63,13 +63,13 @@
 	RAM2MEM $0
 	writetext UnknownText_0x6b284
 	yesorno
-	iffalse UnknownScript_0x6ab76
+	iffalse .GoBackToContest
 	writetext UnknownText_0x6b2c5
 	closetext
 	loadmovesprites
 	special Special_FadeBlackQuickly
 	special Special_ReloadSpritesNoPalettes
-	scall UnknownScript_0x6ab8c
+	scall .CopyContestants
 	disappear $2
 	appear $d
 	applymovement $0, MovementData_0x6add1
@@ -77,7 +77,7 @@
 	special Special_FadeInQuickly
 	jumpstd bugcontestresults
 
-UnknownScript_0x6ab76:
+.GoBackToContest:
 	writetext UnknownText_0x6b300
 	closetext
 	loadmovesprites
@@ -88,69 +88,69 @@
 	warpfacing $2, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $21, $12
 	end
 
-UnknownScript_0x6ab8c:
+.CopyContestants:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_1A
-	iftrue UnknownScript_0x6ab94
+	iftrue .Not1
 	appear $3
-UnknownScript_0x6ab94:
+.Not1:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_2A
-	iftrue UnknownScript_0x6ab9c
+	iftrue .Not2
 	appear $4
-UnknownScript_0x6ab9c:
+.Not2:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_3A
-	iftrue UnknownScript_0x6aba4
+	iftrue .Not3
 	appear $5
-UnknownScript_0x6aba4:
+.Not3:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_4A
-	iftrue UnknownScript_0x6abac
+	iftrue .Not4
 	appear $6
-UnknownScript_0x6abac:
+.Not4:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_5A
-	iftrue UnknownScript_0x6abb4
+	iftrue .Not5
 	appear $7
-UnknownScript_0x6abb4:
+.Not5:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_6A
-	iftrue UnknownScript_0x6abbc
+	iftrue .Not6
 	appear $8
-UnknownScript_0x6abbc:
+.Not6:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_7A
-	iftrue UnknownScript_0x6abc4
+	iftrue .Not7
 	appear $9
-UnknownScript_0x6abc4:
+.Not7:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_8A
-	iftrue UnknownScript_0x6abcc
+	iftrue .Not8
 	appear $a
-UnknownScript_0x6abcc:
+.Not8:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_9A
-	iftrue UnknownScript_0x6abd4
+	iftrue .Not9
 	appear $b
-UnknownScript_0x6abd4:
+.Not9:
 	checkevent EVENT_BUG_CATCHING_CONTESTANT_10A
-	iftrue UnknownScript_0x6abdc
+	iftrue .Not10
 	appear $c
-UnknownScript_0x6abdc:
-	special DrawOnMap
+.Not10:
+	special UpdateSprites
 	end
 
-OfficerScript_0x6abe0:
+Route36OfficerScriptContest:
 	checkcode VAR_WEEKDAY
-	if_equal SUNDAY, UnknownScript_0x6acf1
-	if_equal MONDAY, UnknownScript_0x6acf1
-	if_equal WEDNESDAY, UnknownScript_0x6acf1
-	if_equal FRIDAY, UnknownScript_0x6acf1
+	if_equal SUNDAY, _ContestNotOn
+	if_equal MONDAY, _ContestNotOn
+	if_equal WEDNESDAY, _ContestNotOn
+	if_equal FRIDAY, _ContestNotOn
 	faceplayer
 	loadfont
 	checkflag ENGINE_DAILY_BUG_CONTEST
-	iftrue UnknownScript_0x6ac91
-	scall UnknownScript_0x6ad02
+	iftrue Route36Officer_ContestHasConcluded
+	scall Route36Parkgate_DayToText
 	writetext UnknownText_0x6add5
 	yesorno
-	iffalse UnknownScript_0x6ac73
+	iffalse .DecidedNotToJoinContest
 	checkcode VAR_PARTYCOUNT
-	if_greater_than $1, UnknownScript_0x6ac41
+	if_greater_than $1, .LeaveMonsWithOfficer
 	special CheckFirstMonFainted
 	clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
-UnknownScript_0x6ac10:
+.ResumeStartingContest:
 	setflag ENGINE_BUG_CONTEST_TIMER
 	special PlayMapMusic
 	writetext UnknownText_0x6ae87
@@ -172,19 +172,19 @@
 	warpfacing $2, GROUP_NATIONAL_PARK_BUG_CONTEST, MAP_NATIONAL_PARK_BUG_CONTEST, $21, $12
 	end
 
-UnknownScript_0x6ac41:
+.LeaveMonsWithOfficer:
 	checkcode VAR_PARTYCOUNT
-	if_less_than $6, UnknownScript_0x6ac4d
+	if_less_than $6, .ContinueLeavingMons
 	checkcode VAR_BOXSPACE
-	if_equal $0, UnknownScript_0x6ac85
-UnknownScript_0x6ac4d:
-	special Function71ac
-	if_equal $1, UnknownScript_0x6ac8b
+	if_equal $0, .BoxFull
+.ContinueLeavingMons:
+	special CheckFirstMonIsEgg
+	if_equal $1, .FirstMonIsEgg
 	writetext UnknownText_0x6afb0
 	yesorno
-	iffalse UnknownScript_0x6ac79
+	iffalse .RefusedToLeaveMons
 	special CheckFirstMonFainted
-	iftrue UnknownScript_0x6ac7f
+	iftrue .FirstMonIsFainted
 	setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
 	writetext UnknownText_0x6b021
 	keeptextopen
@@ -192,95 +192,95 @@
 	playsound SFX_GOT_SAFARI_BALLS
 	waitbutton
 	keeptextopen
-	jump UnknownScript_0x6ac10
+	jump .ResumeStartingContest
 
-UnknownScript_0x6ac73:
+.DecidedNotToJoinContest:
 	writetext UnknownText_0x6b0c6
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac79:
+.RefusedToLeaveMons:
 	writetext UnknownText_0x6b081
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac7f:
+.FirstMonIsFainted:
 	writetext UnknownText_0x6b0f2
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac85:
+.BoxFull:
 	writetext UnknownText_0x6b166
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac8b:
+.FirstMonIsEgg:
 	writetext UnknownText_0x6b209
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ac91:
+Route36Officer_ContestHasConcluded:
 	checkevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
-	iftrue UnknownScript_0x6acaf
+	iftrue .Sunstone
 	checkevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
-	iftrue UnknownScript_0x6acbe
+	iftrue .Everstone
 	checkevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
-	iftrue UnknownScript_0x6accd
+	iftrue .GoldBerry
 	checkevent EVENT_CONTEST_OFFICER_HAS_BERRY
-	iftrue UnknownScript_0x6acdc
+	iftrue .Berry
 	writetext UnknownText_0x6b32b
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6acaf:
+.Sunstone:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem SUN_STONE, 1
-	iffalse UnknownScript_0x6aceb
+	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
 	loadmovesprites
 	end
 
-UnknownScript_0x6acbe:
+.Everstone:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem EVERSTONE, 1
-	iffalse UnknownScript_0x6aceb
+	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
 	loadmovesprites
 	end
 
-UnknownScript_0x6accd:
+.GoldBerry:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem GOLD_BERRY, 1
-	iffalse UnknownScript_0x6aceb
+	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
 	loadmovesprites
 	end
 
-UnknownScript_0x6acdc:
+.Berry:
 	writetext UnknownText_0x6b97f
 	keeptextopen
 	verbosegiveitem BERRY, 1
-	iffalse UnknownScript_0x6aceb
+	iffalse .BagFull
 	clearevent EVENT_CONTEST_OFFICER_HAS_BERRY
 	loadmovesprites
 	end
 
-UnknownScript_0x6aceb:
+.BagFull:
 	writetext UnknownText_0x6b910
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6acf1:
+_ContestNotOn:
 	jumptextfaceplayer UnknownText_0x6b370
 
 OfficerScript_0x6acf4:
@@ -287,13 +287,13 @@
 	faceplayer
 	loadfont
 	checkflag ENGINE_DAILY_BUG_CONTEST
-	iftrue UnknownScript_0x6ac91
+	iftrue Route36Officer_ContestHasConcluded
 	writetext UnknownText_0x6b370
 	closetext
 	loadmovesprites
 	end
 
-UnknownScript_0x6ad02:
+Route36Parkgate_DayToText:
 	jumpstd daytotext
 	end
 
@@ -862,7 +862,7 @@
 
 .PersonEvents:
 	db 12
-	person_event SPRITE_OFFICER, 7, 4, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, OfficerScript_0x6abe0, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
+	person_event SPRITE_OFFICER, 7, 4, OW_UP | $2, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, Route36OfficerScriptContest, EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
 	person_event SPRITE_YOUNGSTER, 9, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_RED << 4) | $80, 0, YoungsterScript_0x6ad06, EVENT_BUG_CATCHING_CONTESTANT_1B
 	person_event SPRITE_YOUNGSTER, 9, 8, OW_UP | $3, $0, -1, -1, (PAL_OW_GREEN << 4) | $80, 0, YoungsterScript_0x6ad1a, EVENT_BUG_CATCHING_CONTESTANT_2B
 	person_event SPRITE_ROCKER, 10, 6, OW_UP | $3, $0, -1, -1, (PAL_OW_BLUE << 4) | $80, 0, RockerScript_0x6ad2e, EVENT_BUG_CATCHING_CONTESTANT_3B
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -645,7 +645,7 @@
 	call Function17aae3
 	ld c, a
 	ld b, $0
-	ld hl, AttrMap ; AttrMap + 0 + 0 * SCREEN_WIDTH
+	hlcoord 0, 0, AttrMap
 	add hl, bc
 	push hl
 	ld a, $4
@@ -766,7 +766,7 @@
 Function17ac0c: ; 17ac0c (5e:6c0c)
 	call Function17ac1d
 	call Function17ac2a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $2
 	ld c, $12
 	call Function17ac46
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -173,7 +173,7 @@
 	xor a
 	ld [InLinkBattle], a
 	ld a, $4
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	callba Function11619d
 	ld hl, wcd29
 	set 6, [hl]
@@ -327,7 +327,7 @@
 	push de
 	callba Function106464
 	call Function3f20
-	call DrawOnMap
+	call UpdateSprites
 	hlcoord 1, 2
 	pop de
 	call PlaceString
@@ -797,7 +797,7 @@
 Function100504: ; 100504
 	push de
 	call Function3f20
-	call DrawOnMap
+	call UpdateSprites
 	pop de
 	hlcoord 4, 2
 	call PlaceString
@@ -830,7 +830,7 @@
 
 Function100534: ; 100534
 	call Function100513
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	ld a, [wcd28]
 	inc a
@@ -1514,10 +1514,10 @@
 
 
 Function100970: ; 100970
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, wdc00
 	call Function1009a5
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld de, $dd68
 	call Function1009a5
 	call Function1009d2
@@ -1527,18 +1527,18 @@
 
 Function100989: ; 100989
 	ld hl, wdc00
-	ld de, TileMap
+	decoord 0, 0
 	call Function1009a5
 	call Function1009ae
 	callba Function104061
 	ld hl, $dd68
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	call Function1009a5
 	ret
 ; 1009a5
 
 Function1009a5: ; 1009a5
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $3
 	call FarCopyWRAM
 	ret
@@ -1550,7 +1550,7 @@
 	ld a, $3
 	ld [rSVBK], a
 	ld hl, $d800
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld c, $14
 	ld b, $12
 .asm_1009bf
@@ -1829,7 +1829,7 @@
 	rst FarCall
 	callba Function24085
 	callba MobileTextBorder
-	call DrawOnMap
+	call UpdateSprites
 	call Function321c
 	callba Function2411a
 	ld hl, wcfa5
@@ -2084,7 +2084,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call Function1cbb
-	call DrawOnMap
+	call UpdateSprites
 	call Function1c89
 	call WaitBGMap
 	call Function1c66
@@ -2812,7 +2812,7 @@
 ; 101251
 
 Function101251: ; 101251
-	call DrawOnMap
+	call UpdateSprites
 	call ResetWindow
 	ld hl, UnknownText_0x1021f4
 	call Function1021e0
@@ -2829,7 +2829,7 @@
 ; 10126c
 
 Function10126c: ; 10126c
-	call DrawOnMap
+	call UpdateSprites
 	callba Script_reloadmappart
 	ld hl, UnknownText_0x1021f4
 	call Function1021e0
@@ -3018,7 +3018,7 @@
 	call Function1d7d
 	call Function2bae
 	callba Function106464
-	call DrawOnMap
+	call UpdateSprites
 	call Function2b5c
 	ret
 ; 1013c0
@@ -4174,7 +4174,7 @@
 	call Function101ee4
 	ld hl, wcd29
 	set 5, [hl]
-	call DrawOnMap
+	call UpdateSprites
 	ld a, [wcd25]
 	inc a
 	ld [wcd25], a
@@ -4356,7 +4356,7 @@
 
 Function101cc8: ; 101cc8
 	ld a, $1
-	ld [wc314], a
+	ld [wPartyMon1MenuIconAnim], a
 	ld a, $1
 	ld [wc30d], a
 	ld hl, wcd29
@@ -4369,7 +4369,7 @@
 
 Function101cdf: ; 101cdf
 	ld a, $6
-	ld [wc314], a
+	ld [wPartyMon1MenuIconAnim], a
 	ld a, $1
 	ld [wc30d], a
 	ld hl, wcd29
@@ -4382,7 +4382,7 @@
 
 Function101cf6: ; 101cf6
 	ld a, $b
-	ld [wc315], a
+	ld [wPartyMon1MenuIconAnim + 1], a
 	ld a, [wcd25]
 	inc a
 	ld [wcd25], a
@@ -4391,7 +4391,7 @@
 
 Function101d03: ; 101d03
 	ld a, $e
-	ld [wc315], a
+	ld [wPartyMon1MenuIconAnim + 1], a
 	ld a, [wcd25]
 	inc a
 	ld [wcd25], a
@@ -6747,11 +6747,11 @@
 Function102d9a: ; 102d9a
 	ld a, $7f
 	ld hl, SpritesEnd
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ld a, $7
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	callba Function104000
 	ret
@@ -7321,7 +7321,7 @@
 	ld a, [hl]
 	ld [wd1ee], a
 	call Function1034be
-	call DrawOnMap
+	call UpdateSprites
 	callba Function104000
 	ld a, $1
 	ld [wd1f0], a
@@ -7566,7 +7566,7 @@
 	ld [wd1f2], a
 
 Function1034f7: ; 10134f7
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, bc
 	ld a, [wd1ef]
 	ld bc, SCREEN_WIDTH
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -497,7 +497,7 @@
 	call Function3b2a
 	ld de, SFX_BALL_POOF
 	call PlaySFX
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $00f0
 	ld a, $7f
 	call ByteFill
@@ -632,7 +632,7 @@
 	call Function3b2a
 	ld de, SFX_BALL_POOF
 	call PlaySFX
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $00f0
 	ld a, $7f
 	call ByteFill
@@ -1386,8 +1386,8 @@
 ; 108ac8
 
 Function108ac8: ; 108ac8
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $7f
 	call ByteFill
 	ret
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -5588,14 +5588,14 @@
 Function11615a: ; 11615a
 	xor a
 	ld [wc30d], a
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld [wc310], a
 	ld [wc311], a
 	ld [wc312], a
 	ld [wc313], a
-	ld [wc314], a
-	ld [wc315], a
-	ld [wc318], a
+	ld [wPartyMon1MenuIconAnim], a
+	ld [wPartyMon1MenuIconAnim + 1], a
+	ld [wPartyMon1MenuIconAnim + 4], a
 	ld [wc3f6], a
 	ld [wc3f8], a
 	ld [wc3f2], a
@@ -5617,7 +5617,7 @@
 	ld a, [wc30d]
 	and a
 	ret z
-	ld a, [wc319]
+	ld a, [wPartyMon1MenuIconAnim + 5]
 	cp $2
 	jr c, .asm_1161b4
 	ld a, $a0
@@ -5631,7 +5631,7 @@
 ; 1161b8
 
 Function1161b8: ; 1161b8
-	ld a, [wc319]
+	ld a, [wPartyMon1MenuIconAnim + 5]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_1161c7
@@ -5758,9 +5758,9 @@
 	ld [wc2a9], a
 	ld a, d
 	ld [wc2aa], a
-	ld a, [wc319]
+	ld a, [wPartyMon1MenuIconAnim + 5]
 	inc a
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ret
 ; 11628c
 
@@ -5774,15 +5774,15 @@
 
 Function116294: ; 116294
 	callba Function170d02
-	ld a, [wc319]
+	ld a, [wPartyMon1MenuIconAnim + 5]
 	inc a
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld a, [rSVBK]
 	push af
 	ld a, $5
 	ld [rSVBK], a
 	ld hl, wd030
-	ld de, wc320
+	ld de, wPartyMon1MenuIconAnim + 12
 	ld bc, $0010
 	call CopyBytes
 	ld hl, Palette_11734e
@@ -5799,9 +5799,9 @@
 
 Function1162cb: ; 1162cb
 	callba Function170cc6
-	ld a, [wc319]
+	ld a, [wPartyMon1MenuIconAnim + 5]
 	inc a
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld a, [rSVBK]
 	push af
 	ld a, $5
@@ -5838,7 +5838,7 @@
 	ld c, a
 	ld a, [wc30f]
 	ld b, a
-	ld a, [wc318]
+	ld a, [wPartyMon1MenuIconAnim + 4]
 	ld e, a
 	ld a, [hli]
 	sub e
@@ -5928,7 +5928,7 @@
 	call ByteFill
 	ld a, $90
 	ld [hWY], a
-	call DrawOnMap
+	call UpdateSprites
 	pop af
 	ld [rSVBK], a
 	callba Function104061
@@ -5939,7 +5939,7 @@
 	xor a
 	ld [wc2aa], a
 	xor a
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld [wc30d], a
 	ret
 ; 1163c0
@@ -5961,7 +5961,7 @@
 	push af
 	ld a, $5
 	ld [rSVBK], a
-	ld hl, wc320
+	ld hl, wPartyMon1MenuIconAnim + 12
 	ld de, wd030
 	ld bc, $0010
 	call CopyBytes
@@ -5971,7 +5971,7 @@
 	call DelayFrame
 	ld a, $90
 	ld [hWY], a
-	call DrawOnMap
+	call UpdateSprites
 	callba Function14157
 	pop af
 	ld [rSVBK], a
@@ -5997,7 +5997,7 @@
 
 .asm_116439
 	xor a
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld [wc30d], a
 	ret
 ; 116441
@@ -6014,7 +6014,7 @@
 	xor a
 	ld [wc2aa], a
 	xor a
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld [wc30d], a
 	ret
 ; 116468
@@ -6021,7 +6021,7 @@
 
 Function116468: ; 116468
 	call Function116567
-	ld a, [wc314]
+	ld a, [wPartyMon1MenuIconAnim]
 	cp $d
 	jr nz, .asm_1164a8
 	ld hl, wc30e
@@ -6213,7 +6213,7 @@
 ; 11659d
 
 Function11659d: ; 11659d
-	ld a, [wc314]
+	ld a, [wPartyMon1MenuIconAnim]
 	cp $12
 	ret nc
 	ld e, a
@@ -6289,7 +6289,7 @@
 	call Function116780
 	ret c
 	ld a, $2
-	ld [wc314], a
+	ld [wPartyMon1MenuIconAnim], a
 	ret
 ; 116615
 
@@ -6332,17 +6332,17 @@
 	call Function116780
 	ret c
 	ld a, $7
-	ld [wc314], a
+	ld [wPartyMon1MenuIconAnim], a
 	ret
 ; 116655
 
 Function116655: ; 116655
 	xor a
-	ld [wc317], a
+	ld [wPartyMon1MenuIconAnim + 3], a
 	call Function11678e
 
 Function11665c:
-	ld hl, wc317
+	ld hl, wPartyMon1MenuIconAnim + 3
 	ld a, $1
 	xor [hl]
 	ld [hl], a
@@ -6349,7 +6349,7 @@
 	add $4
 	ld c, a
 	call Function11679c
-	ld a, [wc317]
+	ld a, [wPartyMon1MenuIconAnim + 3]
 	and a
 	jr nz, .asm_116673
 	ld a, $48
@@ -6378,7 +6378,7 @@
 	call Function116780
 	ret c
 	ld a, $c
-	ld [wc314], a
+	ld [wPartyMon1MenuIconAnim], a
 	ret
 ; 11669f
 
@@ -6393,9 +6393,9 @@
 	ld [wc30f], a
 	ld [wc3f3], a
 	ld a, $ff
-	ld [wc316], a
+	ld [wPartyMon1MenuIconAnim + 2], a
 	xor a
-	ld [wc317], a
+	ld [wPartyMon1MenuIconAnim + 3], a
 	ld a, $0
 	ld c, a
 	call Function11679c
@@ -6417,7 +6417,7 @@
 	cp $48
 	jr nz, .asm_1166e4
 	xor a
-	ld [wc316], a
+	ld [wPartyMon1MenuIconAnim + 2], a
 
 .asm_1166e4
 	ld a, [wc311]
@@ -6424,9 +6424,9 @@
 	cp $ff
 	ret nz
 	ld a, $4
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	xor a
-	ld [wc314], a
+	ld [wPartyMon1MenuIconAnim], a
 	ret
 ; 1166f4
 
@@ -6433,9 +6433,9 @@
 Function1166f4: ; 1166f4
 	ld [wc30e], a
 	ld a, b
-	ld [wc316], a
+	ld [wPartyMon1MenuIconAnim + 2], a
 	xor a
-	ld [wc317], a
+	ld [wPartyMon1MenuIconAnim + 3], a
 	ld hl, wc30f
 .asm_116702
 	call Random
@@ -6460,9 +6460,9 @@
 Function11671f: ; 11671f
 	ld [wc30f], a
 	ld a, b
-	ld [wc317], a
+	ld [wPartyMon1MenuIconAnim + 3], a
 	xor a
-	ld [wc316], a
+	ld [wPartyMon1MenuIconAnim + 2], a
 	ld hl, wc30e
 .asm_11672d
 	call Random
@@ -6482,11 +6482,11 @@
 
 Function116747: ; 116747
 	ld hl, wc30e
-	ld a, [wc316]
+	ld a, [wPartyMon1MenuIconAnim + 2]
 	add [hl]
 	ld [hl], a
 	ld hl, wc30f
-	ld a, [wc317]
+	ld a, [wPartyMon1MenuIconAnim + 3]
 	add [hl]
 	ld [hl], a
 	ret
@@ -6518,7 +6518,7 @@
 	ld a, $4
 
 .asm_11677a
-	ld [wc318], a
+	ld [wPartyMon1MenuIconAnim + 4], a
 	ret
 ; 11677e
 
@@ -6526,11 +6526,11 @@
 	ld a, $0
 
 Function116780:
-	ld hl, wc315
+	ld hl, wPartyMon1MenuIconAnim + 1
 	cp [hl]
 	jr z, .asm_11678c
 	ld a, [hl]
-	ld [wc314], a
+	ld [wPartyMon1MenuIconAnim], a
 	scf
 	ret
 
@@ -6540,15 +6540,15 @@
 ; 11678e
 
 Function11678e: ; 11678e
-	ld hl, wc314
+	ld hl, wPartyMon1MenuIconAnim
 	ld a, [hl]
-	ld [wc315], a
+	ld [wPartyMon1MenuIconAnim + 1], a
 	inc [hl]
 	ret
 ; 116797
 
 Function116797: ; 116797
-	ld hl, wc314
+	ld hl, wPartyMon1MenuIconAnim
 	inc [hl]
 	ret
 ; 11679c
@@ -8456,11 +8456,11 @@
 	db   "@"
 
 MobileStadiumEntryText: ; 0x117cd3
-	TX_FAR _MobileStadiumEntryText
+	text_jump _MobileStadiumEntryText
 	db "@"
 
 MobileStadiumSuccessText: ; 0x117cd8
-	TX_FAR _MobileStadiumSuccessText
+	text_jump _MobileStadiumSuccessText
 	db "@"
 
 Function117cdd: ; 0x117cdd
@@ -8938,7 +8938,7 @@
 	ld [wcd66], a
 	ld [wcd67], a
 	ld [wcd68], a
-	ld [wc31a], a
+	ld [wPartyMon1MenuIconAnim + 6], a
 	ld [wcd89], a
 	ld [wcd8a], a
 	ld [wcd8b], a
@@ -9527,7 +9527,7 @@
 	ld a, $a
 	call Function3e32
 	ld a, [wc3f0]
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld a, [wcd34]
 	ld [wcf66], a
 	ret
@@ -9571,13 +9571,13 @@
 	ld a, $a
 	call Function3e32
 	ld a, [wc3f0]
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld a, [wcd34]
 	ld [wcf66], a
 	ret
 
 Function118821: ; 118821 (46:4821)
-	ld a, [wc319]
+	ld a, [wPartyMon1MenuIconAnim + 5]
 	cp $3
 	jr c, .asm_11884a
 	cp $4
@@ -9590,7 +9590,7 @@
 	ld a, $a
 	ld [wc300], a
 	ld a, [wc3f0]
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld a, [wcd34]
 	ld [wcf66], a
 	scf
@@ -9669,7 +9669,7 @@
 ; 1188b0
 
 Function1188b0: ; 1188b0 (46:48b0)
-	ld de, wc346
+	ld de, wPartyMon4MenuIconAnim + 2
 	ld a, $c
 	jp Function119e2b
 
@@ -9701,7 +9701,7 @@
 	jp Function119e2b
 
 Function1188e7: ; 1188e7 (46:48e7)
-	ld de, wc346
+	ld de, wPartyMon4MenuIconAnim + 2
 	ld a, $5
 	call GetSRAMBank
 	ld a, [$aa4a]
@@ -9721,7 +9721,7 @@
 
 Function118903: ; 118903 (46:4903)
 	ld a, [wc3f0]
-	ld [wc319], a
+	ld [wPartyMon1MenuIconAnim + 5], a
 	ld c, $1
 	callba Function115e18
 	ld a, $8
@@ -9750,7 +9750,7 @@
 	call Function119e2e
 
 Function118936:
-	ld a, [wc31a]
+	ld a, [wPartyMon1MenuIconAnim + 6]
 	and a
 	ret nz
 	ld hl, MenuDataHeader_119cf7
@@ -10032,7 +10032,7 @@
 	jp Function119e2b
 
 Function118b24: ; 118b24 (46:4b24)
-	ld hl, wc346
+	ld hl, wPartyMon4MenuIconAnim + 2
 	ld a, $8
 	ld [hli], a
 	ld a, $c7
@@ -10045,7 +10045,7 @@
 	call Function119ec2
 	ld a, $80
 	ld [wcd89], a
-	ld hl, wc346
+	ld hl, wPartyMon4MenuIconAnim + 2
 	ret
 ; 118b42 (46:4b42)
 
@@ -10380,22 +10380,22 @@
 	call Function118440
 	call SpeechTextBox
 	ld hl, $d80e
-	ld de, wc320
+	ld de, wPartyMon1MenuIconAnim + 12
 	ld bc, $0026
 	call CopyBytes
 	xor a
-	ld [wc31f], a
+	ld [wPartyMon1MenuIconAnim + 11], a
 	ld a, $20
-	ld [wc31b], a
+	ld [wPartyMon1MenuIconAnim + 7], a
 	ld a, $c3
-	ld [wc31c], a
+	ld [wPartyMon1MenuIconAnim + 8], a
 	hlcoord 1, 14
 	ld a, l
-	ld [wc31d], a
+	ld [wPartyMon1MenuIconAnim + 9], a
 	ld a, h
-	ld [wc31e], a
+	ld [wPartyMon1MenuIconAnim + 10], a
 	ld a, $2
-	ld [wc31a], a
+	ld [wPartyMon1MenuIconAnim + 6], a
 	ld a, $1d
 	ld [wcd3c], a
 	ld a, $24
@@ -10468,7 +10468,7 @@
 	ld a, [wcc60]
 	and a
 	jr z, .asm_118fba
-	ld hl, wc346
+	ld hl, wPartyMon4MenuIconAnim + 2
 	ld a, $c608 % $100
 	ld [hli], a
 	ld a, $c608 / $100
@@ -10489,7 +10489,7 @@
 	call Function119ec2
 	ld a, $40
 	ld [wcd89], a
-	ld hl, wc346
+	ld hl, wPartyMon4MenuIconAnim + 2
 	ld de, $de00
 	ld bc, $0200
 	ld a, $2c
@@ -10549,7 +10549,7 @@
 	ld de, wcc60
 	call Function1191ad
 	ret c
-	ld hl, wc346
+	ld hl, wPartyMon4MenuIconAnim + 2
 	ld a, $8
 	ld [hli], a
 	ld a, $c6
@@ -10570,7 +10570,7 @@
 	call Function119ec2
 	ld a, $40
 	ld [wcd89], a
-	ld hl, wc346
+	ld hl, wPartyMon4MenuIconAnim + 2
 	ld de, Unkn1Pals
 	ld bc, $1000
 	ld a, $2c
@@ -11097,7 +11097,7 @@
 	ld a, $8
 	ld [wcd3c], a
 	call Function119ed8
-	ld hl, wc346
+	ld hl, wPartyMon4MenuIconAnim + 2
 	ld a, wd000 % $100
 	ld [hli], a
 	ld a, wd000 / $100
@@ -11118,7 +11118,7 @@
 	call Function119ec2
 	ld a, $40
 	ld [wcd89], a
-	ld hl, wc346
+	ld hl, wPartyMon4MenuIconAnim + 2
 	ld de, $de00
 	ld bc, $0200
 	ld a, $2c
@@ -11920,7 +11920,7 @@
 	call Function119e2e
 
 Function1198f7:
-	ld a, [wc31a]
+	ld a, [wPartyMon1MenuIconAnim + 6]
 	and a
 	ret nz
 	ld hl, $c608 + 2
@@ -12466,7 +12466,7 @@
 	call Function119e2e
 
 Function119cab:
-	ld a, [wc31a]
+	ld a, [wPartyMon1MenuIconAnim + 6]
 	and a
 	ret nz
 	ld a, $80
@@ -12503,7 +12503,7 @@
 	call Function119e2e
 
 Function119cdf:
-	ld a, [wc31a]
+	ld a, [wPartyMon1MenuIconAnim + 6]
 	and a
 	ret nz
 	ld a, $f
@@ -12949,7 +12949,7 @@
 	ld a, $1
 	ld [wc30d], a
 	ld a, $1
-	ld [wc314], a
+	ld [wPartyMon1MenuIconAnim], a
 	callba Function104061
 	and a
 	ret
@@ -13131,7 +13131,7 @@
 	call Function11a63c
 	call Function11a1e6
 	hlcoord 4, 2
-	ld de, wc346
+	ld de, wPartyMon4MenuIconAnim + 2
 	call PlaceString
 	call Function11a5f5
 	xor a
@@ -13185,7 +13185,7 @@
 
 Function11a1e6: ; 11a1e6
 	ld hl, String_11a706
-	ld de, wc346
+	ld de, wPartyMon4MenuIconAnim + 2
 	call Function11a1ff
 	ld hl, wcd85
 	call Function11a1ff
@@ -13734,15 +13734,15 @@
 	ld a, $5
 	ld [wcf84], a
 	call Function1c00
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld b, $6
 	ld c, $14
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld b, $4
 	ld c, $12
 	call Function3eea
 	callba Function104061
-	call DrawOnMap
+	call UpdateSprites
 	ld c, $0
 	callba Function115e18
 	ld a, $1
@@ -14011,7 +14011,7 @@
 ; 11a8fa
 
 Function11a8fa: ; 11a8fa
-	ld a, [wc31a]
+	ld a, [wPartyMon1MenuIconAnim + 6]
 	ld e, a
 	ld d, 0
 	ld hl, Jumptable_11a909
@@ -14035,14 +14035,14 @@
 	ld [rSVBK], a
 	call SpeechTextBox
 	ld a, $50
-	ld hl, wc320
+	ld hl, wPartyMon1MenuIconAnim + 12
 	ld bc, $008c
 	call ByteFill
-	ld a, [wc31b]
+	ld a, [wPartyMon1MenuIconAnim + 7]
 	ld l, a
-	ld a, [wc31c]
+	ld a, [wPartyMon1MenuIconAnim + 8]
 	ld h, a
-	ld de, wc320
+	ld de, wPartyMon1MenuIconAnim + 12
 .asm_11a92c
 	ld a, [hli]
 	cp $57
@@ -14073,17 +14073,17 @@
 
 .asm_11a94f
 	xor a
-	ld [wc31f], a
+	ld [wPartyMon1MenuIconAnim + 11], a
 	ld a, $20
-	ld [wc31b], a
+	ld [wPartyMon1MenuIconAnim + 7], a
 	ld a, $c3
-	ld [wc31c], a
+	ld [wPartyMon1MenuIconAnim + 8], a
 	hlcoord 1, 14
 	ld a, l
-	ld [wc31d], a
+	ld [wPartyMon1MenuIconAnim + 9], a
 	ld a, h
-	ld [wc31e], a
-	ld hl, wc31a
+	ld [wPartyMon1MenuIconAnim + 10], a
+	ld hl, wPartyMon1MenuIconAnim + 6
 	inc [hl]
 	ld a, $3
 	ld [rSVBK], a
@@ -14093,7 +14093,7 @@
 ; 11a971
 
 Function11a971: ; 11a971
-	ld hl, wc31f
+	ld hl, wPartyMon1MenuIconAnim + 11
 	ld a, [hJoyDown]
 	and a
 	jr nz, .asm_11a97f
@@ -14108,34 +14108,34 @@
 	and $7
 	ld [hl], a
 	ld hl, wcd8d
-	ld a, [wc31b]
+	ld a, [wPartyMon1MenuIconAnim + 7]
 	ld e, a
-	ld a, [wc31c]
+	ld a, [wPartyMon1MenuIconAnim + 8]
 	ld d, a
 	ld a, [de]
 	inc de
 	ld [hli], a
 	ld a, e
-	ld [wc31b], a
+	ld [wPartyMon1MenuIconAnim + 7], a
 	ld a, d
-	ld [wc31c], a
+	ld [wPartyMon1MenuIconAnim + 8], a
 	ld a, $50
 	ld [hl], a
-	ld a, [wc31d]
+	ld a, [wPartyMon1MenuIconAnim + 9]
 	ld l, a
-	ld a, [wc31e]
+	ld a, [wPartyMon1MenuIconAnim + 10]
 	ld h, a
 	ld de, wcd8d
 	call PlaceString
 	ld a, c
-	ld [wc31d], a
+	ld [wPartyMon1MenuIconAnim + 9], a
 	ld a, b
-	ld [wc31e], a
+	ld [wPartyMon1MenuIconAnim + 10], a
 	ld a, [wcd8d]
 	cp $50
 	jr nz, .asm_11a9bf
 	xor a
-	ld [wc31a], a
+	ld [wPartyMon1MenuIconAnim + 6], a
 
 .asm_11a9bf
 	ret
@@ -14143,11 +14143,11 @@
 
 Function11a9c0: ; 11a9c0
 	ld a, l
-	ld [wc31b], a
+	ld [wPartyMon1MenuIconAnim + 7], a
 	ld a, h
-	ld [wc31c], a
+	ld [wPartyMon1MenuIconAnim + 8], a
 	ld a, $1
-	ld [wc31a], a
+	ld [wPartyMon1MenuIconAnim + 6], a
 	ret
 ; 11a9ce
 
@@ -14159,7 +14159,7 @@
 	callba Function106464
 	call Functiond90
 	callba Function2b5c
-	call DrawOnMap
+	call UpdateSprites
 	ret
 ; 11a9f0
 
@@ -15200,9 +15200,9 @@
 ; 11b1f7
 
 Function11b1f7: ; 11b1f7
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld a, $32
-	ld bc, $0168
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ret
 ; 11b203
@@ -16576,7 +16576,7 @@
 	bccoord 1, 14
 	pop af
 	ld [rSVBK], a
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 11c05d
 
@@ -16759,7 +16759,7 @@
 	ld [hl], $57
 	pop bc
 	ld hl, $c608 + 16
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	pop hl
 	ld a, l
 	ld [wcf63], a
@@ -18804,7 +18804,7 @@
 ; 11cfce
 
 Function11cfce: ; 11cfce (47:4fce)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $14
 	ld a, [de]
 	inc de
@@ -18895,7 +18895,7 @@
 	ret
 
 Function11d035: ; 11d035 (47:5035)
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $14
 	ld a, [de]
 	inc de
@@ -21492,7 +21492,7 @@
 ; 16c145
 
 Function16c145: ; 16c145
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, 20
 	xor a
 	call ByteFill
@@ -21504,7 +21504,7 @@
 ; 16c15c
 
 Function16c15c: ; 16c15c
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $0014
 	xor a
 	call ByteFill
@@ -22099,12 +22099,12 @@
 	ld a, $0
 	ld [rVBK], a
 	push hl
-	ld de, TileMap
+	decoord 0, 0
 	call Function16cc90
 	pop hl
 	ld a, $1
 	ld [rVBK], a
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	call Function16cc90
 	pop af
 	ld [rVBK], a
@@ -22169,8 +22169,8 @@
 
 Function16d42e: ; 16d42e
 	ld hl, Tilemap_16d465
-	ld de, TileMap
-	ld bc, $0168
+	decoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call CopyBytes
 	ret
 ; 16d43b
@@ -22310,7 +22310,7 @@
 Function16d6ae: ; 16d6ae
 	call Function16d42e
 	ld hl, Tilemap_16d5cd
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $0028
 	call CopyBytes
 	ld hl, Tilemap_16d5f5
@@ -24856,11 +24856,11 @@
 	call Decompress
 	call EnableLCD
 	ld hl, Tilemap_172491
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $168
 	call CopyBytes
 	ld hl, Attrmap_1727ed
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld bc, $168
 	call CopyBytes
 	hlcoord 3, 2
@@ -24928,11 +24928,11 @@
 	call Decompress
 	call EnableLCD
 	ld hl, Tilemap_172685
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $168
 	call CopyBytes
 	ld hl, Attrmap_172955
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld bc, $168
 	call CopyBytes
 	hlcoord 2, 2
@@ -25010,11 +25010,11 @@
 
 Function172e78: ; 172e78 (5c:6e78)
 	ld a, $7f
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $168
 	call ByteFill
 	ld a, $7
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $168
 	call ByteFill
 	call DisableLCD
@@ -25024,11 +25024,11 @@
 	call CopyBytes
 	call EnableLCD
 	ld hl, Tilemap_1733af
-	ld de, TileMap
+	decoord 0, 0
 	ld bc, $168
 	call CopyBytes
 	ld hl, Attrmap_173517
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	ld bc, $168
 	call CopyBytes
 	ret
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -14,8 +14,8 @@
 	call Functione5f
 
 	ld hl, HaveWantMap
-	ld de, TileMap
-	ld bc, AttrMap
+	decoord 0, 0
+	bccoord 0, 0, AttrMap
 
 	ld a, SCREEN_HEIGHT
 .y
@@ -746,8 +746,8 @@
 	ld bc, $0040
 	call CopyBytes
 	ld hl, TileAttrmap_17eb8e
-	ld de, TileMap
-	ld bc, AttrMap
+	decoord 0, 0
+	bccoord 0, 0, AttrMap
 	ld a, $12
 .asm_17d4a4
 	push af
@@ -862,7 +862,7 @@
 	ld b, a
 	push hl
 	pop de
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, bc
 	call PlaceString
 	push de
@@ -1310,7 +1310,7 @@
 	call Function17e447
 	ld e, l
 	ld d, h
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, bc
 	call PlaceString
 	ret
@@ -1335,7 +1335,7 @@
 	call Function17e43d
 	ld c, l
 	ld b, h
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, de
 	ld e, l
 	ld d, h
@@ -1505,7 +1505,7 @@
 	ld h, a
 	ld a, [wc70b]
 	ld c, a
-	ld de, TileMap
+	decoord 0, 0
 	add hl, de
 	ld e, l
 	ld d, h
@@ -1543,7 +1543,7 @@
 	ld de, VTiles2
 	callba GetTrainerPic
 	pop hl
-	ld de, TileMap
+	decoord 0, 0
 	add hl, de
 	ld bc, $0707
 	predef FillBox
@@ -2051,12 +2051,12 @@
 	call Function17e41e
 	call Function17e447
 	push hl
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, bc
 	push hl
 	pop bc
 	pop hl
-	call Function13e5
+	call PlaceWholeStringInBoxAtOnce
 	ret
 ; 17dd30
 
@@ -2073,7 +2073,7 @@
 	push af
 	call Function17e41e
 	pop af
-	ld hl, TileMap
+	hlcoord 0, 0
 	add hl, de
 	call Function17e600
 	ret
@@ -3230,7 +3230,7 @@
 	add hl, bc
 endr
 	push hl
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	ld a, [wcd23]
 	call AddNTimes
@@ -3308,7 +3308,7 @@
 	and $1
 	ret z
 	ld a, [wcd29]
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	call AddNTimes
 	ld a, [wcd28]
@@ -3345,7 +3345,7 @@
 	sub [hl]
 	inc a
 	ld [wcd4f], a
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	ld a, [wcd23]
 	dec a
@@ -3395,7 +3395,7 @@
 
 Function17e571: ; 17e571
 	push af
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	ld a, [wcd23]
 	call AddNTimes
@@ -3437,7 +3437,7 @@
 	ld l, a
 	ld a, [wcd44]
 	ld h, a
-	ld bc, TileMap
+	bccoord 0, 0
 	add hl, bc
 	ld bc, $ffec
 	add hl, bc
@@ -3471,7 +3471,7 @@
 	ld l, a
 	ld a, [wcd44]
 	ld h, a
-	ld bc, TileMap
+	bccoord 0, 0
 	add hl, bc
 	call PlaceString
 	ret
@@ -3496,7 +3496,7 @@
 
 Function17e613: ; 17e613
 	push hl
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld bc, $0014
 	ld a, [de]
 	inc de
@@ -3633,7 +3633,7 @@
 	push af
 	push hl
 	push hl
-	ld bc, TileMap
+	bccoord 0, 0
 	add hl, bc
 	ld a, [hl]
 	cp $7f
@@ -3648,7 +3648,7 @@
 
 .asm_17e6c7
 	pop hl
-	ld bc, AttrMap
+	bccoord 0, 0, AttrMap
 	add hl, bc
 	ld [hl], a
 	pop hl
@@ -3672,7 +3672,7 @@
 	ld l, a
 	ld a, [wc709]
 	ld h, a
-	ld de, AttrMap
+	decoord 0, 0, AttrMap
 	add hl, de
 	pop af
 	ld b, $7
@@ -4456,7 +4456,7 @@
 	jr .asm_17f42c
 
 .asm_17f439
-	ld hl, TileMap
+	hlcoord 0, 0
 	ld de, SCREEN_WIDTH
 	ld a, c
 .asm_17f440
@@ -4769,12 +4769,12 @@
 	ld a, d
 	ld [MusicFadeIDHi], a
 	ld a, " "
-	ld hl, TileMap
-	ld bc, $0168
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	ld a, $6
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	call ByteFill
 	hlcoord 2, 1
 	ld b, $1
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -13,7 +13,7 @@
 	ld a, [SGBPredef]
 
 .asm_8d61
-	cp $fc
+	cp -4
 	jp z, Function96f3
 	call Function9673
 	ld l, a
@@ -121,8 +121,8 @@
 
 Function8e23: ; 8e23
 	call Function8e85
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, $2
 	call ByteFill
 	hlcoord 0, 4, AttrMap
@@ -133,7 +133,7 @@
 	ld bc, $070a
 	ld a, $1
 	call Function9663
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $040a
 	ld a, $2
 	call Function9663
@@ -233,7 +233,7 @@
 	ld a, $5
 	call FarCopyWRAM
 	call Function9699
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $0814
 	ld a, $1
 	call Function9663
@@ -717,8 +717,8 @@
 	ld a, $24
 	call Function9625
 	call Function9630
-	ld hl, AttrMap
-	ld bc, $0168
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
 	ld a, [PlayerGender]
 	and a
 	ld a, $1
@@ -864,7 +864,7 @@
 	ld a, $5
 	call FarCopyWRAM
 	call Function9699
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $010a
 	ld a, $1
 	call Function9663
@@ -948,7 +948,7 @@
 Function9499: ; 9499
 	call Function91c8
 	ld de, $0014
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld a, [wcf82]
 .asm_94a5
 	and a
@@ -1093,7 +1093,7 @@
 	ld bc, $0112
 	ld a, $1
 	call Function9663
-	ld hl, AttrMap
+	hlcoord 0, 0, AttrMap
 	ld bc, $1102
 	ld a, $1
 	call Function9663
--- a/predef/sgb.asm
+++ b/predef/sgb.asm
@@ -1,7 +1,7 @@
-Function864c: ; 864c
+Predef_LoadSGBLayout: ; 864c
 ; LoadSGBLayout
 	call CheckCGB
-	jp nz, Function8d59
+	jp nz, Predef_LoadSGBLayoutCGB
 
 	ld a, b
 	cp $ff
@@ -14,57 +14,57 @@
 	ld l, a
 	ld h, 0
 	add hl, hl
-	ld de, Table866f
+	ld de, .Jumptable
 	add hl, de
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	ld de, Function8a60
+	ld de, .Finish
 	push de
 	jp [hl]
 ; 866f
 
-Table866f: ; 866f
-	dw Function86ad
-	dw Function86b4
-	dw Function875c
-	dw Function8763
-	dw Function87b2
-	dw Function8852
-	dw Function8859
-	dw Function8867
-	dw Function8860
-	dw Function88b1
-	dw Function87ab
-	dw Function88cd
-	dw Function8884
-	dw Function891a
-	dw Function873c
-	dw Function8897
-	dw Function882a
-	dw Function889e
-	dw Function8928
-	dw Function8890
-	dw Function884b
-	dw Function891a
-	dw Function8823
-	dw Function87e9
-	dw Function8921
-	dw Function89a6
-	dw Function89ad
-	dw Function89d9
-	dw Function89e0
-	dw Function8860
-	dw Function8969
+.Jumptable: ; 866f
+	dw .SGB00
+	dw .SGB01
+	dw .SGB02
+	dw .SGB03
+	dw .SGB04
+	dw .SGB05
+	dw .SGB06
+	dw .SGB07
+	dw .SGB08_1d
+	dw .SGB09
+	dw .SGB0a
+	dw .SGB0b
+	dw .SGB0c
+	dw .SGB0d_15
+	dw .SGB0e
+	dw .SGB0f
+	dw .SGB10
+	dw .SGB11
+	dw .SGB12
+	dw .SGB13
+	dw .SGB14
+	dw .SGB0d_15
+	dw .SGB16
+	dw .SGB17
+	dw .SGB18
+	dw .SGB19
+	dw .SGB1a
+	dw .SGB1b
+	dw .SGB1c
+	dw .SGB08_1d
+	dw .SGB1e
 ; 86ad
 
-Function86ad: ; 86ad
+.SGB00: ; 86ad
 	ld hl, PalPacket_9c66
 	ld de, BlkPacket_9aa6
 	ret
 ; 86b4
 
-Function86b4: ; 86b4
+.SGB01: ; 86b4
 	ld hl, BlkPacket_9aa6
 	call Function9809
 	ld hl, PalPacket_9ce6
@@ -132,7 +132,7 @@
 	ret
 ; 873c
 
-Function873c: ; 873c
+.SGB0e: ; 873c
 	ld hl, PalPacket_9bd6
 	ld de, wcda9
 	ld bc, $0010
@@ -150,13 +150,13 @@
 	ret
 ; 875c
 
-Function875c: ; 875c
+.SGB02: ; 875c
 	ld hl, PalPacket_9c76
 	ld de, BlkPacket_9a86
 	ret
 ; 8763
 
-Function8763: ; 8763
+.SGB03: ; 8763
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -193,13 +193,13 @@
 	ret
 ; 87ab
 
-Function87ab: ; 87ab
+.SGB0a: ; 87ab
 	ld hl, PalPacket_9c56
 	ld de, wcda9 + 1
 	ret
 ; 87b2
 
-Function87b2: ; 87b2
+.SGB04: ; 87b2
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -227,7 +227,7 @@
 	ret
 ; 87e9
 
-Function87e9: ; 87e9
+.SGB17: ; 87e9
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -256,13 +256,13 @@
 	ret
 ; 8823
 
-Function8823: ; 8823
-	call Function87b2
+.SGB16: ; 8823
+	call .SGB04
 	ld de, BlkPacket_9af6
 	ret
 ; 882a
 
-Function882a: ; 882a
+.SGB10: ; 882a
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -280,33 +280,33 @@
 	ret
 ; 884b
 
-Function884b: ; 884b
+.SGB14: ; 884b
 	ld hl, PalPacket_9c36
 	ld de, BlkPacket_9a86
 	ret
 ; 8852
 
-Function8852: ; 8852
+.SGB05: ; 8852
 	ld hl, PalPacket_9c96
 	ld de, BlkPacket_9b06
 	ret
 ; 8859
 
-Function8859: ; 8859
+.SGB06: ; 8859
 	ld hl, PalPacket_9ca6
 	ld de, BlkPacket_9b76
 	ret
 ; 8860
 
-Function8860: ; 8860
+.SGB08_1d: ; 8860
 	ld hl, PalPacket_9cb6
 	ld de, BlkPacket_9a86
 	ret
 ; 8867
 
-Function8867: ; 8867
+.SGB07: ; 8867
 	ld b, 0
-	ld hl, Unknown_8878
+	ld hl, .BlkPacketTable_SGB07
 rept 4
 	add hl, bc
 endr
@@ -320,13 +320,13 @@
 	ret
 ; 8878
 
-Unknown_8878: ; 8878
+.BlkPacketTable_SGB07: ; 8878
 	dw BlkPacket_9a86, PalPacket_9be6
 	dw BlkPacket_9a96, PalPacket_9c06
 	dw BlkPacket_9a86, PalPacket_9c16
 ; 8884
 
-Function8884: ; 8884
+.SGB0c: ; 8884
 	ld hl, PalPacket_9b96
 	ld de, BlkPacket_9b56
 	ld a, $8
@@ -334,19 +334,19 @@
 	ret
 ; 8890
 
-Function8890: ; 8890
+.SGB13: ; 8890
 	ld hl, PalPacket_9ba6
 	ld de, BlkPacket_9b86
 	ret
 ; 8897
 
-Function8897: ; 8897
+.SGB0f: ; 8897
 	ld hl, PalPacket_9c46
 	ld de, BlkPacket_9a86
 	ret
 ; 889e
 
-Function889e: ; 889e
+.SGB11: ; 889e
 	ld hl, BlkPacket_9a86
 	ld de, PlayerLightScreenCount
 	ld bc, $0010
@@ -356,12 +356,12 @@
 	ret
 ; 88b1
 
-Function88b1: ; 88b1
+.SGB09: ; 88b1
 	ld hl, PalPacket_9bd6
 	ld de, wcda9
 	ld bc, $0010
 	call CopyBytes
-	call Function8a0c
+	call .GetPermission
 	ld hl, wcda9 + 1
 	ld [hld], a
 	ld de, BlkPacket_9a86
@@ -370,7 +370,7 @@
 	ret
 ; 88cd
 
-Function88cd: ; 88cd
+.SGB0b: ; 88cd
 	push bc
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
@@ -414,19 +414,19 @@
 	ret
 ; 891a
 
-Function891a: ; 891a
+.SGB0d_15: ; 891a
 	ld hl, PalPacket_9cb6
 	ld de, BlkPacket_9a86
 	ret
 ; 8921
 
-Function8921: ; 8921
+.SGB18: ; 8921
 	ld hl, PalPacket_9bc6
 	ld de, BlkPacket_9a86
 	ret
 ; 8928
 
-Function8928: ; 8928
+.SGB12: ; 8928
 	ld hl, PalPacket_9bd6
 	ld de, wcda9
 	ld bc, $0010
@@ -435,7 +435,7 @@
 	ld de, wcda9 + $10
 	ld bc, $0010
 	call CopyBytes
-	call Function8a0c
+	call .GetPermission
 	ld hl, wcda9 + 1
 	ld [hl], a
 	ld hl, wcda9 + 3
@@ -456,7 +456,7 @@
 	ret
 ; 8969
 
-Function8969: ; 8969
+.SGB1e: ; 8969
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -489,13 +489,13 @@
 	ret
 ; 89a6
 
-Function89a6: ; 89a6
+.SGB19: ; 89a6
 	ld hl, PalPacket_9cd6
 	ld de, BlkPacket_9a86
 	ret
 ; 89ad
 
-Function89ad: ; 89ad
+.SGB1a: ; 89ad
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -516,13 +516,13 @@
 	ret
 ; 89d9
 
-Function89d9: ; 89d9
+.SGB1b: ; 89d9
 	ld hl, PalPacket_9cc6
 	ld de, BlkPacket_9a86
 	ret
 ; 89e0
 
-Function89e0: ; 89e0
+.SGB1c: ; 89e0
 	ld hl, PalPacket_9ce6
 	ld de, wcda9
 	ld bc, $0010
@@ -543,7 +543,7 @@
 	ret
 ; 8a0c
 
-Function8a0c: ; 8a0c
+.GetPermission: ; 8a0c
 	ld a, [TimeOfDayPal]
 	cp $2
 	jr c, .asm_8a16
@@ -565,7 +565,7 @@
 	ld a, [MapGroup]
 	ld e, a
 	ld d, 0
-	ld hl, Unknown_8a45
+	ld hl, .Unknown_8a45
 	add hl, de
 	ld a, [hl]
 	ret
@@ -587,7 +587,7 @@
 	ret
 ; 8a45
 
-Unknown_8a45: ; 8a45
+.Unknown_8a45: ; 8a45
 	db $00
 	db $12
 	db $14
@@ -617,7 +617,7 @@
 	db $0d
 ; 8a60
 
-Function8a60: ; 8a60
+.Finish: ; 8a60
 	push de
 	call Function9809
 	pop hl
--- a/text/phone/bill.asm
+++ b/text/phone/bill.asm
@@ -44,7 +44,7 @@
 
 	para "<PLAY_G>, your BOX"
 	line "has room for @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	cont "more #MON."
 
@@ -59,7 +59,7 @@
 	para "<PLAY_G>, your BOX"
 	line "has room for only"
 	cont "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " more #MON."
 
 	para "Maybe you should"
--- a/text/phone/mom.asm
+++ b/text/phone/mom.asm
@@ -8,12 +8,12 @@
 UnknownText_0x1b4021: ; 0x1b4021
 	text "Oh, so you're in"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Isn't that where"
 	line "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text ""
 	para "is? Did you go"
 	line "take a look?"
@@ -22,7 +22,7 @@
 MomPhoneGenericAreaText: ; 0x1b406b
 	text "Really, you're in"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "?"
 
 	para "I've never gone"
@@ -33,7 +33,7 @@
 MomPhoneNewBarkText: ; 0x1b40b1
 	text "What? You're in"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "?"
 
 	para "Come see your MOM"
@@ -43,7 +43,7 @@
 MomPhoneCherrygroveText: ; 0x1b40e4
 	text "You're visiting"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "?"
 
 	para "How about coming"
@@ -53,7 +53,7 @@
 UnknownText_0x1b411c: ; 0x1b411c
 	text "Wow, you're in"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "?"
 
 	para "Good luck on your"
@@ -74,7 +74,7 @@
 UnknownText_0x1b41a7: ; 0x1b41a7
 	text "By the way, you've"
 	line "saved up ¥@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Do you want to"
@@ -97,7 +97,7 @@
 UnknownText_0x1b4249: ; 0x1b4249
 	text "By the way, you've"
 	line "saved up ¥@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Want to start"
--- a/text/phone/trainers1.asm
+++ b/text/phone/trainers1.asm
@@ -1,7 +1,7 @@
 UnknownText_0x1b4dc5: ; 0x1b4dc5
 	text "Hello. This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Good morning,"
@@ -11,7 +11,7 @@
 UnknownText_0x1b4ded: ; 0x1b4ded
 	text "Hello. This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "How's it going,"
@@ -21,7 +21,7 @@
 UnknownText_0x1b4e16: ; 0x1b4e16
 	text "Hello. This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Good evening,"
@@ -33,7 +33,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -42,7 +42,7 @@
 	text "<PLAY_G>, howdy!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -52,7 +52,7 @@
 	line "evening!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Got a minute?"
 	done
@@ -62,7 +62,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	line "so curious, it's a"
 
@@ -73,7 +73,7 @@
 UnknownText_0x1b4f21: ; 0x1b4f21
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh! Good morning,"
@@ -83,7 +83,7 @@
 UnknownText_0x1b4f4d: ; 0x1b4f4d
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh! Good day,"
@@ -93,7 +93,7 @@
 UnknownText_0x1b4f75: ; 0x1b4f75
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh! Good evening,"
@@ -105,7 +105,7 @@
 	line "Good morning."
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Were you asleep?"
 	done
@@ -113,7 +113,7 @@
 UnknownText_0x1b4fda: ; 0x1b4fda
 	text "Hi, <PLAYER>."
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "How are you doing?"
@@ -122,7 +122,7 @@
 UnknownText_0x1b5004: ; 0x1b5004
 	text "Hi, <PLAYER>."
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Were you awake?"
@@ -133,7 +133,7 @@
 	line "#MON happy?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	line "healthy. It eats a"
 	cont "lot every day."
@@ -142,7 +142,7 @@
 UnknownText_0x1b5073: ; 0x1b5073
 	text "Yeah, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Huh? What's up,"
@@ -152,7 +152,7 @@
 UnknownText_0x1b509b: ; 0x1b509b
 	text "Yeah, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Huh? What's up"
@@ -162,7 +162,7 @@
 UnknownText_0x1b50c2: ; 0x1b50c2
 	text "Yeah, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Huh? What's up"
@@ -174,7 +174,7 @@
 	line "You awake?"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -184,7 +184,7 @@
 	line "free right now?"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -194,7 +194,7 @@
 	line "Were you asleep?"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "How's it going?"
 	done
@@ -207,7 +207,7 @@
 	line "bit too energetic."
 
 	para "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text ","
 	line "especially."
 
@@ -221,7 +221,7 @@
 
 UnknownText_0x1b522b: ; 0x1b522b
 	text "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text "'s"
 	line "looking tougher"
 	cont "than ever."
@@ -233,7 +233,7 @@
 UnknownText_0x1b5270: ; 0x1b5270
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -243,7 +243,7 @@
 UnknownText_0x1b52a5: ; 0x1b52a5
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -252,7 +252,7 @@
 UnknownText_0x1b52cc: ; 0x1b52cc
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking…"
 
 	para "Hi, <PLAY_G>!"
@@ -264,7 +264,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -273,7 +273,7 @@
 	text "Hi, <PLAY_G>!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -283,7 +283,7 @@
 	line "evening!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you doing?"
 	done
@@ -293,7 +293,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text "'s"
 	line "doing as great as"
 	cont "ever."
@@ -306,7 +306,7 @@
 UnknownText_0x1b53f7: ; 0x1b53f7
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	para "Oh, <PLAY_G>."
 	line "Good morning."
@@ -316,7 +316,7 @@
 UnknownText_0x1b5424: ; 0x1b5424
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh. Hi, <PLAY_G>."
@@ -325,7 +325,7 @@
 UnknownText_0x1b5446: ; 0x1b5446
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -337,7 +337,7 @@
 	line "<PLAY_G>!"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Were you sleeping?"
 	done
@@ -345,7 +345,7 @@
 UnknownText_0x1b54a6: ; 0x1b54a6
 	text "<PLAY_G>, hi!"
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Do you have some"
@@ -357,7 +357,7 @@
 	line "Good evening."
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "I hope you were"
@@ -384,7 +384,7 @@
 UnknownText_0x1b55ae: ; 0x1b55ae
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>?"
@@ -394,7 +394,7 @@
 UnknownText_0x1b55da: ; 0x1b55da
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>? Hi!"
@@ -403,7 +403,7 @@
 UnknownText_0x1b55fc: ; 0x1b55fc
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>?"
@@ -415,7 +415,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -424,7 +424,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -433,7 +433,7 @@
 
 	para "Tweet! Yeah, it's"
 	line "me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -442,7 +442,7 @@
 	line "still cooking?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " has"
 	line "too much energy."
 
@@ -454,7 +454,7 @@
 UnknownText_0x1b5702: ; 0x1b5702
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh. Hi, <PLAYER>."
@@ -464,7 +464,7 @@
 UnknownText_0x1b572e: ; 0x1b572e
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAYER>,"
@@ -474,7 +474,7 @@
 UnknownText_0x1b575a: ; 0x1b575a
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAYER>,"
@@ -486,7 +486,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -495,7 +495,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -504,7 +504,7 @@
 	line "up and answer!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -526,7 +526,7 @@
 
 UnknownText_0x1b589a: ; 0x1b589a
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -535,7 +535,7 @@
 
 UnknownText_0x1b58c2: ; 0x1b58c2
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -544,7 +544,7 @@
 
 UnknownText_0x1b58ea: ; 0x1b58ea
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Oh, <PLAYER>? You"
@@ -556,7 +556,7 @@
 	line "How're you doing?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ","
 	line "got a minute?"
 	done
@@ -566,7 +566,7 @@
 	line "it going?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Got a minute?"
 	done
@@ -576,7 +576,7 @@
 	line "How're you doing?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ","
 	line "got a minute?"
 	done
@@ -586,7 +586,7 @@
 	line "#MON doing?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text "'s"
 	line "raring to go, just"
 	cont "like always."
@@ -601,7 +601,7 @@
 UnknownText_0x1b5a3b: ; 0x1b5a3b
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Oh. Hi, <PLAY_G>!"
@@ -611,7 +611,7 @@
 UnknownText_0x1b5a74: ; 0x1b5a74
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Oh, hi, <PLAY_G>!"
@@ -620,7 +620,7 @@
 UnknownText_0x1b5a9f: ; 0x1b5a9f
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Oh, hi, <PLAY_G>!"
@@ -632,7 +632,7 @@
 	line "morning!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -641,7 +641,7 @@
 	text "<PLAY_G>, howdy!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Isn't it nice out?"
 	done
@@ -651,7 +651,7 @@
 	line "<PLAY_G>!"
 
 	para "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Were you awake?"
 	done
@@ -668,7 +668,7 @@
 
 	para "Of all my #MON,"
 	line "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is the"
 	cont "hardest to handle."
 
@@ -709,7 +709,7 @@
 UnknownText_0x1b5d09: ; 0x1b5d09
 	text "Hiya, it's Uncle"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -716,7 +716,7 @@
 UnknownText_0x1b5d21: ; 0x1b5d21
 	text "Hiya, it's Uncle"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -723,7 +723,7 @@
 UnknownText_0x1b5d39: ; 0x1b5d39
 	text "Hiya, it's Uncle"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -738,7 +738,7 @@
 
 UnknownText_0x1b5d9f: ; 0x1b5d9f
 	text "Hello, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "speaking."
 
@@ -748,7 +748,7 @@
 
 UnknownText_0x1b5dcc: ; 0x1b5dcc
 	text "Hello, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "speaking."
 
@@ -758,7 +758,7 @@
 
 UnknownText_0x1b5df8: ; 0x1b5df8
 	text "Hello, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "speaking."
 
@@ -771,7 +771,7 @@
 	line "<PLAY_G>."
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Were you sleeping?"
 	done
@@ -779,7 +779,7 @@
 UnknownText_0x1b5e59: ; 0x1b5e59
 	text "Hi, <PLAY_G>."
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "How are things"
@@ -791,7 +791,7 @@
 	line "<PLAY_G>."
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Are you awake?"
 	done
@@ -805,7 +805,7 @@
 
 	para "Me, I take my"
 	line "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " to the"
 
 	para "#MON CENTER in"
@@ -820,7 +820,7 @@
 
 UnknownText_0x1b5f7a: ; 0x1b5f7a
 	text "Yeah, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -829,7 +829,7 @@
 
 UnknownText_0x1b5f9e: ; 0x1b5f9e
 	text "Yeah, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -839,7 +839,7 @@
 
 UnknownText_0x1b5fc9: ; 0x1b5fc9
 	text "Yeah, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " the"
 	line "HIKER here."
 
@@ -851,7 +851,7 @@
 	text "Yo, <PLAYER>?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "the HIKER!"
 	done
@@ -861,7 +861,7 @@
 	line "<PLAYER>?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "the HIKER!"
 	done
@@ -871,7 +871,7 @@
 	line "awake?"
 
 	para "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "the HIKER!"
 	done
@@ -881,7 +881,7 @@
 	line "as feisty as ever?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " and"
 	line "me--we have energy"
 
@@ -895,7 +895,7 @@
 UnknownText_0x1b60f5: ; 0x1b60f5
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Hey, <PLAY_G>!"
@@ -904,7 +904,7 @@
 UnknownText_0x1b611b: ; 0x1b611b
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "This must be"
@@ -914,7 +914,7 @@
 UnknownText_0x1b6149: ; 0x1b6149
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " speaking."
 
 	para "Ah, <PLAY_G>!"
@@ -923,7 +923,7 @@
 UnknownText_0x1b616e: ; 0x1b616e
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "<PLAY_G>, right?"
@@ -932,7 +932,7 @@
 UnknownText_0x1b618f: ; 0x1b618f
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "<PLAY_G>, what are"
@@ -942,7 +942,7 @@
 UnknownText_0x1b61bd: ; 0x1b61bd
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "<PLAY_G>, sorry to"
@@ -966,7 +966,7 @@
 UnknownText_0x1b626a: ; 0x1b626a
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -976,7 +976,7 @@
 UnknownText_0x1b6296: ; 0x1b6296
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -986,7 +986,7 @@
 UnknownText_0x1b62c5: ; 0x1b62c5
 	text "Hello? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, <PLAY_G>!"
@@ -997,7 +997,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Good morning!"
 	done
@@ -1006,7 +1006,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ". Is"
 	line "this a bad time?"
 	done
@@ -1015,7 +1015,7 @@
 	text "<PLAY_G>?"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "Got time to chat?"
 	done
@@ -1026,13 +1026,13 @@
 
 	para "I train every day"
 	line "with @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text "."
 	done
 
 UnknownText_0x1b638c: ; 0x1b638c
 	text "Hello? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "here…"
 
@@ -1041,7 +1041,7 @@
 
 UnknownText_0x1b63a8: ; 0x1b63a8
 	text "Hello? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "here…"
 
@@ -1050,7 +1050,7 @@
 
 UnknownText_0x1b63c4: ; 0x1b63c4
 	text "Hello? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ""
 	line "here…"
 
@@ -1063,7 +1063,7 @@
 
 	para "It's your pal,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1073,7 +1073,7 @@
 
 	para "It's your buddy"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1083,7 +1083,7 @@
 
 	para "It's your sidekick"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1090,7 +1090,7 @@
 UnknownText_0x1b6454: ; 0x1b6454
 	text "Yeah, hello."
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1099,7 +1099,7 @@
 UnknownText_0x1b647e: ; 0x1b647e
 	text "Yeah, hello, you"
 	line "got @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1108,7 +1108,7 @@
 UnknownText_0x1b64a8: ; 0x1b64a8
 	text "Yeah, hello, you"
 	line "got @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "…Huh, <PLAY_G>? Yo!"
@@ -1117,7 +1117,7 @@
 UnknownText_0x1b64d2: ; 0x1b64d2
 	text "Yeah, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " calling."
 
 	para "What are you up"
@@ -1127,7 +1127,7 @@
 UnknownText_0x1b6506: ; 0x1b6506
 	text "Yeah, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " calling."
 
 	para "Where are you now,"
@@ -1137,7 +1137,7 @@
 UnknownText_0x1b6539: ; 0x1b6539
 	text "Yeah, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " calling."
 
 	para "Are you awake now,"
@@ -1152,7 +1152,7 @@
 
 UnknownText_0x1b659d: ; 0x1b659d
 	text "Yup, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Is this <PLAY_G>?"
@@ -1161,7 +1161,7 @@
 
 UnknownText_0x1b65c7: ; 0x1b65c7
 	text "Yup, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Is that <PLAY_G>?"
@@ -1169,7 +1169,7 @@
 
 UnknownText_0x1b65e3: ; 0x1b65e3
 	text "Yup, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Is that <PLAY_G>?"
@@ -1179,7 +1179,7 @@
 UnknownText_0x1b660d: ; 0x1b660d
 	text "Hello! It's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1186,7 +1186,7 @@
 UnknownText_0x1b6624: ; 0x1b6624
 	text "Hello! It's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1193,7 +1193,7 @@
 UnknownText_0x1b663b: ; 0x1b663b
 	text "Hello! It's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1212,7 +1212,7 @@
 
 UnknownText_0x1b66c8: ; 0x1b66c8
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " on the"
 	line "line."
 
@@ -1221,7 +1221,7 @@
 
 UnknownText_0x1b66ec: ; 0x1b66ec
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " on the"
 	line "line."
 
@@ -1231,7 +1231,7 @@
 
 UnknownText_0x1b6713: ; 0x1b6713
 	text "Hi, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " on the"
 	line "line."
 
@@ -1244,7 +1244,7 @@
 
 	para "It's me!"
 	line "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1253,7 +1253,7 @@
 
 	para "It's me!"
 	line "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1262,13 +1262,13 @@
 
 	para "It's me!"
 	line "It's me, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
 UnknownText_0x1b6795: ; 0x1b6795
 	text "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	line "so full of energy,"
 
@@ -1282,7 +1282,7 @@
 UnknownText_0x1b67e2: ; 0x1b67e2
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>!"
@@ -1292,7 +1292,7 @@
 UnknownText_0x1b680e: ; 0x1b680e
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>, good"
@@ -1302,7 +1302,7 @@
 UnknownText_0x1b6836: ; 0x1b6836
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Hi, <PLAY_G>, good"
@@ -1314,7 +1314,7 @@
 	line "morning!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1324,7 +1324,7 @@
 	line "day!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1334,7 +1334,7 @@
 	line "evening!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	line "How are you?"
 	done
@@ -1384,7 +1384,7 @@
 	line "morning!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ", how"
 	line "pika are you?"
 	done
@@ -1394,7 +1394,7 @@
 	line "pika day!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ", how"
 	line "pika are you?"
 	done
@@ -1404,7 +1404,7 @@
 	line "evening!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text ". Were"
 	line "you pika awake?"
 	done
@@ -1414,7 +1414,7 @@
 	line "this! My lovable"
 
 	para "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " looked"
 	line "at me and grinned!"
 
@@ -1426,7 +1426,7 @@
 UnknownText_0x1b6b39: ; 0x1b6b39
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, Good morning,"
@@ -1436,7 +1436,7 @@
 UnknownText_0x1b6b65: ; 0x1b6b65
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "That voice…"
@@ -1446,7 +1446,7 @@
 UnknownText_0x1b6b92: ; 0x1b6b92
 	text "Hello, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "This must be"
@@ -1456,7 +1456,7 @@
 UnknownText_0x1b6bb9: ; 0x1b6bb9
 	text "Hello!"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "Good morning! The"
@@ -1466,7 +1466,7 @@
 UnknownText_0x1b6bef: ; 0x1b6bef
 	text "Hello!"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "What a perfect day"
@@ -1476,7 +1476,7 @@
 UnknownText_0x1b6c23: ; 0x1b6c23
 	text "Hello!"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "It's a great night"
@@ -1493,7 +1493,7 @@
 
 UnknownText_0x1b6c96: ; 0x1b6c96
 	text "Yes? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1502,7 +1502,7 @@
 
 UnknownText_0x1b6cc6: ; 0x1b6cc6
 	text "Yes? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1511,7 +1511,7 @@
 
 UnknownText_0x1b6cf6: ; 0x1b6cf6
 	text "Yes? @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "Ah, <PLAYER>. What"
@@ -1524,7 +1524,7 @@
 
 	para "Hey! It's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1534,7 +1534,7 @@
 
 	para "Hey, it's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1544,7 +1544,7 @@
 
 	para "Hey, it's me,"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1562,7 +1562,7 @@
 	line "I'm impressed."
 
 	para "Heh, my @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text ""
 	line "is so tough, it"
 
@@ -1574,7 +1574,7 @@
 UnknownText_0x1b6e7c: ; 0x1b6e7c
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -1584,7 +1584,7 @@
 UnknownText_0x1b6ea6: ; 0x1b6ea6
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>."
@@ -1594,7 +1594,7 @@
 UnknownText_0x1b6ec9: ; 0x1b6ec9
 	text "Yes? This is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 
 	para "Oh, <PLAY_G>, good"
@@ -1606,7 +1606,7 @@
 
 	para "Good morning. This"
 	line "is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1614,7 +1614,7 @@
 	text "Is this <PLAY_G>?"
 
 	para "Hi, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1623,7 +1623,7 @@
 
 	para "Good evening. This"
 	line "is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "."
 	done
 
@@ -1639,7 +1639,7 @@
 	line "too hard."
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	line "cute and lively"
 
@@ -1653,7 +1653,7 @@
 UnknownText_0x1b7019: ; 0x1b7019
 	text "Yes, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Morning, <PLAY_G>!"
@@ -1665,7 +1665,7 @@
 UnknownText_0x1b7057: ; 0x1b7057
 	text "Yes, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Hi, <PLAY_G>!"
@@ -1677,7 +1677,7 @@
 UnknownText_0x1b7092: ; 0x1b7092
 	text "Yes, hello?"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here!"
 
 	para "Evening, <PLAY_G>!"
@@ -1692,7 +1692,7 @@
 	line "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Good morning!"
 	done
@@ -1701,7 +1701,7 @@
 	text "Hi, <PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Remember me?"
 	done
@@ -1711,7 +1711,7 @@
 	line "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Are you free now?"
 	done
@@ -1721,7 +1721,7 @@
 	line "#MON fine?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text ""
 	line "looks like it will"
 
@@ -1735,7 +1735,7 @@
 UnknownText_0x1b71d5: ; 0x1b71d5
 	text "Hello, you have"
 	line "reached @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Ah, <PLAY_G>."
@@ -1744,7 +1744,7 @@
 UnknownText_0x1b71fc: ; 0x1b71fc
 	text "Hello, you have"
 	line "reached @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Ah, <PLAY_G>, is"
@@ -1754,7 +1754,7 @@
 UnknownText_0x1b722a: ; 0x1b722a
 	text "Hello, you have"
 	line "reached @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Ah, if it isn't"
@@ -1763,7 +1763,7 @@
 
 UnknownText_0x1b725c: ; 0x1b725c
 	text "Ah, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Have you got a"
@@ -1772,7 +1772,7 @@
 
 UnknownText_0x1b7283: ; 0x1b7283
 	text "Ah, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Can you talk now?"
@@ -1780,7 +1780,7 @@
 
 UnknownText_0x1b72a5: ; 0x1b72a5
 	text "Ah, it's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Sorry for calling"
@@ -1792,13 +1792,13 @@
 	line "grown any?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " has"
 	line "grown quite a bit."
 	done
 
 UnknownText_0x1b730b: ; 0x1b730b
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1806,7 +1806,7 @@
 	done
 
 UnknownText_0x1b7331: ; 0x1b7331
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1814,7 +1814,7 @@
 	done
 
 UnknownText_0x1b7357: ; 0x1b7357
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text " here…"
 
 	para "<PLAYER>! Beautiful"
@@ -1824,7 +1824,7 @@
 UnknownText_0x1b737f: ; 0x1b737f
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1831,7 +1831,7 @@
 UnknownText_0x1b7397: ; 0x1b7397
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1838,7 +1838,7 @@
 UnknownText_0x1b73af: ; 0x1b73af
 	text "Hey, <PLAYER>!"
 	line "This is @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	done
 
@@ -1845,7 +1845,7 @@
 UnknownText_0x1b73c7: ; 0x1b73c7
 	text "Yup, yup!"
 	line "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1855,7 +1855,7 @@
 UnknownText_0x1b73ef: ; 0x1b73ef
 	text "Yup, yup!"
 	line "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1865,7 +1865,7 @@
 UnknownText_0x1b7417: ; 0x1b7417
 	text "Yup, yup!"
 	line "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Hah, and here's"
@@ -1875,7 +1875,7 @@
 UnknownText_0x1b743f: ; 0x1b743f
 	text "<PLAY_G>, it's"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1885,7 +1885,7 @@
 UnknownText_0x1b746f: ; 0x1b746f
 	text "<PLAY_G>, it's"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1895,7 +1895,7 @@
 UnknownText_0x1b749b: ; 0x1b749b
 	text "<PLAY_G>, it's"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 
 	para "Have you had a"
@@ -1907,7 +1907,7 @@
 	line "looking good?"
 
 	para "My @"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " and"
 	line "me--we're looking"
 
@@ -1918,7 +1918,7 @@
 UnknownText_0x1b751a: ; 0x1b751a
 	text "Yes, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh. Hi, <PLAY_G>!"
@@ -1928,7 +1928,7 @@
 UnknownText_0x1b7548: ; 0x1b7548
 	text "Yes, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAY_G>!"
@@ -1938,7 +1938,7 @@
 UnknownText_0x1b756f: ; 0x1b756f
 	text "Yes, this is"
 	line "@"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "…"
 
 	para "Oh, hi, <PLAY_G>!"
@@ -1948,7 +1948,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Good morning!"
 	done
@@ -1957,7 +1957,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Working hard?"
 	done
@@ -1966,7 +1966,7 @@
 	text "<PLAY_G>!"
 
 	para "It's @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "!"
 	line "Were you up?"
 	done
@@ -1976,10 +1976,10 @@
 	line "your #MON?"
 
 	para "Hey, @"
-	TX_RAM StringBuffer3
+	text_from_ram StringBuffer3
 	text "'s"
 	line "@"
-	TX_RAM StringBuffer4
+	text_from_ram StringBuffer4
 	text " is"
 	cont "looking good!"
 	done
--- a/wram.asm
+++ b/wram.asm
@@ -356,21 +356,13 @@
 wc311:: ds 1
 wc312:: ds 1
 wc313:: ds 1
-wc314:: ds 1
-wc315:: ds 1
-wc316:: ds 1
-wc317:: ds 1
-wc318:: ds 1
-wc319:: ds 1
-wc31a:: ds 1
-wc31b:: ds 1
-wc31c:: ds 1
-wc31d:: ds 1
-wc31e:: ds 1
-wc31f:: ds 1
-wc320:: ds 4
-wc324:: ds 34
-wc346:: ds 94
+wPartyMon1MenuIconAnim:: ds 16 ; c314
+wPartyMon2MenuIconAnim:: ds 16 ; c324
+wPartyMon3MenuIconAnim:: ds 16 ; c334
+wPartyMon4MenuIconAnim:: ds 16 ; c344
+wPartyMon5MenuIconAnim:: ds 16 ; c354
+wPartyMon6MenuIconAnim:: ds 16 ; c364
+wc374:: ds 64
 wc3a4:: ds 8
 wc3ac:: ds 8
 wc3b4:: ds 1