shithub: pokered

Download patch

ref: eedf04c24359128f9a6a455ba66847574226a4a7
parent: 3f43b0578e209da502fb1b3b3fb69c1ee48fe03b
parent: d7512996309efb9e9d19f6f09e4449ef21781f99
author: U-Daniel-Laptop\Daniel <corrnondacqb@yahoo.com>
date: Mon Dec 23 02:33:42 EST 2013

Merge branch 'master' of https://github.com/huderlem/pokered

Conflicts:
	main.asm

--- a/macros.asm
+++ b/macros.asm
@@ -263,3 +263,75 @@
 	db $FF
 ENDM
 
+;\1 (byte) = connected map id
+;\2 (byte) = connected map width
+;\3 (byte) = connected map height
+;\4 (byte) = x movement of connection strip
+;\5 (byte) = connection strip offset
+;\6 (byte) = width of connection strip
+;\7 (word) = connected map blocks pointer
+NORTH_MAP_CONNECTION: MACRO
+	db \1 ; map id
+	dw \7 + (\2 * (\3 - 3)) + \5; "Connection Strip" location
+	dw $C6EB + \4 ; current map position
+	db \6 ; width of connection strip
+	db \2 ; map width
+	db (\3 * 2) - 1 ; y alignment (y coordinate of player when entering map)
+	db (\4 - \5) * -2 ; x alignment (x coordinate of player when entering map)
+	dw $C6E9 + (\3 * (\2 + 6)) ; window (position of the upper left block after entering the map)
+ENDM
+
+;\1 (byte)  = connected map id
+;\2 (byte)  = connected map width
+;\3 (byte)  = x movement of connection strip
+;\4 (byte)  = connection strip offset
+;\5 (byte)  = width of connection strip
+;\6 (word)  = connected map blocks pointer
+;\7 (byte)  = current map width
+;\8 (byte) = current map height
+SOUTH_MAP_CONNECTION: MACRO
+	db \1 ; map id
+	dw \6 + \4 ; "Conection Strip" location
+	dw $C6EB + (\8 + 3) * (\7 + 6) + \3 ; current map positoin
+	db \5 ; width of connection strip
+	db \2 ; map width
+	db 0  ; y alignment (y coordinate of player when entering map)
+	db (\3 - \4) * -2 ; x alignment (x coordinate of player when entering map)
+	dw $C6EF + \2 ; window (position of the upper left block after entering the map)
+ENDM
+
+;\1 (byte)  = connected map id
+;\2 (byte)  = connected map width
+;\3 (byte)  = y movement of connection strip
+;\4 (byte)  = connection strip offset
+;\5 (byte)  = height of connection strip
+;\6 (word)  = connected map blocks pointer
+;\7 (byte)  = current map width
+EAST_MAP_CONNECTION: MACRO
+	db \1 ; map id
+	dw \6 + (\2 * \4) ; "Connection Strip" location
+	dw $C6E5 + (\7 + 6) * (\3 + 4) ; current map position
+	db \5 ; height of connection strip
+	db \2 ; map width
+	db (\3 - \4) * -2 ; y alignment
+	db 0 ; x alignment
+	dw $C6EF + \2 ; window (position of the upper left block after entering the map)
+ENDM
+
+;\1 (byte)  = connected map id
+;\2 (byte)  = connected map width
+;\3 (byte)  = y movement of connection strip
+;\4 (byte)  = connection strip offset
+;\5 (byte)  = height of connection strip
+;\6 (word)  = connected map blocks pointer
+;\7 (byte)  = current map width
+WEST_MAP_CONNECTION: MACRO
+	db \1 ; map id
+	dw \6 + (\2 * \4) + \2 - 3 ; "Connection Strip" location
+	dw $C6E8 + (\7 + 6) * (\3 + 3) ; current map position
+	db \5 ; height of connection strip
+	db \2 ; map width
+	db (\3 - \4) * -2 ; y alignment
+	db (\2 * 2) - 1 ; x alignment
+	dw $C6EE + (2 * \2) ; window (position of the upper left block after entring the map)
+ENDM
--- a/main.asm
+++ b/main.asm
@@ -6829,9 +6829,9 @@
 	jp z,FuncTX_PokemonCenterPC
 	cp a,$f5   ; Vending Machine
 	jr nz,.notVendingMachine
-	ld b,BANK(Func_74ee0)
-	ld hl,Func_74ee0
-	call Bankswitch
+	ld b,BANK(VendingMachineMenu)
+	ld hl,VendingMachineMenu
+	call Bankswitch 	; jump banks to vending machine routine
 	jr AfterDisplayingTextID
 .notVendingMachine
 	cp a,$f7   ; slot machine
@@ -6838,8 +6838,8 @@
 	jp z,FuncTX_SlotMachine
 	cp a,$f6   ; cable connection NPC in Pokemon Center
 	jr nz,.notSpecialCase
-	ld hl, Func_71c5
-	ld b, BANK(Func_71c5)
+	ld hl, CableClubNPC
+	ld b, BANK(CableClubNPC)
 	call Bankswitch
 	jr AfterDisplayingTextID
 .notSpecialCase
@@ -9074,8 +9074,8 @@
 	dw MoveNames
 	dw UnusedNames
 	dw ItemNames
-	dw $D273 ; player's OT names list
-	dw $D9AC ; enemy's OT names list
+	dw W_PARTYMON1OT ; player's OT names list
+	dw W_ENEMYMON1OT ; enemy's OT names list
 	dw TrainerNames
 
 GetName: ; 376b (0:376b)
@@ -10555,72 +10555,72 @@
 	ret
 
 PointerTable_3f22: ; 3f22 (0:3f22)
-	dw UnnamedText_526ee
-	dw UnnamedText_526f8
-	dw $5b8e
-	dw UnnamedText_5db81
-	dw UnnamedText_1e960
-	dw UnnamedText_1e97e
-	dw UnnamedText_1e983
-	dw UnnamedText_1ecbd
-	dw UnnamedText_5dbbe
-	dw UnnamedText_5dba8
-	dw UnnamedText_5dbd4
-	dw UnnamedText_62453
-	dw UnnamedText_62458
-	dw UnnamedText_62511
-	dw UnnamedText_624a3
-	dw UnnamedText_624a8
-	dw UnnamedText_624ad
-	dw UnnamedText_624b2
-	dw UnnamedText_624d0
-	dw UnnamedText_624d5
-	dw UnnamedText_62502
-	dw UnnamedText_624da
-	dw UnnamedText_624df
-	dw UnnamedText_624e4
-	dw UnnamedText_624b7
-	dw UnnamedText_624bc
-	dw UnnamedText_624c1
-	dw UnnamedText_624c6
-	dw UnnamedText_624cb
+	dw CardKeySuccessText                   ; id = 01
+	dw CardKeyFailText                      ; id = 02
+	dw Route15UpstairsLeftBinoculars        ; id = 03
+	dw RedBedroomSNESText                   ; id = 04
+	dw UnnamedText_1e960                    ; id = 05
+	dw UnnamedText_1e97e                    ; id = 06
+	dw UnnamedText_1e983                    ; id = 07
+	dw OakLabEmailText                      ; id = 08
+	dw AerodactylFossilText                 ; id = 09
+	dw Route15UpstairsBinocularsText        ; id = 0A
+	dw KabutopsFossilText                   ; id = 0B
+	dw GymStatueText1                       ; id = 0C
+	dw GymStatueText2                       ; id = 0D
+	dw BookcaseText                         ; id = 0E
+	dw ViridianCityPokecenterBenchGuyText   ; id = 0F
+	dw PewterCityPokecenterBenchGuyText     ; id = 10
+	dw CeruleanCityPokecenterBenchGuyText   ; id = 11
+	dw LavenderCityPokecenterBenchGuyText   ; id = 12
+	dw VermilionCityPokecenterBenchGuyText  ; id = 13
+	dw CeladonCityPokecenterBenchGuyText    ; id = 14
+	dw CeladonCityHotelText                 ; id = 15
+	dw FuchsiaCityPokecenterBenchGuyText    ; id = 16
+	dw CinnabarIslandPokecenterBenchGuyText ; id = 17
+	dw SaffronCityPokecenterBenchGuyText    ; id = 18
+	dw MtMoonPokecenterBenchGuyText         ; id = 19
+	dw RockTunnelPokecenterBenchGuyText     ; id = 1A
+	dw UnnamedText_624c1                    ; id = 1B
+	dw UnnamedText_624c6                    ; id = 1C
+	dw UnnamedText_624cb                    ; id = 1D
 	dw $6508
 	dw $6529
-	dw UnnamedText_529aa
-	dw UnnamedText_5dced
-	dw UnnamedText_21865
+	dw ViridianSchoolNotebook               ; id = 20
+	dw ViridianSchoolBlackboard             ; id = 21
+	dw UnnamedText_21865                    ; id = 22
 	dw $5878
-	dw FoundHiddenItemText
-	dw HiddenItemBagFullText
-	dw UnnamedText_5ddf7
-	dw UnnamedText_52a3d
-	dw UnnamedText_37e79
-	dw UnnamedText_37e7e
-	dw UnnamedText_37e83
-	dw FoundHiddenCoinsText
-	dw DroppedHiddenCoinsText
-	dw UnnamedText_1ebdd
-	dw UnnamedText_1ebe2
-	dw UnnamedText_1ec05
-	dw UnnamedText_1eb69
-	dw UnnamedText_1ea25
-	dw UnnamedText_2ff37
-	dw UnnamedText_2ff32
-	dw UnnamedText_5dc29
-	dw UnnamedText_529a4
-	dw UnnamedText_52a2a
-	dw UnnamedText_52a10
-	dw UnnamedText_52a1d
-	dw UnnamedText_1e953
-	dw UnnamedText_fbbf
-	dw UnnamedText_5dec8
-	dw UnnamedText_5dedb
-	dw UnnamedText_5deef
-	dw UnnamedText_5df02
-	dw TownMapText
-	dw UnnamedText_fbe8
-	dw UnnamedText_fc0d
-	dw UnnamedText_fc45
+	dw FoundHiddenItemText                  ; id = 24
+	dw HiddenItemBagFullText                ; id = 25
+	dw VermilionGymTrashText                ; id = 26
+	dw IndigoPlateauHQText                  ; id = 27
+	dw GameCornerOutOfOrderText             ; id = 28
+	dw GameCornerOutToLunchText             ; id = 29
+	dw GameCornerSomeonesKeysText           ; id = 2A
+	dw FoundHiddenCoinsText                 ; id = 2B
+	dw DroppedHiddenCoinsText               ; id = 2C
+	dw BillsHouseMonitorText                ; id = 2D
+	dw BillsHouseInitiatedText              ; id = 2E
+	dw BillsHousePokemonList                ; id = 2F
+	dw UnnamedText_1eb69                    ; id = 30
+	dw CinnabarGymQuiz                      ; id = 31
+	dw GameCornerNoCoinsText                ; id = 32
+	dw GameCornerCoinCaseText               ; id = 33
+	dw LinkCableHelp                        ; id = 34
+	dw TMNotebook                           ; id = 35
+	dw FightingDojoText                     ; id = 36
+	dw UnnamedText_52a10                    ; id = 37
+	dw UnnamedText_52a1d                    ; id = 38
+	dw NewBicycleText                       ; id = 39
+	dw IndigoPlateauStatues                 ; id = 3A
+	dw VermilionGymTrashSuccesText1         ; id = 3B
+	dw VermilionGymTrashSuccesText2         ; id = 3C
+	dw VermilionGymTrashSuccesText3         ; id = 3D
+	dw VermilionGymTrashFailText            ; id = 3E
+	dw TownMapText                          ; id = 3F
+	dw UnnamedText_fbe8                     ; id = 40
+	dw UnnamedText_fc0d                     ; id = 41
+	dw UnnamedText_fc45                     ; id = 42
 
 SECTION "bank1",ROMX,BANK[$1]
 
@@ -10945,8 +10945,8 @@
 	call GBPalNormal
 	ld a, $e4
 	ld [rOBP0], a ; $FF00+$48
-	ld bc, $ffaf
-	ld hl, .unknown_43db ; $43db
+	ld bc, $ffaf ; background scroll Y
+	ld hl, .TitleScreenPokemonLogoYScrolls ; $43db
 .asm_43c6
 	ld a, [hli]
 	and a
@@ -10959,19 +10959,29 @@
 .asm_43d4
 	ld a, [hli]
 	ld e, a
-	call .asm_43ea
+	call .ScrollTitleScreenPokemonLogo
 	jr .asm_43c6
 
-.unknown_43db: ; 43db (1:43db)
-INCBIN "baserom.gbc",$43db,$43ea - $43db
+.TitleScreenPokemonLogoYScrolls: ; 43db (1:43db)
+; Controls the bouncing effect of the Pokemon logo on the title screen
+	db -4,16  ; y scroll amount, number of times to scroll
+	db 3,4
+	db -3,4
+	db 2,2
+	db -2,2
+	db 1,2
+	db -1,2
+	db 0      ; terminate list with 0
 
-.asm_43ea
+.ScrollTitleScreenPokemonLogo
+; Scrolls the Pokemon logo on the title screen to create the bouncing effect
+; Scrolls d pixels e times
 	call DelayFrame
 	ld a, [bc]
 	add d
 	ld [bc], a
 	dec e
-	jr nz, .asm_43ea
+	jr nz, .ScrollTitleScreenPokemonLogo
 	ret
 .asm_43f4
 	call LoadScreenTilesFromBuffer1
@@ -13655,7 +13665,7 @@
 	jp Func_5a18
 .asm_58fd
 	ld a, [$cd3d]
-	ld hl, $d273
+	ld hl, W_PARTYMON1OT ; OT names of player
 	call SkipFixedLengthTextEntries
 	ld de, $cd41
 	ld bc, $000b
@@ -13671,7 +13681,7 @@
 	ld a, [hl]
 	ld [$cd4d], a
 	ld a, [$cd3e]
-	ld hl, $d9ac
+	ld hl, W_ENEMYMON1OT ; OT names of other player
 	call SkipFixedLengthTextEntries
 	ld de, $cd4e
 	ld bc, $000b
@@ -16821,8 +16831,8 @@
 	add hl,de
 	ret
 
-Func_71c5: ; 71c5 (1:71c5)
-	ld hl, UnnamedText_72b8 ; $72b8
+CableClubNPC: ; 71c5 (1:71c5)
+	ld hl, CableClubNPCText1 ; $72b8
 	call PrintText
 	ld a, [$d74b]
 	bit 5, a
@@ -16829,7 +16839,7 @@
 	jp nz, Func_71e1
 	ld c, $3c
 	call DelayFrames
-	ld hl, UnnamedText_72d2 ; $72d2
+	ld hl, CableClubNPCText6 ; $72d2
 	call PrintText
 	jp Func_7298
 
@@ -16868,7 +16878,7 @@
 	call Func_22ed
 	ld c, $32
 	call DelayFrames
-	ld hl, UnnamedText_72bd ; $72bd
+	ld hl, CableClubNPCText2 ; $72bd
 	call PrintText
 	xor a
 	ld [$cc34], a
@@ -16884,7 +16894,7 @@
 	call WaitForSoundToFinish
 	ld a, $b6
 	call PlaySoundWaitForCurrent
-	ld hl, UnnamedText_72c2 ; $72c2
+	ld hl, CableClubNPCText3 ; $72c2
 	call PrintText
 	ld hl, $cc47
 	ld a, $3
@@ -16908,16 +16918,16 @@
 	dec b
 	jr nz, .asm_7273 ; 0x727a $f7
 	call Func_72d7
-	ld hl, UnnamedText_72c8 ; $72c8
+	ld hl, CableClubNPCText4 ; $72c8
 	call PrintText
 	jr Func_7298 ; 0x7285 $11
 .asm_7287
-	ld hl, UnnamedText_72b3 ; $72b3
+	ld hl, CableClubNPCText7 ; $72b3
 	call PrintText
 	jr Func_7298 ; 0x728d $9
 .asm_728f
 	call Func_72d7
-	ld hl, UnnamedText_72cd ; $72cd
+	ld hl, CableClubNPCText5 ; $72cd
 	call PrintText
 	; fall through
 
@@ -16940,32 +16950,32 @@
 	ld b, BANK(Func_5c0a)
 	jp Bankswitch
 
-UnnamedText_72b3: ; 72b3 (1:72b3)
-	TX_FAR _UnnamedText_72b3
+CableClubNPCText7: ; 72b3 (1:72b3)
+	TX_FAR _CableClubNPCText7
 	db "@"
 
-UnnamedText_72b8: ; 72b8 (1:72b8)
-	TX_FAR _UnnamedText_72b8
+CableClubNPCText1: ; 72b8 (1:72b8)
+	TX_FAR _CableClubNPCText1
 	db "@"
 
-UnnamedText_72bd: ; 72bd (1:72bd)
-	TX_FAR _UnnamedText_72bd
+CableClubNPCText2: ; 72bd (1:72bd)
+	TX_FAR _CableClubNPCText2
 	db "@"
 
-UnnamedText_72c2: ; 72c2 (1:72c2)
-	TX_FAR UnnamedText_a29cc
+CableClubNPCText3: ; 72c2 (1:72c2)
+	TX_FAR _CableClubNPCText3
 	db $a, "@"
 
-UnnamedText_72c8: ; 72c8 (1:72c8)
-	TX_FAR _UnnamedText_72c8
+CableClubNPCText4: ; 72c8 (1:72c8)
+	TX_FAR _CableClubNPCText4
 	db "@"
 
-UnnamedText_72cd: ; 72cd (1:72cd)
-	TX_FAR _UnnamedText_72cd
+CableClubNPCText5: ; 72cd (1:72cd)
+	TX_FAR _CableClubNPCText5
 	db "@"
 
-UnnamedText_72d2: ; 72d2 (1:72d2)
-	TX_FAR _UnnamedText_72d2
+CableClubNPCText6: ; 72d2 (1:72d2)
+	TX_FAR _CableClubNPCText6
 	db "@"
 
 Func_72d7: ; 72d7 (1:72d7)
@@ -17529,7 +17539,7 @@
 	ld [hli], a
 	ld [hli], a
 	ld [hl], $c
-	call Func_77d6
+	call GetMonFieldMoves
 	ld a, [$cd41]
 	and a
 	jr nz, .asm_770f
@@ -17645,7 +17655,7 @@
 	db "SWITCH",$4E
 	db "CANCEL@"
 
-Func_77d6: ; 77d6 (1:77d6)
+GetMonFieldMoves: ; 77d6 (1:77d6)
 	ld a, [wWhichPokemon] ; $cf92
 	ld hl, W_PARTYMON1_MOVE1 ; $d173
 	ld bc, $2c
@@ -17659,12 +17669,12 @@
 .asm_77ea
 	dec c
 	jr z, .asm_7821
-	ld a, [de]
+	ld a, [de] ; de is RAM address of move
 	and a
 	jr z, .asm_7821
 	ld b, a
-	inc de
-	ld hl, Unknown_7823 ; $7823
+	inc de ; go to next move
+	ld hl, FieldMoveDisplayData ; $7823
 .asm_77f6
 	ld a, [hli]
 	cp $ff
@@ -17697,9 +17707,25 @@
 	pop hl
 	ret
 
-Unknown_7823: ; 7823 (1:7823)
-INCBIN "baserom.gbc",$7823,$783f - $7823
+; Format: [Move id], [list priority], [leftmost tile]
+; Move id = id of move
+; List priority = lower number means higher priority when field moves are displayed
+;                 these priorities must be unique
+; Leftmost tile = -1 + tile column in which the first letter of the move's name should be displayed
+;                 "SOFTBOILED" is $08 because it has 4 more letters than "SURF", for example, whose value is $0C
+FieldMoveDisplayData: ; 7823 (1:7823)
+	db CUT, $01, $0C
+	db FLY, $02, $0C 
+	db $B4, $03, $0C ; unused field move
+	db SURF, $04, $0C 
+	db STRENGTH, $05, $0A 
+	db FLASH, $06, $0C 
+	db DIG, $07, $0C 
+	db TELEPORT, $08, $0A 
+	db SOFTBOILED, $09, $08 
+	db $ff ; list terminator
 
+
 Func_783f: ; 783f (1:783f)
 	ld hl, W_DAMAGE ; $d0d7
 	ld a, [hl]
@@ -29708,7 +29734,7 @@
 	ld a, $ff
 	ld [$cfcb], a
 	call Func_eff7
-	ld de, Unknown_f100 ; $7100
+	ld de, CutTreeBlockSwaps ; $7100
 	call Func_f09f
 	call Func_eedc
 	ld b, BANK(Func_79e96)
@@ -29786,18 +29812,18 @@
 	ld b, a
 	inc hl
 	ld a, [hli]
-	ld c, a
+	ld c, a ; bc holds ypos/xpos of player's sprite
 	inc hl
 	inc hl
-	ld a, [hl]
+	ld a, [hl] ; a holds direction of player (00: down, 04: up, 08: left, 0C: right)
 	srl a
 	ld e, a
-	ld d, $0
+	ld d, $0 ; de holds direction (00: down, 02: up, 04: left, 06: right)
 	ld a, [$cd50]
 	and a
-	ld hl, Unknown_f08f ; $708f
+	ld hl, CutTreeAnimationOffsets ; $708f
 	jr z, .asm_f084
-	ld hl, Unknown_f097 ; $7097
+	ld hl, CutTreeAnimationOffsets2 ; $7097
 .asm_f084
 	add hl, de
 	ld e, [hl]
@@ -29811,11 +29837,21 @@
 	ld c, a
 	ret
 
-Unknown_f08f: ; f08f (3:708f)
-INCBIN "baserom.gbc",$f08f,$f097 - $f08f
+CutTreeAnimationOffsets: ; f08f (3:708f)
+; Each pair represents the x and y pixels offsets from the player of where the cut tree animation should be drawn
+	db  8, 36 ; player is facing down
+	db  8,  4 ; player is facing up
+	db -8, 20 ; player is facing left
+	db 24, 20 ; player is facing right
 
-Unknown_f097: ; f097 (3:7097)
-INCBIN "baserom.gbc",$f097,$f09f - $f097
+CutTreeAnimationOffsets2: ; f097 (3:7097)
+; Not sure if these ever get used. CutTreeAnimationOffsets only seems to be used.
+; Each pair represents the x and y pixels offsets from the player of where the cut tree animation should be drawn
+; These offsets represent 2 blocks away from the player
+	db  8,  52 ; player is facing down
+	db  8, -12 ; player is facing up
+	db -24, 20 ; player is facing left
+	db 40,  20 ; player is facing right
 
 Func_f09f: ; f09f (3:709f)
 	push de
@@ -29889,8 +29925,19 @@
 	ld [hl], a
 	ret
 
-Unknown_f100: ; f100 (3:7100)
-INCBIN "baserom.gbc",$f100,$f113 - $f100
+CutTreeBlockSwaps: ; f100 (3:7100)
+; first byte = tileset block containing the cut tree
+; second byte = corresponding tileset block after the cut animation happens
+	db $32, $6D
+	db $33, $6C 
+	db $34, $6F 
+	db $35, $4C 
+	db $60, $6E 
+	db $0B, $0A 
+	db $3C, $35 
+	db $3F, $35
+	db $3D, $36 
+	db $FF ; list terminator 
 
 Func_f113: ; f113 (3:7113)
 	ld a, [W_CURMAP] ; $d35e
@@ -30236,7 +30283,7 @@
 	ld a, [$cc49]
 	and $f
 	jr z, .asm_f315
-	ld hl, $d9ac
+	ld hl, W_ENEMYMON1OT
 .asm_f315
 	ld a, [$FF00+$e4]
 	dec a
@@ -31656,29 +31703,29 @@
 	db $0D,$36,$40
 	db $FF
 
-UnnamedText_fbbf: ; fbbf (3:7bbf)
+IndigoPlateauStatues: ; fbbf (3:7bbf)
 	db $08 ; asm
-	ld hl, UnnamedText_fbd9
+	ld hl, IndigoPlateauStatuesText1
 	call PrintText
 	ld a, [W_XCOORD]
 	bit 0, a
-	ld hl, UnnamedText_fbde
+	ld hl, IndigoPlateauStatuesText2
 	jr nz, .asm_fbd3
-	ld hl, UnnamedText_fbe3
+	ld hl, IndigoPlateauStatuesText3
 .asm_fbd3
 	call PrintText
 	jp TextScriptEnd
 
-UnnamedText_fbd9: ; fbd9 (3:7bd9)
-	TX_FAR _UnnamedText_fbd9
+IndigoPlateauStatuesText1: ; fbd9 (3:7bd9)
+	TX_FAR _IndigoPlateauStatuesText1
 	db "@"
 
-UnnamedText_fbde: ; fbde (3:7bde)
-	TX_FAR _UnnamedText_fbde
+IndigoPlateauStatuesText2: ; fbde (3:7bde)
+	TX_FAR _IndigoPlateauStatuesText2
 	db "@"
 
-UnnamedText_fbe3: ; fbe3 (3:7be3)
-	TX_FAR _UnnamedText_fbe3
+IndigoPlateauStatuesText3: ; fbe3 (3:7be3)
+	TX_FAR _IndigoPlateauStatuesText3
 	db "@"
 
 UnnamedText_fbe8: ; fbe8 (3:7be8)
@@ -33849,7 +33896,7 @@
 	jr nc, .asm_13912
 	ld a, [H_RAND2] ; $FF00+$d4
 	ld b, a
-	ld hl, Unknown_13918 ; $7918
+	ld hl, WildMonEncounterSlotChances ; $7918
 .asm_138d0
 	ld a, [hli]
 	cp b
@@ -33895,8 +33942,21 @@
 	xor a
 	ret
 
-Unknown_13918: ; 13918 (4:7918)
-INCBIN "baserom.gbc",$13918,$1392c - $13918
+WildMonEncounterSlotChances: ; 13918 (4:7918)
+; There are 10 slots for wild pokemon, and this is the table that defines how common each of
+; those 10 slots is. A random number is generated and then the first byte of each pair in this 
+; table is compared against that random number. If the random number is less than or equal 
+; to the first byte, then that slot is chosen.  The second byte is double the slot number.
+	db $32, $00 ; 51/256 = 19.9% chance of slot 0
+	db $65, $02 ; 51/256 = 19.9% chance of slot 1
+	db $8C, $04 ; 39/256 = 15.2% chance of slot 2
+	db $A5, $06 ; 25/256 =  9.8% chance of slot 3
+	db $BE, $08 ; 25/256 =  9.8% chance of slot 4
+	db $D7, $0A ; 25/256 =  9.8% chance of slot 5
+	db $E4, $0C ; 13/256 =  5.1% chance of slot 6
+	db $F1, $0E ; 13/256 =  5.1% chance of slot 7
+	db $FC, $10 ; 11/256 =  4.3% chance of slot 8
+	db $FF, $12 ;  3/256 =  1.2% chance of slot 9
 
 Func_1392c: ; 1392c (4:792c)
 	ld a, [H_WHOSETURN] ; $FF00+$f3
@@ -34104,7 +34164,7 @@
 	call GetName
 	ld hl, $cd6d
 .asm_13a86
-	ld de, $d04a
+	ld de, W_TRAINERNAME
 	ld bc, $d
 	jp CopyData
 
@@ -35539,23 +35599,8 @@
 	db CELADON_CITY_HEIGHT, CELADON_CITY_WIDTH ; dimensions (y, x)
 	dw CeladonCityBlocks, CeladonCityTextPointers, CeladonCityScript ; blocks, texts, scripts
 	db WEST | EAST ; connections
-
-	; connections data
-
-	db ROUTE_16
-	dw $4B95, $C7C1 ; pointers (connected, current) (strip)
-	db $09, $14 ; bigness, width
-	db $F8, $27 ; alignments (y, x)
-	dw $C716 ; window
-
-	db ROUTE_7
-	dw $4051, $C7DD ; pointers (connected, current) (strip)
-	db $09, $0A ; bigness, width
-	db $F8, $00 ; alignments (y, x)
-	dw $C6F9 ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION ROUTE_16, ROUTE_16_WIDTH, 4, 0, ROUTE_16_HEIGHT, Route16Blocks, CELADON_CITY_WIDTH
+	EAST_MAP_CONNECTION ROUTE_7, ROUTE_7_WIDTH, 4, 0, ROUTE_7_HEIGHT, Route7Blocks, CELADON_CITY_WIDTH
 	dw CeladonCityObject ; objects
 
 CeladonCityObject: ; 0x18022 (size=189)
@@ -35621,22 +35666,8 @@
 	db PALLET_TOWN_HEIGHT, PALLET_TOWN_WIDTH ; dimensions
 	dw PalletTownBlocks, PalletTownTextPointers, PalletTownScript
 	db NORTH | SOUTH ; connections
-
-	db ROUTE_1
-	dw Route1Blocks + ((ROUTE_1_WIDTH * 15) + 0) ;y, x Strip Starting Point
-	dw $C6EB + 0 ;Strip X-Offset to current map
-	db ROUTE_1_WIDTH ;"Bigness" (Unsure) ;Something to do with MapData
-	db ROUTE_1_WIDTH ;"Map Width" (Unsure) ;Something to do with TileSet
-	db (ROUTE_1_HEIGHT * 2) - 1 ;Player's new Y-Coordinates
-	db (0 * -2) ;Player's new X-Coordinates
-	dw $C6E9 + ROUTE_1_HEIGHT * (ROUTE_1_WIDTH + 6) ;New UL Block Pos (Window)
-
-	db ROUTE_21
-	dw Route21Blocks,$C7AB ; pointers
-	db $0A,$0A ; bigness, width
-	db $00,$00 ; alignments
-	dw $C6F9 ; window
-
+	NORTH_MAP_CONNECTION ROUTE_1, ROUTE_1_WIDTH, ROUTE_1_HEIGHT, 0, 0, ROUTE_1_WIDTH, Route1Blocks
+	SOUTH_MAP_CONNECTION ROUTE_21, ROUTE_21_WIDTH, 0, 0, ROUTE_21_WIDTH, Route21Blocks, PALLET_TOWN_WIDTH, PALLET_TOWN_HEIGHT
 	dw PalletTownObject
 
 PalletTownObject: ; 0x182c3 (size=58)
@@ -35671,32 +35702,9 @@
 	db VIRIDIAN_CITY_HEIGHT, VIRIDIAN_CITY_WIDTH ; dimensions (y, x)
 	dw ViridianCityBlocks, ViridianCityTextPointers, ViridianCityScript ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST ; connections
-
-	; connections data
-
-	db ROUTE_2
-	dw Route2Blocks + (ROUTE_2_HEIGHT - 3) * ROUTE_2_WIDTH ; connection strip location
-	dw $C6EB + 5 ; current map position
-	db ROUTE_2_WIDTH, ROUTE_2_WIDTH ; bigness, width
-	db (ROUTE_2_HEIGHT * 2) - 1, (5 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_2_HEIGHT * (ROUTE_2_WIDTH + 6) ; window
-
-	db ROUTE_1
-	dw Route1Blocks ; connection strip location
-	dw $C6EB + (VIRIDIAN_CITY_HEIGHT + 3) * (VIRIDIAN_CITY_WIDTH + 6) + 5 ; current map position
-	db ROUTE_1_WIDTH, ROUTE_1_WIDTH ; bigness, width
-	db 0, (5 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_1_WIDTH ; window
-
-	db ROUTE_22
-	dw Route22Blocks - 3 + (ROUTE_22_WIDTH) ; connection strip location
-	dw $C6E8 + (VIRIDIAN_CITY_WIDTH + 6) * (4 + 3) ; current map position
-	db ROUTE_22_HEIGHT, ROUTE_22_WIDTH ; bigness, width
-	db (4 * -2), (ROUTE_22_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_22_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_2, ROUTE_2_WIDTH, ROUTE_2_HEIGHT, 5, 0, ROUTE_2_WIDTH, Route2Blocks
+	SOUTH_MAP_CONNECTION ROUTE_1, ROUTE_1_WIDTH, 5, 0, ROUTE_1_WIDTH, Route1Blocks, VIRIDIAN_CITY_WIDTH, VIRIDIAN_CITY_HEIGHT
+	WEST_MAP_CONNECTION ROUTE_22, ROUTE_22_WIDTH, 4, 0, ROUTE_22_HEIGHT, Route22Blocks, VIRIDIAN_CITY_WIDTH
 	dw ViridianCityObject ; objects
 
 ViridianCityObject: ; 0x18384 (size=104)
@@ -35741,25 +35749,8 @@
 	db PEWTER_CITY_HEIGHT, PEWTER_CITY_WIDTH ; dimensions (y, x)
 	dw PewterCityBlocks, PewterCityTextPointers, PewterCityScript ; blocks, texts, scripts
 	db SOUTH | EAST ; connections
-
-	; connections data
-
-	db ROUTE_2
-	dw Route2Blocks ; connection strip location
-	dw $C6EB + (PEWTER_CITY_HEIGHT + 3) * (PEWTER_CITY_WIDTH + 6) + 5 ; current map position
-	db ROUTE_2_WIDTH, ROUTE_2_WIDTH ; bigness, width
-	db 0, (5 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_2_WIDTH ; window
-
-	db ROUTE_3
-	dw Route3Blocks + (ROUTE_3_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (PEWTER_CITY_WIDTH + 6) * (4 + 4) ; current map position
-	db ROUTE_3_HEIGHT, ROUTE_3_WIDTH ; bigness, width
-	db (4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_3_WIDTH ; window
-
-	; end connections data
-
+	SOUTH_MAP_CONNECTION ROUTE_2, ROUTE_2_WIDTH, 5, 0, ROUTE_2_WIDTH, Route2Blocks, PEWTER_CITY_WIDTH, PEWTER_CITY_HEIGHT
+	EAST_MAP_CONNECTION ROUTE_3, ROUTE_3_WIDTH, 4, 0, ROUTE_3_HEIGHT, Route3Blocks, PEWTER_CITY_WIDTH
 	dw PewterCityObject ; objects
 
 	db $0
@@ -35809,39 +35800,10 @@
 	db CERULEAN_CITY_HEIGHT, CERULEAN_CITY_WIDTH ; dimensions (y, x)
 	dw CeruleanCityBlocks, CeruleanCityTextPointers, CeruleanCityScript ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST | EAST ; connections
-
-	; connections data
-
-	db ROUTE_24
-	dw Route24Blocks + (ROUTE_24_HEIGHT - 3) * ROUTE_24_WIDTH ; connection strip location
-	dw $C6EB + 5 ; current map position
-	db ROUTE_24_WIDTH, ROUTE_24_WIDTH ; bigness, width
-	db (ROUTE_24_HEIGHT * 2) - 1, (5 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_24_HEIGHT * (ROUTE_24_WIDTH + 6) ; window
-
-	db ROUTE_5
-	dw Route5Blocks ; connection strip location
-	dw $C6EB + (CERULEAN_CITY_HEIGHT + 3) * (CERULEAN_CITY_WIDTH + 6) + 5 ; current map position
-	db ROUTE_5_WIDTH, ROUTE_5_WIDTH ; bigness, width
-	db 0, (5 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_5_WIDTH ; window
-
-	db ROUTE_4
-	dw Route4Blocks - 3 + (ROUTE_4_WIDTH) ; connection strip location
-	dw $C6E8 + (CERULEAN_CITY_WIDTH + 6) * (4 + 3) ; current map position
-	db ROUTE_4_HEIGHT, ROUTE_4_WIDTH ; bigness, width
-	db (4 * -2), (ROUTE_4_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_4_WIDTH ; window
-
-	db ROUTE_9
-	dw Route9Blocks + (ROUTE_9_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (CERULEAN_CITY_WIDTH + 6) * (4 + 4) ; current map position
-	db ROUTE_9_HEIGHT, ROUTE_9_WIDTH ; bigness, width
-	db (4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_9_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_24, ROUTE_24_WIDTH, ROUTE_24_HEIGHT, 5, 0, ROUTE_24_WIDTH, Route24Blocks
+	SOUTH_MAP_CONNECTION ROUTE_5, ROUTE_5_WIDTH, 5, 0, ROUTE_5_WIDTH, Route5Blocks, CERULEAN_CITY_WIDTH, CERULEAN_CITY_HEIGHT
+	WEST_MAP_CONNECTION ROUTE_4, ROUTE_4_WIDTH, 4, 0, ROUTE_4_HEIGHT, Route4Blocks, CERULEAN_CITY_WIDTH
+	EAST_MAP_CONNECTION ROUTE_9, ROUTE_9_WIDTH, 4, 0, ROUTE_9_HEIGHT, Route9Blocks, CERULEAN_CITY_WIDTH
 	dw CeruleanCityObject ; objects
 
 CeruleanCityObject: ; 0x18786 (size=170)
@@ -35900,25 +35862,8 @@
 	db VERMILION_CITY_HEIGHT, VERMILION_CITY_WIDTH ; dimensions (y, x)
 	dw VermilionCityBlocks, VermilionCityTextPointers, VermilionCityScript ; blocks, texts, scripts
 	db NORTH | EAST ; connections
-
-	; connections data
-
-	db ROUTE_6
-	dw Route6Blocks + (ROUTE_6_HEIGHT - 3) * ROUTE_6_WIDTH ; connection strip location
-	dw $C6EB + 5 ; current map position
-	db ROUTE_6_WIDTH, ROUTE_6_WIDTH ; bigness, width
-	db (ROUTE_6_HEIGHT * 2) - 1, (5 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_6_HEIGHT * (ROUTE_6_WIDTH + 6) ; window
-
-	db ROUTE_11
-	dw Route11Blocks + (ROUTE_11_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (VERMILION_CITY_WIDTH + 6) * (4 + 4) ; current map position
-	db ROUTE_11_HEIGHT, ROUTE_11_WIDTH ; bigness, width
-	db (4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_11_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_6, ROUTE_6_WIDTH, ROUTE_6_HEIGHT, 5, 0, ROUTE_6_WIDTH, Route6Blocks
+	EAST_MAP_CONNECTION ROUTE_11, ROUTE_11_WIDTH, 4, 0, ROUTE_11_HEIGHT, Route11Blocks, VERMILION_CITY_WIDTH
 	dw VermilionCityObject ; objects
 
 VermilionCityObject: ; 0x189ba (size=133)
@@ -35971,32 +35916,9 @@
 	db FUCHSIA_CITY_HEIGHT, FUCHSIA_CITY_WIDTH ; dimensions (y, x)
 	dw FuchsiaCityBlocks, FuchsiaCityTextPointers, FuchsiaCityScript ; blocks, texts, scripts
 	db SOUTH | WEST | EAST ; connections
-
-	; connections data
-
-	db ROUTE_19
-	dw Route19Blocks ; connection strip location
-	dw $C6EB + (FUCHSIA_CITY_HEIGHT + 3) * (FUCHSIA_CITY_WIDTH + 6) + 5 ; current map position
-	db ROUTE_19_WIDTH, ROUTE_19_WIDTH ; bigness, width
-	db 0, (5 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_19_WIDTH ; window
-
-	db ROUTE_18
-	dw Route18Blocks - 3 + (ROUTE_18_WIDTH) ; connection strip location
-	dw $C6E8 + (FUCHSIA_CITY_WIDTH + 6) * (4 + 3) ; current map position
-	db ROUTE_18_HEIGHT, ROUTE_18_WIDTH ; bigness, width
-	db (4 * -2), (ROUTE_18_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_18_WIDTH ; window
-
-	db ROUTE_15
-	dw Route15Blocks + (ROUTE_15_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (FUCHSIA_CITY_WIDTH + 6) * (4 + 4) ; current map position
-	db ROUTE_15_HEIGHT, ROUTE_15_WIDTH ; bigness, width
-	db (4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_15_WIDTH ; window
-
-	; end connections data
-
+	SOUTH_MAP_CONNECTION ROUTE_19, ROUTE_19_WIDTH, 5, 0, ROUTE_19_WIDTH, Route19Blocks, FUCHSIA_CITY_WIDTH, FUCHSIA_CITY_HEIGHT
+	WEST_MAP_CONNECTION ROUTE_18, ROUTE_18_WIDTH, 4, 0, ROUTE_18_HEIGHT, Route18Blocks, FUCHSIA_CITY_WIDTH
+	EAST_MAP_CONNECTION ROUTE_15, ROUTE_15_WIDTH, 4, 0, ROUTE_15_HEIGHT, Route15Blocks, FUCHSIA_CITY_WIDTH
 	dw FuchsiaCityObject ; objects
 
 FuchsiaCityObject: ; 0x18bd4 (size=178)
@@ -38136,12 +38058,9 @@
 	db $41,4+3,4+3,$FF,$FF,ITEM|3,0 ; Daisy, walking around
 
 	; warp-to
-	dw $C712
-	db 7,2
+	EVENT_DISP BLUES_HOUSE_WIDTH, 7, 2
+	EVENT_DISP BLUES_HOUSE_WIDTH, 7, 3
 
-	dw $C712
-	db 7,3
-
 BluesHouseBlocks: ; 19bf6 (6:5bf6)
 	INCBIN "maps/blueshouse.blk"
 
@@ -38150,7 +38069,6 @@
 	db VERMILION_HOUSE_3_HEIGHT, VERMILION_HOUSE_3_WIDTH ; dimensions (y, x)
 	dw VermilionHouse3Blocks, VermilionHouse3TextPointers, VermilionHouse3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VermilionHouse3Object ; objects
 
 VermilionHouse3Script: ; 19c12 (6:5c12)
@@ -38180,8 +38098,8 @@
 	db SPRITE_LITTLE_GIRL, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
 
 	; warp-to
-	EVENT_DISP $4, $7, $2
-	EVENT_DISP $4, $7, $3
+	EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $2
+	EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $3
 
 VermilionHouse3Blocks: ; 19c3f (6:5c3f)
 	INCBIN "maps/vermilionhouse3.blk"
@@ -38191,7 +38109,6 @@
 	db INDIGO_PLATEAU_LOBBY_HEIGHT, INDIGO_PLATEAU_LOBBY_WIDTH ; dimensions (y, x)
 	dw IndigoPlateauLobbyBlocks, IndigoPlateauLobbyTextPointers, IndigoPlateauLobbyScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw IndigoPlateauLobbyObject ; objects
 
 IndigoPlateauLobbyScript: ; 19c5b (6:5c5b)
@@ -38266,7 +38183,6 @@
 	db SILPH_CO_4F_HEIGHT, SILPH_CO_4F_WIDTH ; dimensions (y, x)
 	dw SilphCo4Blocks, SilphCo4TextPointers, SilphCo4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo4Object ; objects
 
 SilphCo4Script: ; 19d0b (6:5d0b)
@@ -38511,7 +38427,6 @@
 	db SILPH_CO_5F_HEIGHT, SILPH_CO_5F_WIDTH ; dimensions (y, x)
 	dw SilphCo5Blocks, SilphCo5TextPointers, SilphCo5Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo5Object ; objects
 
 SilphCo5Script: ; 19f37 (6:5f37)
@@ -38782,7 +38697,6 @@
 	db SILPH_CO_6F_HEIGHT, SILPH_CO_6F_WIDTH ; dimensions (y, x)
 	dw SilphCo6Blocks, SilphCo6TextPointers, SilphCo6Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo6Object ; objects
 
 SilphCo6Script: ; 1a1a9 (6:61a9)
@@ -39520,25 +39434,8 @@
 	db CINNABAR_ISLAND_HEIGHT, CINNABAR_ISLAND_WIDTH ; dimensions (y, x)
 	dw CinnabarIslandBlocks, CinnabarIslandTextPointers, CinnabarIslandScript ; blocks, texts, scripts
 	db NORTH | EAST ; connections
-
-	; connections data
-
-	db ROUTE_21
-	dw Route21Blocks + (ROUTE_21_HEIGHT - 3) * ROUTE_21_WIDTH ; connection strip location
-	dw $C6EB + 0 ; current map position
-	db ROUTE_21_WIDTH, ROUTE_21_WIDTH ; bigness, width
-	db (ROUTE_21_HEIGHT * 2) - 1, (0 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_21_HEIGHT * (ROUTE_21_WIDTH + 6) ; window
-
-	db ROUTE_20
-	dw Route20Blocks + (ROUTE_20_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (CINNABAR_ISLAND_WIDTH + 6) * (0 + 4) ; current map position
-	db ROUTE_20_HEIGHT, ROUTE_20_WIDTH ; bigness, width
-	db (0 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_20_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_21, ROUTE_21_WIDTH, ROUTE_21_HEIGHT, 0, 0, ROUTE_21_WIDTH, Route21Blocks
+	EAST_MAP_CONNECTION ROUTE_20, ROUTE_20_WIDTH, 0, 0, ROUTE_20_HEIGHT, Route20Blocks, CINNABAR_ISLAND_WIDTH
 	dw CinnabarIslandObject ; objects
 
 CinnabarIslandObject: ; 0x1c022 (size=71)
@@ -39577,23 +39474,8 @@
 	db ROUTE_1_HEIGHT, ROUTE_1_WIDTH ; dimensions (y, x)
 	dw Route1Blocks, Route1TextPointers, Route1Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
-
-	; connections data
-
-	db VIRIDIAN_CITY
-	dw ViridianCityBlocks + (VIRIDIAN_CITY_HEIGHT - 3) * VIRIDIAN_CITY_WIDTH + 2, $c6e8 ; pointers (connected, current) (strip)
-	db $10, $14 ; bigness, width
-	db $23, $0a ; alignments (y, x)
-	dw $c8bd ; window
-
-	db PALLET_TOWN
-	dw PalletTownBlocks, $c83b ; pointers (connected, current) (strip)
-	db $0a, $0a ; bigness, width
-	db $00, $00 ; alignments (y, x)
-	dw $c6f9 ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION VIRIDIAN_CITY, VIRIDIAN_CITY_WIDTH, VIRIDIAN_CITY_HEIGHT, -3, 2, VIRIDIAN_CITY_WIDTH - 4, ViridianCityBlocks
+	SOUTH_MAP_CONNECTION PALLET_TOWN, PALLET_TOWN_WIDTH, 0, 0, PALLET_TOWN_WIDTH, PalletTownBlocks, ROUTE_1_WIDTH, ROUTE_1_HEIGHT
 	dw Route1Object ; objects
 
 Route1Object: ; 0x1c0e5 (size=19)
@@ -40060,7 +39942,6 @@
 	db OAKS_LAB_HEIGHT, OAKS_LAB_WIDTH ; dimensions (y, x)
 	dw OaksLabBlocks, OaksLabTextPointers, OaksLabScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw OaksLabObject ; objects
 
 OaksLabScript: ; 1cb0e (7:4b0e)
@@ -41339,7 +41220,6 @@
 	db VIRIDIAN_MART_HEIGHT, VIRIDIAN_MART_WIDTH ; dimensions (y, x)
 	dw ViridianMartBlocks, ViridianMartTextPointers, ViridianMartScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw ViridianMartObject ; objects
 
 ViridianMartScript: ; 1d46e (7:546e)
@@ -41464,7 +41344,6 @@
 	db VIRIDIAN_SCHOOL_HEIGHT, VIRIDIAN_SCHOOL_WIDTH ; dimensions (y, x)
 	dw SchoolBlocks, SchoolTextPointers, SchoolScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SchoolObject ; objects
 
 SchoolScript: ; 1d54c (7:554c)
@@ -41504,7 +41383,6 @@
 	db VIRIDIAN_HOUSE_HEIGHT, VIRIDIAN_HOUSE_WIDTH ; dimensions (y, x)
 	dw ViridianHouseBlocks, ViridianHouseTextPointers, ViridianHouseScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw ViridianHouseObject ; objects
 
 	db $0
@@ -41567,7 +41445,6 @@
 	db PEWTER_HOUSE_1_HEIGHT, PEWTER_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw PewterHouse1Blocks, PewterHouse1TextPointers, PewterHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PewterHouse1Object ; objects
 
 PewterHouse1Script: ; 1d5f3 (7:55f3)
@@ -41617,7 +41494,6 @@
 	db PEWTER_HOUSE_2_HEIGHT, PEWTER_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw PewterHouse2Blocks, PewterHouse2TextPointers, PewterHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PewterHouse2Object ; objects
 
 PewterHouse2Script: ; 1d648 (7:5648)
@@ -41657,7 +41533,6 @@
 	db TRASHED_HOUSE_HEIGHT, TRASHED_HOUSE_WIDTH ; dimensions (y, x)
 	dw CeruleanHouseTrashedBlocks, CeruleanHouseTrashedTextPointers, CeruleanHouseTrashedScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeruleanHouseTrashedObject ; objects
 
 CeruleanHouseTrashedScript: ; 1d685 (7:5685)
@@ -41726,7 +41601,6 @@
 	db CERULEAN_HOUSE_HEIGHT, CERULEAN_HOUSE_WIDTH ; dimensions (y, x)
 	dw CeruleanHouseBlocks, CeruleanHouseTextPointers, CeruleanHouseScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeruleanHouseObject ; objects
 
 CeruleanHouseScript: ; 1d6f6 (7:56f6)
@@ -41770,7 +41644,6 @@
 	db BIKE_SHOP_HEIGHT, BIKE_SHOP_WIDTH ; dimensions (y, x)
 	dw BikeShopBlocks, BikeShopTextPointers, BikeShopScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw BikeShopObject ; objects
 
 BikeShopScript: ; 1d73c (7:573c)
@@ -41953,7 +41826,6 @@
 	db LAVENDER_HOUSE_1_HEIGHT, LAVENDER_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw LavenderHouse1Blocks, LavenderHouse1TextPointers, LavenderHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw LavenderHouse1Object ; objects
 
 LavenderHouse1Script: ; 1d8a8 (7:58a8)
@@ -42099,7 +41971,6 @@
 	db LAVENDER_HOUSE_2_HEIGHT, LAVENDER_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw LavenderHouse2Blocks, LavenderHouse2TextPointers, LavenderHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw LavenderHouse2Object ; objects
 
 LavenderHouse2Script: ; 1d9ae (7:59ae)
@@ -42161,7 +42032,6 @@
 	db NAME_RATERS_HOUSE_HEIGHT, NAME_RATERS_HOUSE_WIDTH ; dimensions (y, x)
 	dw NameRaterBlocks, NameRaterTextPointers, NameRaterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw NameRaterObject ; objects
 
 NameRaterScript: ; 1da12 (7:5a12)
@@ -42175,7 +42045,7 @@
 	ret
 
 Func_1da20: ; 1da20 (7:5a20)
-	ld hl, $d273
+	ld hl, W_PARTYMON1OT
 	ld bc, $000b
 	ld a, [$cf92]
 	call AddNTimes
@@ -42295,7 +42165,6 @@
 	db VERMILION_HOUSE_1_HEIGHT, VERMILION_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw VermilionHouse1Blocks, VermilionHouse1TextPointers, VermilionHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VermilionHouse1Object ; objects
 
 VermilionHouse1Script: ; 1dafc (7:5afc)
@@ -42346,7 +42215,6 @@
 	db VERMILION_DOCK_HEIGHT, VERMILION_DOCK_WIDTH ; dimensions (y, x)
 	dw VermilionDockBlocks, VermilionDockTextPointers, VermilionDockScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VermilionDockObject ; objects
 
 VermilionDockScript: ; 1db52 (7:5b52)
@@ -42583,7 +42451,6 @@
 	db CELADON_MANSION_5_HEIGHT, CELADON_MANSION_5_WIDTH ; dimensions (y, x)
 	dw CeladonMansion5Blocks, CeladonMansion5TextPointers, CeladonMansion5Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMansion5Object ; objects
 
 CeladonMansion5Script: ; 1dd3a (7:5d3a)
@@ -42631,7 +42498,6 @@
 	db FUCHSIA_MART_HEIGHT, FUCHSIA_MART_WIDTH ; dimensions (y, x)
 	dw FuchsiaMartBlocks, FuchsiaMartTextPointers, FuchsiaMartScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FuchsiaMartObject ; objects
 
 FuchsiaMartScript: ; 1dd88 (7:5d88)
@@ -42676,7 +42542,6 @@
 	db SAFFRON_HOUSE_1_HEIGHT, SAFFRON_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw SaffronHouse1Blocks, SaffronHouse1TextPointers, SaffronHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SaffronHouse1Object ; objects
 
 SaffronHouse1Script: ; 1dddd (7:5ddd)
@@ -42731,7 +42596,6 @@
 	db SAFFRON_HOUSE_2_HEIGHT, SAFFRON_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw SaffronHouse2Blocks, SaffronHouse2TextPointers, SaffronHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SaffronHouse2Object ; objects
 
 SaffronHouse2Script: ; 1de3c (7:5e3c)
@@ -42802,7 +42666,6 @@
 	db DIGLETTS_CAVE_EXIT_HEIGHT, DIGLETTS_CAVE_EXIT_WIDTH ; dimensions (y, x)
 	dw DiglettsCaveRoute2Blocks, DiglettsCaveRoute2TextPointers, DiglettsCaveRoute2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw DiglettsCaveRoute2Object ; objects
 
 DiglettsCaveRoute2Script: ; 1deb0 (7:5eb0)
@@ -42840,7 +42703,6 @@
 	db ROUTE_2_HOUSE_HEIGHT, ROUTE_2_HOUSE_WIDTH ; dimensions (y, x)
 	dw Route2HouseBlocks, Route2HouseTextPointers, Route2HouseScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route2HouseObject ; objects
 
 Route2HouseScript: ; 1deed (7:5eed)
@@ -42884,7 +42746,6 @@
 	db ROUTE_5_GATE_HEIGHT, ROUTE_5_GATE_WIDTH ; dimensions (y, x)
 	dw Route5GateBlocks, Route5GateTextPointers, Route5GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route5GateObject ; objects
 
 Route5GateScript: ; 1df33 (7:5f33)
@@ -43037,7 +42898,6 @@
 	db ROUTE_6_GATE_HEIGHT, ROUTE_6_GATE_WIDTH ; dimensions (y, x)
 	dw Route6GateBlocks, Route6GateTextPointers, Route6GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route6GateObject ; objects
 
 Route6GateScript: ; 1e03d (7:603d)
@@ -43141,7 +43001,6 @@
 	db ROUTE_7_GATE_HEIGHT, ROUTE_7_GATE_WIDTH ; dimensions (y, x)
 	dw Route7GateBlocks, Route7GateTextPointers, Route7GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route7GateObject ; objects
 
 Route7GateScript: ; 1e100 (7:6100)
@@ -43248,7 +43107,6 @@
 	db ROUTE_8_GATE_HEIGHT, ROUTE_8_GATE_WIDTH ; dimensions (y, x)
 	dw Route8GateBlocks, Route8GateTextPointers, Route8GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route8GateObject ; objects
 
 Route8GateScript: ; 1e1c7 (7:61c7)
@@ -43352,7 +43210,6 @@
 	db PATH_ENTRANCE_ROUTE_8_HEIGHT, PATH_ENTRANCE_ROUTE_8_WIDTH ; dimensions (y, x)
 	dw UndergroundPathEntranceRoute8Blocks, UndergroundPathEntranceRoute8TextPointers, UndergroundPathEntranceRoute8Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UndergroundPathEntranceRoute8Object ; objects
 
 UndergroundPathEntranceRoute8Script: ; 1e289 (7:6289)
@@ -43363,10 +43220,8 @@
 UndergroundPathEntranceRoute8TextPointers: ; 1e291 (7:6291)
 	dw UndergroundPathEntranceRoute8Text1
 
-;XXX wtf? syntax error
 UndergroundPathEntranceRoute8Text1: ; 1e293 (7:6293)
-	db $17, $8d, $42, $23
-	;TX_FAR _UndergroundPathEntranceRoute8Text1
+	TX_FAR _UndergroundPathEntRoute8Text1
 	db "@"
 
 UndergroundPathEntranceRoute8Object: ; 0x1e298 (size=34)
@@ -43392,7 +43247,6 @@
 	db POWER_PLANT_HEIGHT, POWER_PLANT_WIDTH ; dimensions (y, x)
 	dw PowerPlantBlocks, PowerPlantTextPointers, PowerPlantScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PowerPlantObject ; objects
 
 PowerPlantScript: ; 1e2c6 (7:62c6)
@@ -43611,7 +43465,6 @@
 	db DIGLETTS_CAVE_ENTRANCE_HEIGHT, DIGLETTS_CAVE_ENTRANCE_WIDTH ; dimensions (y, x)
 	dw DiglettsCaveEntranceRoute11Blocks, DiglettsCaveEntranceRoute11TextPointers, DiglettsCaveEntranceRoute11Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw DiglettsCaveEntranceRoute11Object ; objects
 
 DiglettsCaveEntranceRoute11Script: ; 1e5ba (7:65ba)
@@ -43623,10 +43476,8 @@
 DiglettsCaveEntranceRoute11TextPointers: ; 1e5c3 (7:65c3)
 	dw DiglettsCaveEntranceRoute11Text1
 
-; XXX wtf? syntax error
 DiglettsCaveEntranceRoute11Text1: ; 1e5c5 (7:65c5)
-	db $17, $f9, $47, $23
-	;TX_FAR _DiglettsCaveEntranceRoute11Text1
+	TX_FAR _DiglettsCaveEntRoute11Text1
 	db "@"
 
 DiglettsCaveEntranceRoute11Object: ; 0x1e5ca (size=34)
@@ -43652,7 +43503,6 @@
 	db ROUTE_16_HOUSE_HEIGHT, ROUTE_16_HOUSE_WIDTH ; dimensions (y, x)
 	dw Route16HouseBlocks, Route16HouseTextPointers, Route16HouseScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route16HouseObject ; objects
 
 Route16HouseScript: ; 1e5f8 (7:65f8)
@@ -43734,7 +43584,6 @@
 	db ROUTE_22_GATE_HEIGHT, ROUTE_22_GATE_WIDTH ; dimensions (y, x)
 	dw Route22GateBlocks, Route22GateTextPointers, Route22GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route22GateObject ; objects
 
 Route22GateScript: ; 1e683 (7:6683)
@@ -43858,7 +43707,6 @@
 	db BILLS_HOUSE_HEIGHT, BILLS_HOUSE_WIDTH ; dimensions (y, x)
 	dw BillsHouseBlocks, BillsHouseTextPointers, BillsHouseScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw BillsHouseObject ; objects
 
 BillsHouseScript: ; 1e76a (7:676a)
@@ -44124,8 +43972,8 @@
 	ld a, $39
 	jp Func_3ef5
 
-UnnamedText_1e953: ; 1e953 (7:6953)
-	TX_FAR _UnnamedText_1e953
+NewBicycleText: ; 1e953 (7:6953)
+	TX_FAR _NewBicycleText
 	db "@"
 
 	call EnableAutoTextBoxDrawing
@@ -44244,7 +44092,7 @@
 	ld a, $31
 	jp Func_3ef5
 
-UnnamedText_1ea25: ; 1ea25 (7:6a25)
+CinnabarGymQuiz: ; 1ea25 (7:6a25)
 	db $08 ; asm
 	xor a
 	ld [$da38], a
@@ -44256,7 +44104,7 @@
 	and $f0
 	swap a
 	ld [$FF00+$dc], a
-	ld hl, UnnamedText_1ea5b ; $6a5b
+	ld hl, CinnabarGymQuizIntroText ; $6a5b
 	call PrintText
 	ld a, [$FF00+$db]
 	dec a
@@ -44263,7 +44111,7 @@
 	add a
 	ld d, $0
 	ld e, a
-	ld hl, PointerTable_1ea60 ; $6a60
+	ld hl, CinnabarQuizQuestions ; $6a60
 	add hl, de
 	ld a, [hli]
 	ld h, [hl]
@@ -44274,40 +44122,40 @@
 	call Func_1ea92
 	jp TextScriptEnd
 
-UnnamedText_1ea5b: ; 1ea5b (7:6a5b)
-	TX_FAR _UnnamedText_1ea5b
+CinnabarGymQuizIntroText: ; 1ea5b (7:6a5b)
+	TX_FAR _CinnabarGymQuizIntroText
 	db "@"
 
-PointerTable_1ea60: ; 1ea60 (7:6a60)
-	dw UnnamedText_1ea6c
-	dw UnnamedText_1ea71
-	dw UnnamedText_1ea76
-	dw UnnamedText_1ea7b
-	dw UnnamedText_1ea80
-	dw UnnamedText_1ea85
+CinnabarQuizQuestions: ; 1ea60 (7:6a60)
+	dw CinnabarQuizQuestionsText1
+	dw CinnabarQuizQuestionsText2
+	dw CinnabarQuizQuestionsText3
+	dw CinnabarQuizQuestionsText4
+	dw CinnabarQuizQuestionsText5
+	dw CinnabarQuizQuestionsText6
 
-UnnamedText_1ea6c: ; 1ea6c (7:6a6c)
-	TX_FAR _UnnamedText_1ea6c
+CinnabarQuizQuestionsText1: ; 1ea6c (7:6a6c)
+	TX_FAR _CinnabarQuizQuestionsText1
 	db "@"
 
-UnnamedText_1ea71: ; 1ea71 (7:6a71)
-	TX_FAR _UnnamedText_1ea71
+CinnabarQuizQuestionsText2: ; 1ea71 (7:6a71)
+	TX_FAR _CinnabarQuizQuestionsText2
 	db "@"
 
-UnnamedText_1ea76: ; 1ea76 (7:6a76)
-	TX_FAR _UnnamedText_1ea76
+CinnabarQuizQuestionsText3: ; 1ea76 (7:6a76)
+	TX_FAR _CinnabarQuizQuestionsText3
 	db "@"
 
-UnnamedText_1ea7b: ; 1ea7b (7:6a7b)
-	TX_FAR _UnnamedText_1ea7b
+CinnabarQuizQuestionsText4: ; 1ea7b (7:6a7b)
+	TX_FAR _CinnabarQuizQuestionsText4
 	db "@"
 
-UnnamedText_1ea80: ; 1ea80 (7:6a80)
-	TX_FAR _UnnamedText_1ea80
+CinnabarQuizQuestionsText5: ; 1ea80 (7:6a80)
+	TX_FAR _CinnabarQuizQuestionsText5
 	db "@"
 
-UnnamedText_1ea85: ; 1ea85 (7:6a85)
-	TX_FAR _UnnamedText_1ea85
+CinnabarQuizQuestionsText6: ; 1ea85 (7:6a85)
+	TX_FAR _CinnabarQuizQuestionsText6
 	db "@"
 
 Func_1ea8a: ; 1ea8a (7:6a8a)
@@ -44326,7 +44174,7 @@
 	set 5, [hl]
 	ld a, [$FF00+$db]
 	ld [$FF00+$e0], a
-	ld hl, UnnamedText_1eae3 ; $6ae3
+	ld hl, CinnabarGymQuizCorrectText ; $6ae3
 	call PrintText
 	ld a, [$FF00+$e0]
 	ld c, a
@@ -44338,7 +44186,7 @@
 	ld a, $a5
 	call PlaySound
 	call WaitForSoundToFinish
-	ld hl, UnnamedText_1eb05 ; $6b05
+	ld hl, CinnabarGymQuizIncorrectText ; $6b05
 	call PrintText
 	ld a, [$FF00+$db]
 	add $2
@@ -44355,9 +44203,9 @@
 	ld [$da38], a
 	ret
 
-UnnamedText_1eae3: ; 1eae3 (7:6ae3)
+CinnabarGymQuizCorrectText: ; 1eae3 (7:6ae3)
 	db $0b
-	TX_FAR _UnnamedText_1eae3
+	TX_FAR _CinnabarGymQuizCorrectText
 	db $06,$08
 
 	ld a, [$FF00+$e0]
@@ -44373,8 +44221,8 @@
 	call WaitForSoundToFinish
 	jp TextScriptEnd
 
-UnnamedText_1eb05: ; 1eb05 (7:6b05)
-	TX_FAR _UnnamedText_1eb05
+CinnabarGymQuizIncorrectText: ; 1eb05 (7:6b05)
+	TX_FAR _CinnabarGymQuizIncorrectText
 	db "@"
 
 Func_1eb0a: ; 1eb0a (7:6b0a)
@@ -44487,12 +44335,12 @@
 	call Func_3ef5
 	ret
 
-UnnamedText_1ebdd: ; 1ebdd (7:6bdd)
-	TX_FAR _UnnamedText_1ebdd
+BillsHouseMonitorText: ; 1ebdd (7:6bdd)
+	TX_FAR _BillsHouseMonitorText
 	db "@"
 
-UnnamedText_1ebe2: ; 1ebe2 (7:6be2)
-	TX_FAR _UnnamedText_1ebe2
+BillsHouseInitiatedText: ; 1ebe2 (7:6be2)
+	TX_FAR _BillsHouseInitiatedText
 	db $06
 	db $08 ; asm
 	ld a, $ff
@@ -44507,10 +44355,10 @@
 	call DelayFrames
 	jp TextScriptEnd
 
-UnnamedText_1ec05: ; 1ec05 (7:6c05)
+BillsHousePokemonList: ; 1ec05 (7:6c05)
 	db $08 ; asm
 	call SaveScreenTilesToBuffer1
-	ld hl, UnnamedText_1ec7f
+	ld hl, BillsHousePokemonListText1
 	call PrintText
 	xor a
 	ld [$d07c], a
@@ -44534,7 +44382,7 @@
 	ld hl, $c3ca
 	ld de, BillsMonListText
 	call PlaceString
-	ld hl, UnnamedText_1ecaa
+	ld hl, BillsHousePokemonListText2
 	call PrintText
 	call SaveScreenTilesToBuffer2
 	call HandleMenuInput
@@ -44542,13 +44390,13 @@
 	jr nz, .asm_1ec74
 	ld a, [$cc26]
 	add $66
-	cp $66
+	cp EEVEE
 	jr z, .asm_1ec6c
-	cp $67
+	cp FLAREON
 	jr z, .asm_1ec6c
-	cp $68
+	cp JOLTEON
 	jr z, .asm_1ec6c
-	cp $69
+	cp VAPOREON
 	jr z, .asm_1ec6c
 	jr .asm_1ec74
 .asm_1ec6c
@@ -44561,15 +44409,15 @@
 	call LoadScreenTilesFromBuffer2
 	jp TextScriptEnd
 
-UnnamedText_1ec7f: ; 1ec7f (7:6c7f)
-	TX_FAR _UnnamedText_1ec7f
+BillsHousePokemonListText1: ; 1ec7f (7:6c7f)
+	TX_FAR _BillsHousePokemonListText1
 	db "@"
 
 BillsMonListText: ; 1ec84 (7:6c84)
 	db "EEVEE",$4e,"FLAREON",$4e,"JOLTEON",$4e,"VAPOREON",$4e,"CANCEL@"
 
-UnnamedText_1ecaa: ; 1ecaa (7:6caa)
-	TX_FAR _UnnamedText_1ecaa
+BillsHousePokemonListText2: ; 1ecaa (7:6caa)
+	TX_FAR _BillsHousePokemonListText2
 	db "@"
 
 Func_1ecaf: ; 1ecaf (7:6caf)
@@ -44580,8 +44428,8 @@
 	ld a, $8
 	jp Func_3ef5
 
-UnnamedText_1ecbd: ; 1ecbd (7:6cbd)
-	TX_FAR _UnnamedText_1ecbd
+OakLabEmailText: ; 1ecbd (7:6cbd)
+	TX_FAR _OakLabEmailText
 	db "@"
 
 SECTION "bank8",ROMX,BANK[$8]
@@ -47387,50 +47235,50 @@
 	dw YoungsterName
 	dw BugCatcherName
 	dw LassName
-	dw $D04A
+	dw W_TRAINERNAME
 	dw JrTrainerMName
 	dw JrTrainerFName
 	dw PokemaniacName
 	dw SuperNerdName
-	dw $D04A
-	dw $D04A
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
 	dw BurglarName
 	dw EngineerName
 	dw JugglerXName
-	dw $D04A
+	dw W_TRAINERNAME
 	dw SwimmerName
-	dw $D04A
-	dw $D04A
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
 	dw BeautyName
-	dw $D04A
+	dw W_TRAINERNAME
 	dw RockerName
 	dw JugglerName
-	dw $D04A
-	dw $D04A
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
 	dw BlackbeltName
-	dw $D04A
+	dw W_TRAINERNAME
 	dw ProfOakName
 	dw ChiefName
 	dw ScientistName
-	dw $D04A
+	dw W_TRAINERNAME
 	dw RocketName
 	dw CooltrainerMName
 	dw CooltrainerFName
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
-	dw $D04A
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
+	dw W_TRAINERNAME
 
 YoungsterName: ; 27ec2 (9:7ec2)
 	db "YOUNGSTER@"
@@ -48029,12 +47877,12 @@
 	ld [$cd3d], a
 	ret
 
-UnnamedText_2ff32: ; 2ff32 (b:7f32)
-	TX_FAR _UnnamedText_2ff32
+GameCornerCoinCaseText: ; 2ff32 (b:7f32)
+	TX_FAR _GameCornerCoinCaseText
 	db "@"
 
-UnnamedText_2ff37: ; 2ff37 (b:7f37)
-	TX_FAR _UnnamedText_2ff37
+GameCornerNoCoinsText: ; 2ff37 (b:7f37)
+	TX_FAR _GameCornerNoCoinsText
 	db "@"
 
 SECTION "bankC",ROMX,BANK[$C]
@@ -49632,16 +49480,16 @@
 	call Func_3ef5
 	ret
 
-UnnamedText_37e79: ; 37e79 (d:7e79)
-	TX_FAR _UnnamedText_37e79
+GameCornerOutOfOrderText: ; 37e79 (d:7e79)
+	TX_FAR _GameCornerOutOfOrderText
 	db "@"
 
-UnnamedText_37e7e: ; 37e7e (d:7e7e)
-	TX_FAR _UnnamedText_37e7e
+GameCornerOutToLunchText: ; 37e7e (d:7e7e)
+	TX_FAR _GameCornerOutToLunchText
 	db "@"
 
-UnnamedText_37e83: ; 37e83 (d:7e83)
-	TX_FAR _UnnamedText_37e83
+GameCornerSomeonesKeysText: ; 37e83 (d:7e83)
+	TX_FAR _GameCornerSomeonesKeysText
 	db "@"
 
 SECTION "bankE",ROMX,BANK[$E]
@@ -56243,7 +56091,7 @@
 	cp $1
 	jr nz, .asm_39be6
 	ld hl, wEnemyPartyCount ; $d89c
-	ld de, $d9ac
+	ld de, W_ENEMYMON1OT ; $d9ac OT names of other player
 	ld a, $6
 	jr .asm_39c18
 .asm_39be6
@@ -57884,7 +57732,7 @@
 	ret
 
 Func_3a902: ; 3a902 (e:6902)
-	ld hl, Unknown_3a916 ; $6916
+	ld hl, PlayerBattleHUDGraphicsTiles ; $6916
 	ld de, $cd3f
 	ld bc, $3
 	call CopyData
@@ -57893,11 +57741,14 @@
 	ld de, rIE ; $ffff
 	jr Func_3a930
 
-Unknown_3a916: ; 3a916 (e:6916)
-INCBIN "baserom.gbc",$3a916,$3a919 - $3a916
+PlayerBattleHUDGraphicsTiles: ; 3a916 (e:6916)
+; The tile numbers for specific parts of the battle display for the player's pokemon
+	db $73 ; unused ($73 is hardcoded into the routine that uses these bytes)
+	db $77 ; lower-right corner tile of the HUD
+	db $6F ; lower-left triangle tile of the HUD
 
 Func_3a919: ; 3a919 (e:6919)
-	ld hl, Unknown_3a92d ; $692d
+	ld hl, EnemyBattleHUDGraphicsTiles ; $692d
 	ld de, $cd3f
 	ld bc, $3
 	call CopyData
@@ -57906,8 +57757,11 @@
 	ld de, $1
 	jr Func_3a930
 
-Unknown_3a92d: ; 3a92d (e:692d)
-INCBIN "baserom.gbc",$3a92d,$3a930 - $3a92d
+EnemyBattleHUDGraphicsTiles: ; 3a92d (e:692d)
+; The tile numbers for specific parts of the battle display for the enemy
+	db $73 ; unused ($73 is hardcoded in the routine that uses these bytes)
+	db $74 ; lower-left corner tile of the HUD
+	db $78 ; lower-right triangle tile of the HUD
 
 Func_3a930: ; 3a930 (e:6930)
 	ld [hl], $73
@@ -64685,7 +64539,7 @@
 
 Func_3db85: ; 3db85 (f:5b85)
 	push bc
-	ld a, [$d11e]
+	ld a, [$d11e] ; move number
 	ld c, a
 	ld b, $0
 	ld hl, Unknown_3dba3 ; $5ba3
@@ -66364,7 +66218,7 @@
 ; loop to do the calculations, the first iteration multiplies by the accuracy ratio and the second iteration multiplies by the evasion ratio
 .loop
 	push bc
-	ld hl,Unknown_3f6cb  ; $76cb ; stat modifier ratios
+	ld hl, StatModifierRatios  ; $76cb ; stat modifier ratios
 	dec b
 	sla b
 	ld c,b
@@ -67388,7 +67242,7 @@
 .asm_3edd4
 	pop bc
 	push hl
-	ld hl, Unknown_3f6cb ; $76cb
+	ld hl, StatModifierRatios ; $76cb
 	dec b
 	sla b
 	ld c, b
@@ -68383,7 +68237,7 @@
 .asm_3f48a
 	push hl
 	push bc
-	ld hl, Unknown_3f6cb ; $76cb
+	ld hl, StatModifierRatios ; $76cb
 	dec b
 	sla b
 	ld c, b
@@ -68595,7 +68449,7 @@
 .asm_3f5ef
 	push hl
 	push bc
-	ld hl, Unknown_3f6cb ; $76cb
+	ld hl, StatModifierRatios ; $76cb
 	dec b
 	sla b
 	ld c, b
@@ -68719,8 +68573,21 @@
 	db "ACCURACY@"
 	db "EVADE@"
 
-Unknown_3f6cb: ; 3f6cb (f:76cb)
-INCBIN "baserom.gbc",$3f6cb,$3f6e5 - $3f6cb
+StatModifierRatios: ; 3f6cb (f:76cb)
+; first byte is numerator, second byte is denominator
+	db 25, 100  ; 0.25
+	db 28, 100  ; 0.28
+	db 33, 100  ; 0.33
+	db 40, 100  ; 0.40
+	db 50, 100  ; 0.50
+	db 66, 100  ; 0.66
+	db  1,   1  ; 1.00
+	db 15,  10  ; 1.50
+	db  2,   1  ; 2.00
+	db 25,  10  ; 2.50
+	db  3,   1  ; 3.00
+	db 35,  10  ; 3.50
+	db  4,   1  ; 4.00
 
 Func_3f6e5: ; 3f6e5 (f:76e5)
 	ld hl, W_PLAYERBATTSTATUS1
@@ -72418,12 +72285,12 @@
 	call PlaySound
 	xor a
 	ld [$d09f], a
-	ld de, Unknown_41910
+	ld de, IntroNidorinoAnimation1
 	call AnimateIntroNidorino
 ; hop
 	ld a, $ba
 	call PlaySound
-	ld de, Unknown_4191b
+	ld de, IntroNidorinoAnimation2
 	call AnimateIntroNidorino
 	ld c, $a
 	call CheckForUserInterruption
@@ -72432,12 +72299,12 @@
 ; hip
 	ld a, $b9
 	call PlaySound
-	ld de, Unknown_41910
+	ld de, IntroNidorinoAnimation1
 	call AnimateIntroNidorino
 ; hop
 	ld a, $ba
 	call PlaySound
-	ld de, Unknown_4191b
+	ld de, IntroNidorinoAnimation2
 	call AnimateIntroNidorino
 	ld c, $1e
 	call CheckForUserInterruption
@@ -72466,7 +72333,7 @@
 	call PlaySound
 	ld a, $24
 	ld [$d09f], a
-	ld de, Unknown_41926
+	ld de, IntroNidorinoAnimation3
 	call AnimateIntroNidorino
 	ld c, $1e
 	call CheckForUserInterruption
@@ -72485,12 +72352,12 @@
 	call PlaySound
 	xor a
 	ld [$d09f], a
-	ld de, Unknown_41931 ; $5931
+	ld de, IntroNidorinoAnimation4 ; $5931
 	call AnimateIntroNidorino
 ; hop
 	ld a, $ba
 	call PlaySound
-	ld de, Unknown_4193c ; $593c
+	ld de, IntroNidorinoAnimation5 ; $593c
 	call AnimateIntroNidorino
 	ld c, $14
 	call CheckForUserInterruption
@@ -72498,7 +72365,7 @@
 
 	ld a, $24
 	ld [$d09f], a
-	ld de, Unknown_41947 ; $5947
+	ld de, IntroNidorinoAnimation6 ; $5947
 	call AnimateIntroNidorino
 	ld c, $1e
 	call CheckForUserInterruption
@@ -72509,7 +72376,7 @@
 	call PlaySound
 	ld a, $48
 	ld [$d09f], a
-	ld de, Unknown_41950 ; $5950
+	ld de, IntroNidorinoAnimation7 ; $5950
 	jp AnimateIntroNidorino
 
 AnimateIntroNidorino: ; 41793 (10:5793)
@@ -72733,26 +72600,74 @@
 
 INCBIN "baserom.gbc",$4190c,$41910 - $4190c
 
-Unknown_41910: ; 41910 (10:5910)
-INCBIN "baserom.gbc",$41910,$4191b - $41910
+IntroNidorinoAnimation1: ; 41910 (10:5910)
+; This is a sequence of pixel movements for part of the Nidorino animation. This 
+; list describes how Nidorino should hop.
+; First byte is y movement, second byte is x movement
+	db  0, 0
+	db -2, 2
+	db -1, 2
+	db  1, 2
+	db  2, 2
+	db $50 ; list terminator 
 
-Unknown_4191b: ; 4191b (10:591b)
-INCBIN "baserom.gbc",$4191b,$41926 - $4191b
+IntroNidorinoAnimation2: ; 4191b (10:591b)
+; This is a sequence of pixel movements for part of the Nidorino animation.
+; First byte is y movement, second byte is x movement
+	db  0,  0
+	db -2, -2
+	db -1, -2
+	db  1, -2
+	db  2, -2
+	db $50 ; list terminator
 
-Unknown_41926: ; 41926 (10:5926)
-INCBIN "baserom.gbc",$41926,$41931 - $41926
+IntroNidorinoAnimation3: ; 41926 (10:5926)
+; This is a sequence of pixel movements for part of the Nidorino animation.
+; First byte is y movement, second byte is x movement
+	db   0, 0
+	db -12, 6
+	db  -8, 6
+	db   8, 6
+	db  12, 6
+	db $50 ; list terminator 
 
-Unknown_41931: ; 41931 (10:5931)
-INCBIN "baserom.gbc",$41931,$4193c - $41931
+IntroNidorinoAnimation4: ; 41931 (10:5931)
+; This is a sequence of pixel movements for part of the Nidorino animation.
+; First byte is y movement, second byte is x movement
+	db  0,  0
+	db -8, -4
+	db -4, -4
+	db  4, -4
+	db  8, -4
+	db $50 ; list terminator
 
-Unknown_4193c: ; 4193c (10:593c)
-INCBIN "baserom.gbc",$4193c,$41947 - $4193c
+IntroNidorinoAnimation5: ; 4193c (10:593c)
+; This is a sequence of pixel movements for part of the Nidorino animation.
+; First byte is y movement, second byte is x movement
+	db  0, 0
+	db -8, 4
+	db -4, 4
+	db  4, 4
+	db  8, 4
+	db $50 ; list terminator
 
-Unknown_41947: ; 41947 (10:5947)
-INCBIN "baserom.gbc",$41947,$41950 - $41947
+IntroNidorinoAnimation6: ; 41947 (10:5947)
+; This is a sequence of pixel movements for part of the Nidorino animation.
+; First byte is y movement, second byte is x movement
+	db 0, 0
+	db 2, 0
+	db 2, 0
+	db 0, 0
+	db $50 ; list terminator
 
-Unknown_41950: ; 41950 (10:5950)
-INCBIN "baserom.gbc",$41950,$41959 - $41950
+IntroNidorinoAnimation7: ; 41950 (10:5950)
+; This is a sequence of pixel movements for part of the Nidorino animation.
+; First byte is y movement, second byte is x movement
+	db -8, -16
+	db -7, -14
+	db -6, -12
+	db -4, -10
+	db $50 ; list terminator 
 
 GameFreakIntro: ; 41959 (10:5959)
 	INCBIN "gfx/gamefreak_intro.2bpp"
@@ -72839,32 +72754,9 @@
 	db LAVENDER_TOWN_HEIGHT, LAVENDER_TOWN_WIDTH ; dimensions (y, x)
 	dw LavenderTownBlocks, LavenderTownTextPointers, LavenderTownScript ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST ; connections
-
-	; connections data
-
-	db ROUTE_10
-	dw Route10Blocks + (ROUTE_10_HEIGHT - 3) * ROUTE_10_WIDTH ; connection strip location
-	dw $C6EB + 0 ; current map position
-	db ROUTE_10_WIDTH, ROUTE_10_WIDTH ; bigness, width
-	db (ROUTE_10_HEIGHT * 2) - 1, (0 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_10_HEIGHT * (ROUTE_10_WIDTH + 6) ; window
-
-	db ROUTE_12
-	dw Route12Blocks ; connection strip location
-	dw $C6EB + (LAVENDER_TOWN_HEIGHT + 3) * (LAVENDER_TOWN_WIDTH + 6) + 0 ; current map position
-	db ROUTE_12_WIDTH, ROUTE_12_WIDTH ; bigness, width
-	db 0, (0 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_12_WIDTH ; window
-
-	db ROUTE_8
-	dw Route8Blocks - 3 + (ROUTE_8_WIDTH) ; connection strip location
-	dw $C6E8 + (LAVENDER_TOWN_WIDTH + 6) * (0 + 3) ; current map position
-	db ROUTE_8_HEIGHT, ROUTE_8_WIDTH ; bigness, width
-	db (0 * -2), (ROUTE_8_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_8_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_10, ROUTE_10_WIDTH, ROUTE_10_HEIGHT, 0, 0, ROUTE_10_WIDTH, Route10Blocks
+	SOUTH_MAP_CONNECTION ROUTE_12, ROUTE_12_WIDTH, 0, 0, ROUTE_12_WIDTH, Route12Blocks, LAVENDER_TOWN_WIDTH, LAVENDER_TOWN_HEIGHT
+	WEST_MAP_CONNECTION ROUTE_8, ROUTE_8_WIDTH, 0, 0, ROUTE_8_HEIGHT, Route8Blocks, LAVENDER_TOWN_WIDTH
 	dw LavenderTownObject ; objects
 
 LavenderTownObject: ; 0x4402d (size=88)
@@ -73137,10 +73029,9 @@
 
 ViridianPokecenter_h: ; 0x44251 to 0x4425d (12 bytes) (bank=11) (id=41)
 	db $06 ; tileset
-	db $04, $07 ; dimensions (y, x)
+	db VIRIDIAN_POKECENTER_HEIGHT, VIRIDIAN_POKECENTER_WIDTH ; dimensions (y, x)
 	dw ViridianPokecenterBlocks, ViridianPokecenterTextPointers, ViridianPokeCenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw ViridianPokecenterObject ; objects
 
 ViridianPokeCenterScript: ; 4425d (11:425d)
@@ -73191,7 +73082,6 @@
 	db MANSION_1_HEIGHT, MANSION_1_WIDTH ; dimensions (y, x)
 	dw Mansion1Blocks, Mansion1TextPointers, Mansion1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Mansion1Object ; objects
 
 Mansion1Script: ; 442af (11:42af)
@@ -73372,7 +73262,6 @@
 	db ROCK_TUNNEL_1_HEIGHT, ROCK_TUNNEL_1_WIDTH ; dimensions (y, x)
 	dw RockTunnel1Blocks, RockTunnel1TextPointers, RockTunnel1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw RockTunnel1Object ; objects
 
 RockTunnel1Script: ; 444dc (11:44dc)
@@ -73633,7 +73522,6 @@
 	db SEAFOAM_ISLANDS_1_HEIGHT, SEAFOAM_ISLANDS_1_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands1Blocks, SeafoamIslands1TextPointers, SeafoamIslands1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SeafoamIslands1Object ; objects
 
 SeafoamIslands1Script: ; 447e9 (11:47e9)
@@ -73726,7 +73614,6 @@
 	db SS_ANNE_3_HEIGHT, SS_ANNE_3_WIDTH ; dimensions (y, x)
 	dw SSAnne3Blocks, SSAnne3TextPointers, SSAnne3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne3Object ; objects
 
 SSAnne3Script: ; 44932 (11:4932)
@@ -73763,7 +73650,6 @@
 	db VICTORY_ROAD_3_HEIGHT, VICTORY_ROAD_3_WIDTH ; dimensions (y, x)
 	dw VictoryRoad3Blocks, VictoryRoad3TextPointers, VictoryRoad3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VictoryRoad3Object ; objects
 
 VictoryRoad3Script: ; 44980 (11:4980)
@@ -74009,7 +73895,6 @@
 	db ROCKET_HIDEOUT_1_HEIGHT, ROCKET_HIDEOUT_1_WIDTH ; dimensions (y, x)
 	dw RocketHideout1Blocks, RocketHideout1TextPointers, RocketHideout1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw RocketHideout1Object ; objects
 
 RocketHideout1Script: ; 44bca (11:4bca)
@@ -74242,7 +74127,6 @@
 	db ROCKET_HIDEOUT_2_HEIGHT, ROCKET_HIDEOUT_2_WIDTH ; dimensions (y, x)
 	dw RocketHideout2Blocks, RocketHideout2TextPointers, RocketHideout2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw RocketHideout2Object ; objects
 
 RocketHideout2Script: ; 44e27 (11:4e27)
@@ -74775,7 +74659,6 @@
 	db ROCKET_HIDEOUT_3_HEIGHT, ROCKET_HIDEOUT_3_WIDTH ; dimensions (y, x)
 	dw RocketHideout3Blocks, RocketHideout3TextPointers, RocketHideout3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw RocketHideout3Object ; objects
 
 RocketHideout3Script: ; 45225 (11:5225)
@@ -74987,10 +74870,7 @@
 	db "@"
 
 RocketHideout3AfterBattleText3: ; 45348 (11:5348)
-	;TX_FAR _RocketHideout3AfterBattleText3
-	db $17
-	dw _RocketHideout3AfterBattleText3
-	db BANK(_RocketHideout3AfterBattleText3)
+	TX_FAR _RocketHide3AfterBattleText3
 	db "@"
 
 RocketHideout3Object: ; 0x4534d (size=50)
@@ -75020,7 +74900,6 @@
 	db ROCKET_HIDEOUT_4_HEIGHT, ROCKET_HIDEOUT_4_WIDTH ; dimensions (y, x)
 	dw RocketHideout4Blocks, RocketHideout4TextPointers, RocketHideout4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw RocketHideout4Object ; objects
 
 RocketHideout4Script: ; 4545d (11:545d)
@@ -75202,10 +75081,7 @@
 	db "@"
 
 RocketHideout4AfterBattleText2: ; 4559d (11:559d)
-	;TX_FAR _RocketHideout4AfterBattleText2
-	db $17
-	dw _RocketHideout4AfterBattleText2
-	db BANK(_RocketHideout4AfterBattleText2)
+	TX_FAR _RocketHide4AfterBattleText2
 	db "@"
 
 RocketHideout4Text3: ; 455a2 (11:55a2)
@@ -75223,10 +75099,7 @@
 	db "@"
 
 RocketHideout4AfterBattleText3: ; 455b6 (11:55b6)
-	;TX_FAR _RocketHideout4AfterBattleText3
-	db $17
-	dw _RocketHideout4AfterBattleText3
-	db BANK(_RocketHideout4AfterBattleText3)
+	TX_FAR _RocketHide4AfterBattleText3
 	db "@"
 
 RocketHideout4Text4: ; 455bb (11:55bb)
@@ -75296,7 +75169,6 @@
 	db ROCKET_HIDEOUT_ELEVATOR_HEIGHT, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; dimensions (y, x)
 	dw RocketHideoutElevatorBlocks, RocketHideoutElevatorTextPointers, RocketHideoutElevatorScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw RocketHideoutElevatorObject ; objects
 
 RocketHideoutElevatorScript: ; 45710 (11:5710)
@@ -75401,7 +75273,6 @@
 	db SILPH_CO_ELEVATOR_HEIGHT, SILPH_CO_ELEVATOR_WIDTH ; dimensions (y, x)
 	dw SilphCoElevatorBlocks, SilphCoElevatorTextPointers, SilphCoElevatorScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCoElevatorObject ; objects
 
 SilphCoElevatorScript: ; 457c0 (11:57c0)
@@ -75494,7 +75365,6 @@
 	db SAFARI_ZONE_EAST_HEIGHT, SAFARI_ZONE_EAST_WIDTH ; dimensions (y, x)
 	dw SafariZoneEastBlocks, SafariZoneEastTextPointers, SafariZoneEastScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneEastObject ; objects
 
 SafariZoneEastScript: ; 4586b (11:586b)
@@ -75557,7 +75427,6 @@
 	db SAFARI_ZONE_NORTH_HEIGHT, SAFARI_ZONE_NORTH_WIDTH ; dimensions (y, x)
 	dw SafariZoneNorthBlocks, SafariZoneNorthTextPointers, SafariZoneNorthScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneNorthObject ; objects
 
 SafariZoneNorthScript: ; 459ab (11:59ab)
@@ -75636,7 +75505,6 @@
 	db SAFARI_ZONE_CENTER_HEIGHT, SAFARI_ZONE_CENTER_WIDTH ; dimensions (y, x)
 	dw SafariZoneCenterBlocks, SafariZoneCenterTextPointers, SafariZoneCenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneCenterObject ; objects
 
 SafariZoneCenterScript: ; 45bb2 (11:5bb2)
@@ -75695,7 +75563,6 @@
 	db SAFARI_ZONE_REST_HOUSE_1_HEIGHT, SAFARI_ZONE_REST_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw SafariZoneRestHouse1Blocks, SafariZoneRestHouse1TextPointers, SafariZoneRestHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneRestHouse1Object ; objects
 
 SafariZoneRestHouse1Script: ; 45ced (11:5ced)
@@ -75735,7 +75602,6 @@
 	db SAFARI_ZONE_REST_HOUSE_2_HEIGHT, SAFARI_ZONE_REST_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw SafariZoneRestHouse2Blocks, SafariZoneRestHouse2TextPointers, SafariZoneRestHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneRestHouse2Object ; objects
 
 SafariZoneRestHouse2Script: ; 45d2a (11:5d2a)
@@ -75782,7 +75648,6 @@
 	db SAFARI_ZONE_REST_HOUSE_3_HEIGHT, SAFARI_ZONE_REST_HOUSE_3_WIDTH ; dimensions (y, x)
 	dw SafariZoneRestHouse3Blocks, SafariZoneRestHouse3TextPointers, SafariZoneRestHouse3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneRestHouse3Object ; objects
 
 SafariZoneRestHouse3Script: ; 45d75 (11:5d75)
@@ -75829,7 +75694,6 @@
 	db SAFARI_ZONE_REST_HOUSE_4_HEIGHT, SAFARI_ZONE_REST_HOUSE_4_WIDTH ; dimensions (y, x)
 	dw SafariZoneRestHouse4Blocks, SafariZoneRestHouse4TextPointers, SafariZoneRestHouse4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneRestHouse4Object ; objects
 
 SafariZoneRestHouse4Script: ; 45dc0 (11:5dc0)
@@ -75876,7 +75740,6 @@
 	db UNKNOWN_DUNGEON_2_HEIGHT, UNKNOWN_DUNGEON_2_WIDTH ; dimensions (y, x)
 	dw UnknownDungeon2Blocks, UnknownDungeon2TextPointers, UnknownDungeon2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UnknownDungeon2Object ; objects
 
 UnknownDungeon2Script: ; 45e0b (11:5e0b)
@@ -75921,7 +75784,6 @@
 	db UNKNOWN_DUNGEON_3_HEIGHT, UNKNOWN_DUNGEON_3_WIDTH ; dimensions (y, x)
 	dw UnknownDungeon3Blocks, UnknownDungeon3TextPointers, UnknownDungeon3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UnknownDungeon3Object ; objects
 
 UnknownDungeon3Script: ; 45ef0 (11:5ef0)
@@ -75993,7 +75855,6 @@
 	db ROCK_TUNNEL_2_HEIGHT, ROCK_TUNNEL_2_WIDTH ; dimensions (y, x)
 	dw RockTunnel2Blocks, RockTunnel2TextPointers, RockTunnel2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw RockTunnel2Object ; objects
 
 RockTunnel2Script: ; 45feb (11:5feb)
@@ -76274,7 +76135,6 @@
 	db SEAFOAM_ISLANDS_2_HEIGHT, SEAFOAM_ISLANDS_2_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands2Blocks, SeafoamIslands2TextPointers, SeafoamIslands2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SeafoamIslands2Object ; objects
 
 SeafoamIslands2Script: ; 46315 (11:6315)
@@ -76361,7 +76221,6 @@
 	db SEAFOAM_ISLANDS_3_HEIGHT, SEAFOAM_ISLANDS_3_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands3Blocks, SeafoamIslands3TextPointers, SeafoamIslands3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SeafoamIslands3Object ; objects
 
 SeafoamIslands3Script: ; 46451 (11:6451)
@@ -76448,7 +76307,6 @@
 	db SEAFOAM_ISLANDS_4_HEIGHT, SEAFOAM_ISLANDS_4_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands4Blocks, SeafoamIslands4TextPointers, SeafoamIslands4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SeafoamIslands4Object ; objects
 
 SeafoamIslands4Script: ; 4658d (11:658d)
@@ -76639,7 +76497,6 @@
 	db SEAFOAM_ISLANDS_5_HEIGHT, SEAFOAM_ISLANDS_5_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands5Blocks, SeafoamIslands5TextPointers, SeafoamIslands5Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SeafoamIslands5Object ; objects
 
 SeafoamIslands5Script: ; 46799 (11:6799)
@@ -77762,27 +77619,10 @@
 Route7_h: ; 0x48000 to 0x48022 (34 bytes) (bank=12) (id=18)
 	db $00 ; tileset
 	db ROUTE_7_HEIGHT, ROUTE_7_WIDTH ; dimensions (y, x)
-	dw Route7Blocks, $4155, Route7Script ; blocks, texts, scripts
+	dw Route7Blocks, Route7TextPointers, Route7Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
-
-	; connections data
-
-	db CELADON_CITY
-	dw CeladonCityBlocks - 3 + (CELADON_CITY_WIDTH * 2) ; connection strip location
-	dw $C6E8 + (ROUTE_7_WIDTH + 6) * (-3 + 3) ; current map position
-	db $f, CELADON_CITY_WIDTH ; bigness, width
-	db (-4 * -2), (CELADON_CITY_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * CELADON_CITY_WIDTH ; window
-
-	db SAFFRON_CITY
-	dw SaffronCityBlocks + (SAFFRON_CITY_WIDTH) ; connection strip location
-	dw $C6E5 + (ROUTE_7_WIDTH + 6) * (-3 + 4) ; current map position
-	db $f, SAFFRON_CITY_WIDTH ; bigness, width
-	db (-4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + SAFFRON_CITY_WIDTH ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION CELADON_CITY, CELADON_CITY_WIDTH, -3, 1, CELADON_CITY_HEIGHT - 3, CeladonCityBlocks, ROUTE_7_WIDTH
+	EAST_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, -3, 1, SAFFRON_CITY_HEIGHT - 3, SaffronCityBlocks, ROUTE_7_WIDTH
 	dw Route7Object ; objects
 
 Route7Object: ; 0x48022 (size=47)
@@ -77895,8 +77735,8 @@
 Route7Script: ; 48152 (12:4152)
 	jp EnableAutoTextBoxDrawing
 
-; XXX
-	db $57, $41
+Route7TextPointers: ; 48155 (12:4155)
+	dw Route7Text1
 
 Route7Text1: ; 48157 (12:4157)
 	TX_FAR _Route7Text1
@@ -77904,7 +77744,7 @@
 
 RedsHouse1F_h: ; 4815c (12:415c)
 	db $01 ; tileset
-	db $04,$04 ; dimensions
+	db REDS_HOUSE_1F_HEIGHT, REDS_HOUSE_1F_WIDTH ; dimensions
 	dw RedsHouse1FBlocks, RedsHouse1FTextPointers, RedsHouse1FScript
 	db 0 ; no connections
 	dw RedsHouse1FObject
@@ -77994,16 +77834,10 @@
 	db $33,4+4,5+4,$FF,$D2,1 ; Mom
 
 	; warp-to
+	EVENT_DISP REDS_HOUSE_1F_WIDTH, 7, 2
+	EVENT_DISP REDS_HOUSE_1F_WIDTH, 7, 3
+	EVENT_DISP REDS_HOUSE_1F_WIDTH, 1, 7
 
-	dw $C6EF + 4 + (4 + 6) * (3) + 1
-	db 7,2
-
-	dw $C6EF + 4 + (4 + 6) * (3) + 1
-	db 7,3
-
-	dw $C6EF + 4 + (4 + 6) * (0) + 3
-	db 1,7
-
 RedsHouse1FBlocks: ; 48209 (12:4209)
 	INCBIN "maps/redshouse1f.blk"
 
@@ -78012,7 +77846,6 @@
 	db CELADON_MART_3_HEIGHT, CELADON_MART_3_WIDTH ; dimensions (y, x)
 	dw CeladonMart3Blocks, CeladonMart3TextPointers, CeladonMart3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMart3Object ; objects
 
 CeladonMart3Script: ; 48225 (12:4225)
@@ -78167,7 +78000,6 @@
 	db CELADON_MART_4_HEIGHT, CELADON_MART_4_WIDTH ; dimensions (y, x)
 	dw CeladonMart4Blocks, CeladonMart4TextPointers, CeladonMart4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMart4Object ; objects
 
 CeladonMart4Script: ; 48356 (12:4356)
@@ -78220,7 +78052,6 @@
 	db CELADON_MART_ROOF_HEIGHT, CELADON_MART_ROOF_WIDTH ; dimensions (y, x)
 	dw CeladonMartRoofBlocks, CeladonMartRoofTextPointers, CeladonMartRoofScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMartRoofObject ; objects
 
 CeladonMartRoofScript: ; 483d5 (12:43d5)
@@ -78514,7 +78345,6 @@
 	db CELADON_MART_ELEVATOR_HEIGHT, CELADON_MART_ELEVATOR_WIDTH ; dimensions (y, x)
 	dw CeladonMartElevatorBlocks, CeladonMartElevatorTextPointers, CeladonMartElevatorScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMartElevatorObject ; objects
 
 CeladonMartElevatorScript: ; 48600 (12:4600)
@@ -78604,7 +78434,6 @@
 	db CELADON_MANSION_1_HEIGHT, CELADON_MANSION_1_WIDTH ; dimensions (y, x)
 	dw CeladonMansion1Blocks, CeladonMansion1TextPointers, CeladonMansion1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMansion1Object ; objects
 
 CeladonMansion1Script: ; 48694 (12:4694)
@@ -78681,7 +78510,6 @@
 	db CELADON_MANSION_2_HEIGHT, CELADON_MANSION_2_WIDTH ; dimensions (y, x)
 	dw CeladonMansion2Blocks, CeladonMansion2TextPointers, CeladonMansion2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMansion2Object ; objects
 
 CeladonMansion2Script: ; 4873a (12:473a)
@@ -78723,7 +78551,6 @@
 	db CELADON_MANSION_3_HEIGHT, CELADON_MANSION_3_WIDTH ; dimensions (y, x)
 	dw CeladonMansion3Blocks, CeladonMansion3TextPointers, CeladonMansion3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMansion3Object ; objects
 
 CeladonMansion3Script: ; 48790 (12:4790)
@@ -78835,7 +78662,6 @@
 	db CELADON_MANSION_4_HEIGHT, CELADON_MANSION_4_WIDTH ; dimensions (y, x)
 	dw CeladonMansion4Blocks, CeladonMansion4TextPointers, CeladonMansion4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMansion4Object ; objects
 
 CeladonMansion4Script: ; 4886b (12:486b)
@@ -78874,7 +78700,6 @@
 	db CELADON_POKECENTER_HEIGHT, CELADON_POKECENTER_WIDTH ; dimensions (y, x)
 	dw CeladonPokecenterBlocks, CeladonPokecenterTextPointers, CeladonPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonPokecenterObject ; objects
 
 CeladonPokecenterScript: ; 488b8 (12:48b8)
@@ -78925,7 +78750,6 @@
 	db CELADON_GYM_HEIGHT, CELADON_GYM_WIDTH ; dimensions (y, x)
 	dw CeladonGymBlocks, CeladonGymTextPointers, CeladonGymScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonGymObject ; objects
 
 CeladonGymScript: ; 4890a (12:490a)
@@ -79301,7 +79125,6 @@
 	db GAME_CORNER_HEIGHT, GAME_CORNER_WIDTH ; dimensions (y, x)
 	dw CeladonGameCornerBlocks, CeladonGameCornerTextPointers, CeladonGameCornerScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonGameCornerObject ; objects
 
 CeladonGameCornerScript: ; 48bbd (12:4bbd)
@@ -79878,7 +79701,6 @@
 	db CELADON_MART_5_HEIGHT, CELADON_MART_5_WIDTH ; dimensions (y, x)
 	dw CeladonMart5Blocks, CeladonMart5TextPointers, CeladonMart5Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMart5Object ; objects
 
 CeladonMart5Script: ; 49069 (12:5069)
@@ -79933,7 +79755,6 @@
 	db CELADONPRIZE_ROOM_HEIGHT, CELADONPRIZE_ROOM_WIDTH ; dimensions (y, x)
 	dw CeladonPrizeRoomBlocks, CeladonPrizeRoomTextPointers, CeladonPrizeRoomScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonPrizeRoomObject ; objects
 
 CeladonPrizeRoomScript: ; 490f0 (12:50f0)
@@ -79985,7 +79806,6 @@
 	db CELADON_DINER_HEIGHT, CELADON_DINER_WIDTH ; dimensions (y, x)
 	dw CeladonDinerBlocks, CeladonDinerTextPointers, CeladonDinerScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonDinerObject ; objects
 
 CeladonDinerScript: ; 49151 (12:5151)
@@ -80084,7 +79904,6 @@
 	db CELADON_HOUSE_HEIGHT, CELADON_HOUSE_WIDTH ; dimensions (y, x)
 	dw CeladonHouseBlocks, CeladonHouseTextPointers, CeladonHouseScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonHouseObject ; objects
 
 CeladonHouseScript: ; 4920e (12:520e)
@@ -80134,7 +79953,6 @@
 	db CELADONHOTEL_HEIGHT, CELADONHOTEL_WIDTH ; dimensions (y, x)
 	dw CeladonHotelBlocks, CeladonHotelTextPointers, CeladonHotelScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonHotelObject ; objects
 
 CeladonHotelScript: ; 49269 (12:5269)
@@ -80183,7 +80001,6 @@
 	db MT_MOON_POKECENTER_HEIGHT, MT_MOON_POKECENTER_WIDTH ; dimensions (y, x)
 	dw MtMoonPokecenterBlocks, MtMoonPokecenterTextPointers, MtMoonPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw MtMoonPokecenterObject ; objects
 
 MtMoonPokecenterScript: ; 492cf (12:52cf)
@@ -80310,7 +80127,6 @@
 	db ROCK_TUNNEL_POKECENTER_HEIGHT, ROCK_TUNNEL_POKECENTER_WIDTH ; dimensions (y, x)
 	dw RockTunnelPokecenterBlocks, RockTunnelPokecenterTextPointers, RockTunnelPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw RockTunnelPokecenterObject ; objects
 
 RockTunnelPokecenterScript: ; 493ba (12:53ba)
@@ -80361,7 +80177,6 @@
 	db ROUTE_11_GATE_1F_HEIGHT, ROUTE_11_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route11GateBlocks, Route11GateTextPointers, Route11GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route11GateObject ; objects
 
 Route11GateScript: ; 4940c (12:540c)
@@ -80401,7 +80216,6 @@
 	db ROUTE_11_GATE_2F_HEIGHT, ROUTE_11_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route11GateUpstairsBlocks, Route11GateUpstairsTextPointers, Route11GateUpstairsScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route11GateUpstairsObject ; objects
 
 Route11GateUpstairsScript: ; 49454 (12:5454)
@@ -80508,7 +80322,6 @@
 	db ROUTE_12_GATE_HEIGHT, ROUTE_12_GATE_WIDTH ; dimensions (y, x)
 	dw Route12GateBlocks, Route12GateTextPointers, Route12GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route12GateObject ; objects
 
 Route12GateScript: ; 49504 (12:5504)
@@ -80551,7 +80364,6 @@
 	db ROUTE_12_GATE_2F_HEIGHT, ROUTE_12_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route12GateUpstairsBlocks, Route12GateUpstairsTextPointers, Route12GateUpstairsScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route12GateUpstairsObject ; objects
 
 Route12GateUpstairsScript: ; 49560 (12:5560)
@@ -80655,7 +80467,6 @@
 	db ROUTE_15_GATE_1F_HEIGHT, ROUTE_15_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route15GateBlocks, Route15GateTextPointers, Route15GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route15GateObject ; objects
 
 Route15GateScript: ; 49602 (12:5602)
@@ -80694,7 +80505,6 @@
 	db $0c ; tileset
 	db ROUTE_15_GATE_2F_HEIGHT, ROUTE_15_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route15GateUpstairsBlocks, Route15GateUpstairsTextPointers, Route15GateUpstairsScript ; blocks, texts, scripts
-	;dw 40db, 564d, 564a ; blocks, texts, scripts
 	db $00 ; connections
 	dw Route15GateUpstairsObject ; objects
 
@@ -80766,7 +80576,6 @@
 	db ROUTE_16_GATE_1F_HEIGHT, ROUTE_16_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route16GateMapBlocks, Route16GateMapTextPointers, Route16GateMapScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route16GateMapObject ; objects
 
 Route16GateMapScript: ; 496be (12:56be)
@@ -80930,7 +80739,6 @@
 	db ROUTE_16_GATE_2F_HEIGHT, ROUTE_16_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route16GateUpstairsBlocks, Route16GateUpstairsTextPointers, Route16GateUpstairsScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route16GateUpstairsObject ; objects
 
 Route16GateUpstairsScript: ; 4980b (12:580b)
@@ -81002,7 +80810,6 @@
 	db ROUTE_18_GATE_1F_HEIGHT, ROUTE_18_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route18GateBlocks, Route18GateTextPointers, Route18GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route18GateObject ; objects
 
 Route18GateScript: ; 49876 (12:5876)
@@ -81145,7 +80952,6 @@
 	db ROUTE_18_GATE_2F_HEIGHT, ROUTE_18_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route18GateUpstairsBlocks, Route18GateUpstairsTextPointers, Route18GateUpstairsScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route18GateUpstairsObject ; objects
 
 Route18GateUpstairsScript: ; 49975 (12:5975)
@@ -81203,7 +81009,6 @@
 	db MT_MOON_1_HEIGHT, MT_MOON_1_WIDTH ; dimensions (y, x)
 	dw MtMoon1Blocks, MtMoon1TextPointers, MtMoon1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw MtMoon1Object ; objects
 
 MtMoon1Script: ; 499c8 (12:59c8)
@@ -81475,7 +81280,6 @@
 	db MT_MOON_3_HEIGHT, MT_MOON_3_WIDTH ; dimensions (y, x)
 	dw MtMoon3Blocks, MtMoon3TextPointers, MtMoon3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw MtMoon3Object ; objects
 
 MtMoon3Script: ; 49d0b (12:5d0b)
@@ -81929,7 +81733,6 @@
 	db SAFARI_ZONE_WEST_HEIGHT, SAFARI_ZONE_WEST_WIDTH ; dimensions (y, x)
 	dw SafariZoneWestBlocks, SafariZoneWestTextPointers, SafariZoneWestScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneWestObject ; objects
 
 SafariZoneWestScript: ; 4a1b5 (12:61b5)
@@ -82004,7 +81807,6 @@
 	db SAFARI_ZONE_SECRET_HOUSE_HEIGHT, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; dimensions (y, x)
 	dw SafariZoneSecretHouseBlocks, SafariZoneSecretHouseTextPointers, SafariZoneSecretHouseScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneSecretHouseObject ; objects
 
 SafariZoneSecretHouseScript: ; 4a317 (12:6317)
@@ -82172,7 +81974,6 @@
 	db BATTLE_CENTER_HEIGHT, BATTLE_CENTER_WIDTH ; dimensions (y, x)
 	dw BattleCenterMBlocks, BattleCenterMTextPointers, BattleCenterMScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw BattleCenterMObject ; objects
 
 BattleCenterMScript: ; 4fd10 (13:7d10)
@@ -82232,7 +82033,6 @@
 	db TRADE_CENTER_HEIGHT, TRADE_CENTER_WIDTH ; dimensions (y, x)
 	dw TradeCenterMBlocks, TradeCenterMTextPointers, TradeCenterMScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw TradeCenterMObject ; objects
 
 TradeCenterMScript: ; 4fd7d (13:7d7d)
@@ -82529,25 +82329,8 @@
 	db ROUTE_22_HEIGHT, ROUTE_22_WIDTH ; dimensions (y, x)
 	dw Route22Blocks, Route22TextPointers, Route22Script ; blocks, texts, scripts
 	db NORTH | EAST ; connections
-
-	; connections data
-
-	db ROUTE_23
-	dw Route23Blocks + (ROUTE_23_HEIGHT - 3) * ROUTE_23_WIDTH ; connection strip location
-	dw $C6EB + 0 ; current map position
-	db ROUTE_23_WIDTH, ROUTE_23_WIDTH ; bigness, width
-	db (ROUTE_23_HEIGHT * 2) - 1, (0 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_23_HEIGHT * (ROUTE_23_WIDTH + 6) ; window
-
-	db VIRIDIAN_CITY
-	dw ViridianCityBlocks + (VIRIDIAN_CITY_WIDTH) ; connection strip location
-	dw $C6E5 + (ROUTE_22_WIDTH + 6) * (-3 + 4) ; current map position
-	db $f, VIRIDIAN_CITY_WIDTH ; bigness, width
-	db (-4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + VIRIDIAN_CITY_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_23, ROUTE_23_WIDTH, ROUTE_23_HEIGHT, 0, 0, ROUTE_23_WIDTH, Route23Blocks
+	EAST_MAP_CONNECTION VIRIDIAN_CITY, VIRIDIAN_CITY_WIDTH, -3, 1, VIRIDIAN_CITY_HEIGHT - 3, ViridianCityBlocks, ROUTE_22_WIDTH
 	dw Route22Object ; objects
 
 Route22Object: ; 0x50022 (size=27)
@@ -82574,25 +82357,8 @@
 	db ROUTE_20_HEIGHT, ROUTE_20_WIDTH ; dimensions (y, x)
 	dw Route20Blocks, Route20TextPointers, Route20Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
-
-	; connections data
-
-	db CINNABAR_ISLAND
-	dw CinnabarIslandBlocks - 3 + (CINNABAR_ISLAND_WIDTH) ; connection strip location
-	dw $C6E8 + (ROUTE_20_WIDTH + 6) * (0 + 3) ; current map position
-	db CINNABAR_ISLAND_HEIGHT, CINNABAR_ISLAND_WIDTH ; bigness, width
-	db (0 * -2), (CINNABAR_ISLAND_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * CINNABAR_ISLAND_WIDTH ; window
-
-	db ROUTE_19
-	dw Route19Blocks + (ROUTE_19_WIDTH * 15) ; connection strip location
-	dw $C6E5 + (ROUTE_20_WIDTH + 6) * (-3 + 4) ; current map position
-	db $c, ROUTE_19_WIDTH ; bigness, width
-	db (-18 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_19_WIDTH ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION CINNABAR_ISLAND, CINNABAR_ISLAND_WIDTH, 0, 0, CINNABAR_ISLAND_HEIGHT, CinnabarIslandBlocks, ROUTE_20_WIDTH
+	EAST_MAP_CONNECTION ROUTE_19, ROUTE_19_WIDTH, -3, 15, ROUTE_19_HEIGHT - 15, Route19Blocks, ROUTE_20_WIDTH
 	dw Route20Object ; objects
 
 Route20Object: ; 0x50113 (size=106)
@@ -82630,25 +82396,8 @@
 	db ROUTE_23_HEIGHT, ROUTE_23_WIDTH ; dimensions (y, x)
 	dw Route23Blocks, Route23TextPointers, Route23Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
-
-	; connections data
-
-	db INDIGO_PLATEAU
-	dw IndigoPlateauBlocks + (INDIGO_PLATEAU_HEIGHT - 3) * INDIGO_PLATEAU_WIDTH ; connection strip location
-	dw $C6EB + 0 ; current map position
-	db INDIGO_PLATEAU_WIDTH, INDIGO_PLATEAU_WIDTH ; bigness, width
-	db (INDIGO_PLATEAU_HEIGHT * 2) - 1, (0 * -2) ; alignments (y, x)
-	dw $C6E9 + INDIGO_PLATEAU_HEIGHT * (INDIGO_PLATEAU_WIDTH + 6) ; window
-
-	db ROUTE_22
-	dw Route22Blocks ; connection strip location
-	dw $C6EB + (ROUTE_23_HEIGHT + 3) * (ROUTE_23_WIDTH + 6) + 0 ; current map position
-	db $d, ROUTE_22_WIDTH ; bigness, width
-	db 0, (0 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_22_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION INDIGO_PLATEAU, INDIGO_PLATEAU_WIDTH, INDIGO_PLATEAU_HEIGHT, 0, 0, INDIGO_PLATEAU_WIDTH, IndigoPlateauBlocks
+	SOUTH_MAP_CONNECTION ROUTE_22, ROUTE_22_WIDTH, 0, 0, ROUTE_22_WIDTH - 7, Route22Blocks, ROUTE_23_WIDTH, ROUTE_23_HEIGHT
 	dw Route23Object ; objects
 
 Route23Object: ; 0x50361 (size=81)
@@ -82686,25 +82435,8 @@
 	db ROUTE_24_HEIGHT, ROUTE_24_WIDTH ; dimensions (y, x)
 	dw Route24Blocks, Route24TextPointers, Route24Script ; blocks, texts, scripts
 	db SOUTH | EAST ; connections
-
-	; connections data
-
-	db CERULEAN_CITY
-	dw CeruleanCityBlocks + 2 ; connection strip location
-	dw $C6EB + (ROUTE_24_HEIGHT + 3) * (ROUTE_24_WIDTH + 6) + -3 ; current map position
-	db $10, CERULEAN_CITY_WIDTH ; bigness, width
-	db 0, (-5 * -2) ; alignments (y, x)
-	dw $C6EF + CERULEAN_CITY_WIDTH ; window
-
-	db ROUTE_25
-	dw Route25Blocks + (ROUTE_25_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (ROUTE_24_WIDTH + 6) * (0 + 4) ; current map position
-	db ROUTE_25_HEIGHT, ROUTE_25_WIDTH ; bigness, width
-	db (0 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_25_WIDTH ; window
-
-	; end connections data
-
+	SOUTH_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, -3, 2, CERULEAN_CITY_WIDTH - 4, CeruleanCityBlocks, ROUTE_24_WIDTH, ROUTE_24_HEIGHT
+	EAST_MAP_CONNECTION ROUTE_25, ROUTE_25_WIDTH, 0, 0, ROUTE_25_HEIGHT, Route25Blocks, ROUTE_24_WIDTH
 	dw Route24Object ; objects
 
 Route24Object: ; 0x506a4 (size=67)
@@ -82732,18 +82464,7 @@
 	db ROUTE_25_HEIGHT, ROUTE_25_WIDTH ; dimensions (y, x)
 	dw Route25Blocks, Route25TextPointers, Route25Script ; blocks, texts, scripts
 	db WEST ; connections
-
-	; connections data
-
-	db ROUTE_24
-	dw Route24Blocks - 3 + (ROUTE_24_WIDTH) ; connection strip location
-	dw $C6E8 + (ROUTE_25_WIDTH + 6) * (0 + 3) ; current map position
-	db $c, ROUTE_24_WIDTH ; bigness, width
-	db (0 * -2), (ROUTE_24_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_24_WIDTH ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION ROUTE_24, ROUTE_24_WIDTH, 0, 0, ROUTE_24_HEIGHT - 6, Route24Blocks, ROUTE_25_WIDTH
 	dw Route25Object ; objects
 
 Route25Object: ; 0x507b2 (size=94)
@@ -82778,18 +82499,7 @@
 	db INDIGO_PLATEAU_HEIGHT, INDIGO_PLATEAU_WIDTH ; dimensions (y, x)
 	dw IndigoPlateauBlocks, IndigoPlateauTextPointers, IndigoPlateauScript ; blocks, texts, scripts
 	db SOUTH ; connections
-
-	; connections data
-
-	db ROUTE_23
-	dw Route23Blocks ; connection strip location
-	dw $C6EB + (INDIGO_PLATEAU_HEIGHT + 3) * (INDIGO_PLATEAU_WIDTH + 6) + 0 ; current map position
-	db ROUTE_23_WIDTH, ROUTE_23_WIDTH ; bigness, width
-	db 0, (0 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_23_WIDTH ; window
-
-	; end connections data
-
+	SOUTH_MAP_CONNECTION ROUTE_23, ROUTE_23_WIDTH, 0, 0, ROUTE_23_WIDTH, Route23Blocks, INDIGO_PLATEAU_WIDTH, INDIGO_PLATEAU_HEIGHT
 	dw IndigoPlateauObject ; objects
 
 IndigoPlateauScript: ; 50935 (14:4935)
@@ -82819,39 +82529,10 @@
 	db SAFFRON_CITY_HEIGHT, SAFFRON_CITY_WIDTH ; dimensions (y, x)
 	dw SaffronCityBlocks, SaffronCityTextPointers, SaffronCityScript ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST | EAST ; connections
-
-	; connections data
-
-	db ROUTE_5
-	dw Route5Blocks + (ROUTE_5_HEIGHT - 3) * ROUTE_5_WIDTH ; connection strip location
-	dw $C6EB + 5 ; current map position
-	db ROUTE_5_WIDTH, ROUTE_5_WIDTH ; bigness, width
-	db (ROUTE_5_HEIGHT * 2) - 1, (5 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_5_HEIGHT * (ROUTE_5_WIDTH + 6) ; window
-
-	db ROUTE_6
-	dw Route6Blocks ; connection strip location
-	dw $C6EB + (SAFFRON_CITY_HEIGHT + 3) * (SAFFRON_CITY_WIDTH + 6) + 5 ; current map position
-	db ROUTE_6_WIDTH, ROUTE_6_WIDTH ; bigness, width
-	db 0, (5 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_6_WIDTH ; window
-
-	db ROUTE_7
-	dw Route7Blocks - 3 + (ROUTE_7_WIDTH) ; connection strip location
-	dw $C6E8 + (SAFFRON_CITY_WIDTH + 6) * (4 + 3) ; current map position
-	db ROUTE_7_HEIGHT, ROUTE_7_WIDTH ; bigness, width
-	db (4 * -2), (ROUTE_7_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_7_WIDTH ; window
-
-	db ROUTE_8
-	dw Route8Blocks + (ROUTE_8_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (SAFFRON_CITY_WIDTH + 6) * (4 + 4) ; current map position
-	db ROUTE_8_HEIGHT, ROUTE_8_WIDTH ; bigness, width
-	db (4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_8_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_5, ROUTE_5_WIDTH, ROUTE_5_HEIGHT, 5, 0, ROUTE_5_WIDTH, Route5Blocks
+	SOUTH_MAP_CONNECTION ROUTE_6, ROUTE_6_WIDTH, 5, 0, ROUTE_6_WIDTH, Route6Blocks, SAFFRON_CITY_WIDTH, SAFFRON_CITY_HEIGHT
+	WEST_MAP_CONNECTION ROUTE_7, ROUTE_7_WIDTH, 4, 0, ROUTE_7_HEIGHT, Route7Blocks, SAFFRON_CITY_WIDTH
+	EAST_MAP_CONNECTION ROUTE_8, ROUTE_8_WIDTH, 4, 0, ROUTE_8_HEIGHT, Route8Blocks, SAFFRON_CITY_WIDTH
 	dw SaffronCityObject ; objects
 
 SaffronCityObject: ; 0x509dc (size=188)
@@ -84717,7 +84398,6 @@
 	db VICTORY_ROAD_2_HEIGHT, VICTORY_ROAD_2_WIDTH ; dimensions (y, x)
 	dw VictoryRoad2Blocks, VictoryRoad2TextPointers, VictoryRoad2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VictoryRoad2Object ; objects
 
 VictoryRoad2Script: ; 5179d (14:579d)
@@ -85015,7 +84695,6 @@
 	db MT_MOON_2_HEIGHT, MT_MOON_2_WIDTH ; dimensions (y, x)
 	dw MtMoon2Blocks, MtMoon2TextPointers, MtMoon2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw MtMoon2Object ; objects
 
 MtMoon2Script: ; 51a42 (14:5a42)
@@ -85064,7 +84743,6 @@
 	db SILPH_CO_7F_HEIGHT, SILPH_CO_7F_WIDTH ; dimensions (y, x)
 	dw SilphCo7Blocks, SilphCo7TextPointers, SilphCo7Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo7Object ; objects
 
 SilphCo7Script: ; 51b61 (14:5b61)
@@ -85634,7 +85312,6 @@
 	db MANSION_2_HEIGHT, MANSION_2_WIDTH ; dimensions (y, x)
 	dw Mansion2Blocks, Mansion2TextPointers, Mansion2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Mansion2Object ; objects
 
 Mansion2Script: ; 51fd8 (14:5fd8)
@@ -85814,7 +85491,6 @@
 	db MANSION_3_HEIGHT, MANSION_3_WIDTH ; dimensions (y, x)
 	dw Mansion3Blocks, Mansion3TextPointers, Mansion3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Mansion3Object ; objects
 
 Mansion3Script: ; 521ee (14:61ee)
@@ -85999,7 +85675,6 @@
 	db MANSION_4_HEIGHT, MANSION_4_WIDTH ; dimensions (y, x)
 	dw Mansion4Blocks, Mansion4TextPointers, Mansion4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Mansion4Object ; objects
 
 Mansion4Script: ; 523b9 (14:63b9)
@@ -86333,16 +86008,14 @@
 	db SILPH_CO_11F
 	db $FF
 
-UnnamedText_526ee: ; 526ee (14:66ee)
-	TX_FAR _UnnamedText_526ee
+CardKeySuccessText: ; 526ee (14:66ee)
+	TX_FAR _CardKeySuccessText1
 	db $0b
-
-UnnamedText_526f3: ; 526f3 (14:66f3)
-	TX_FAR _UnnamedText_526f3
+	TX_FAR _CardKeySuccessText2
 	db "@"
 
-UnnamedText_526f8: ; 526f8 (14:66f8)
-	TX_FAR _UnnamedText_526f8
+CardKeyFailText: ; 526f8 (14:66f8)
+	TX_FAR _CardKeyFailText
 	db "@"
 
 Func_526fd: ; 526fd (14:66fd)
@@ -86779,34 +86452,34 @@
 	ld a, [wTrainerSpriteOffset]
 	jp Func_3ef5
 
-UnnamedText_529a4: ; 529a4 (14:69a4)
-	TX_FAR UnnamedText_88bfd
+TMNotebook: ; 529a4 (14:69a4)
+	TX_FAR TMNotebookText
 	db $0d
 	db "@"
 
-UnnamedText_529aa: ; 529aa (14:69aa)
+ViridianSchoolNotebook: ; 529aa (14:69aa)
 	db $08 ; asm
-	ld hl, UnnamedText_529f4
+	ld hl, ViridianSchoolNotebookText1
 	call PrintText
-	call Func_529db
-	jr nz, .asm_529d8
-	ld hl, UnnamedText_529f9
+	call TurnPageSchoolNotebook
+	jr nz, .doneReading
+	ld hl, ViridianSchoolNotebookText2
 	call PrintText
-	call Func_529db
-	jr nz, .asm_529d8
-	ld hl, UnnamedText_529fe
+	call TurnPageSchoolNotebook
+	jr nz, .doneReading
+	ld hl, ViridianSchoolNotebookText3
 	call PrintText
-	call Func_529db
-	jr nz, .asm_529d8
-	ld hl, UnnamedText_52a03
+	call TurnPageSchoolNotebook
+	jr nz, .doneReading
+	ld hl, ViridianSchoolNotebookText4
 	call PrintText
-	ld hl, UnnamedText_529ee
+	ld hl, ViridianSchoolNotebookText5
 	call PrintText
-.asm_529d8
+.doneReading
 	jp TextScriptEnd
 
-Func_529db: ; 529db (14:69db)
-	ld hl, UnnamedText_529e9
+TurnPageSchoolNotebook: ; 529db (14:69db)
+	ld hl, TurnPageText
 	call PrintText
 	call YesNoChoice
 	ld a, [wCurrentMenuItem]
@@ -86813,29 +86486,29 @@
 	and a
 	ret
 
-UnnamedText_529e9: ; 529e9 (14:69e9)
-	TX_FAR _UnnamedText_529e9
+TurnPageText: ; 529e9 (14:69e9)
+	TX_FAR _TurnPageText
 	db "@"
 
-UnnamedText_529ee: ; 529ee (14:69ee)
-	TX_FAR _UnnamedText_529ee
+ViridianSchoolNotebookText5: ; 529ee (14:69ee)
+	TX_FAR _ViridianSchoolNotebookText5
 	db $0d
 	db "@"
 
-UnnamedText_529f4: ; 529f4 (14:69f4)
-	TX_FAR _UnnamedText_529f4
+ViridianSchoolNotebookText1: ; 529f4 (14:69f4)
+	TX_FAR _ViridianSchoolNotebookText1
 	db "@"
 
-UnnamedText_529f9: ; 529f9 (14:69f9)
-	TX_FAR _UnnamedText_529f9
+ViridianSchoolNotebookText2: ; 529f9 (14:69f9)
+	TX_FAR _ViridianSchoolNotebookText2
 	db "@"
 
-UnnamedText_529fe: ; 529fe (14:69fe)
-	TX_FAR _UnnamedText_529fe
+ViridianSchoolNotebookText3: ; 529fe (14:69fe)
+	TX_FAR _ViridianSchoolNotebookText3
 	db "@"
 
-UnnamedText_52a03: ; 52a03 (14:6a03)
-	TX_FAR _UnnamedText_52a03
+ViridianSchoolNotebookText4: ; 52a03 (14:6a03)
+	TX_FAR _ViridianSchoolNotebookText4
 	db "@"
 
 Func_52a08: ; 52a08 (14:6a08)
@@ -86861,8 +86534,8 @@
 	ld a, $36
 	jp Func_3ef5
 
-UnnamedText_52a2a: ; 52a2a (14:6a2a)
-	TX_FAR _UnnamedText_52a2a
+FightingDojoText: ; 52a2a (14:6a2a)
+	TX_FAR _FightingDojoText
 	db "@"
 
 Func_52a2f: ; 52a2f (14:6a2f)
@@ -86873,8 +86546,8 @@
 	ld a, $27
 	jp Func_3ef5
 
-UnnamedText_52a3d: ; 52a3d (14:6a3d)
-	TX_FAR _UnnamedText_52a3d
+IndigoPlateauHQText: ; 52a3d (14:6a3d)
+	TX_FAR _IndigoPlateauHQText
 	db "@"
 
 SECTION "bank15",ROMX,BANK[$15]
@@ -86882,30 +86555,10 @@
 Route2_h: ; 54000 (15:4000)
 	db 00 ; Tileset
 	db ROUTE_2_HEIGHT,ROUTE_2_WIDTH ;Height,Width blocks (1 block = 4x4 tiles)
-	dw Route2Blocks ;Map-Pointer
-	dw Route2TextPointers ;Maps text pointer
-	dw Route2Script ;Maps script pointer
+	dw Route2Blocks, Route2TextPointers, Route2Script
 	db NORTH | SOUTH ;Connection Byte
-
-	;Connection data
-	db PEWTER_CITY ;Map
-	dw $4714 ;y, x Strip Starting Point
-	dw $C6E8 ;Strip X-Offset to current map
-	db 16 ;"Bigness" (Unsure) ;Something to do with MapData
-	db 20 ;"Map Width" (Unsure) ;Something to do with TileSet
-	db 35 ;Player's new Y-Coordinates
-	db 10 ;Player's new X-Coordinates
-	dw $C8BD ;New UL Block Pos (Window)
-
-	db VIRIDIAN_CITY ;Map
-	dw $43EE ;y, x Strip Starting Point
-	dw $C958 ;Strip X-Offset to current map
-	db 16 ;"Bigness" (Unsure) ;Something to do with MapData
-	db 20 ;"Map Width" (Unsure) ;Something to do with TileSet
-	db 0 ;Player's new Y-Coordinates
-	db 10 ;Player's new X-Coordinates
-	dw $C703 ;New UL Block Pos (Window)
-
+	NORTH_MAP_CONNECTION PEWTER_CITY, PEWTER_CITY_WIDTH, PEWTER_CITY_HEIGHT, -3, 2, PEWTER_CITY_WIDTH - 4, PewterCityBlocks
+	SOUTH_MAP_CONNECTION VIRIDIAN_CITY, VIRIDIAN_CITY_WIDTH, -3, 2, VIRIDIAN_CITY_WIDTH - 4, ViridianCityBlocks, ROUTE_2_WIDTH, ROUTE_2_HEIGHT
 	dw Route2Object ;Object Data Pointer
 
 Route2Object: ; 0x54022 (size=72)
@@ -86950,25 +86603,8 @@
 	db ROUTE_3_HEIGHT, ROUTE_3_WIDTH ; dimensions (y, x)
 	dw Route3Blocks, Route3TextPointers, Route3Script ; blocks, texts, scripts
 	db NORTH | WEST ; connections
-
-	; connections data
-
-	db ROUTE_4
-	dw Route4Blocks + (ROUTE_4_HEIGHT - 3) * ROUTE_4_WIDTH ; connection strip location
-	dw $C6EB + 25 ; current map position
-	db $d, ROUTE_4_WIDTH ; bigness, width
-	db (ROUTE_4_HEIGHT * 2) - 1, (25 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_4_HEIGHT * (ROUTE_4_WIDTH + 6) ; window
-
-	db PEWTER_CITY
-	dw PewterCityBlocks - 3 + (PEWTER_CITY_WIDTH * 2) ; connection strip location
-	dw $C6E8 + (ROUTE_3_WIDTH + 6) * (-3 + 3) ; current map position
-	db $f, PEWTER_CITY_WIDTH ; bigness, width
-	db (-4 * -2), (PEWTER_CITY_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * PEWTER_CITY_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_4, ROUTE_4_WIDTH, ROUTE_4_HEIGHT, 25, 0, ROUTE_4_WIDTH - 32, Route4Blocks
+	WEST_MAP_CONNECTION PEWTER_CITY, PEWTER_CITY_WIDTH, -3, 1, PEWTER_CITY_HEIGHT - 3, PewterCityBlocks, ROUTE_3_WIDTH
 	dw Route3Object ; objects
 
 Route3Object: ; 0x54208 (size=77)
@@ -86998,25 +86634,8 @@
 	db ROUTE_4_HEIGHT, ROUTE_4_WIDTH ; dimensions (y, x)
 	dw Route4Blocks, Route4TextPointers, Route4Script; blocks, texts, scripts
 	db SOUTH | EAST ; connections
-
-	; connections data
-
-	db ROUTE_3
-	dw Route3Blocks + 22 ; connection strip location
-	dw $C6EB + (ROUTE_4_HEIGHT + 3) * (ROUTE_4_WIDTH + 6) + -3 ; current map position
-	db $d, ROUTE_3_WIDTH ; bigness, width
-	db 0, (-25 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_3_WIDTH ; window
-
-	db CERULEAN_CITY
-	dw CeruleanCityBlocks + (CERULEAN_CITY_WIDTH) ; connection strip location
-	dw $C6E5 + (ROUTE_4_WIDTH + 6) * (-3 + 4) ; current map position
-	db $f, CERULEAN_CITY_WIDTH ; bigness, width
-	db (-4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + CERULEAN_CITY_WIDTH ; window
-
-	; end connections data
-
+	SOUTH_MAP_CONNECTION ROUTE_3, ROUTE_3_WIDTH, -3, 22, ROUTE_3_WIDTH - 22, Route3Blocks, ROUTE_4_WIDTH, ROUTE_4_HEIGHT
+	EAST_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, -3, 1, CERULEAN_CITY_HEIGHT - 3, CeruleanCityBlocks, ROUTE_4_WIDTH
 	dw Route4Object ; objects
 
 Route4Object: ; 0x543b2 (size=58)
@@ -87050,25 +86669,8 @@
 	db ROUTE_5_HEIGHT, ROUTE_5_WIDTH ; dimensions (y, x)
 	dw Route5Blocks, Route5TextPointers, Route5Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
-
-	; connections data
-
-	db CERULEAN_CITY
-	dw CeruleanCityBlocks + (CERULEAN_CITY_HEIGHT - 3) * CERULEAN_CITY_WIDTH + 2 ; connection strip location
-	dw $C6EB + -3 ; current map position
-	db $10, CERULEAN_CITY_WIDTH ; bigness, width
-	db (CERULEAN_CITY_HEIGHT * 2) - 1, (-5 * -2) ; alignments (y, x)
-	dw $C6E9 + CERULEAN_CITY_HEIGHT * (CERULEAN_CITY_WIDTH + 6) ; window
-
-	db SAFFRON_CITY
-	dw SaffronCityBlocks + 2 ; connection strip location
-	dw $C6EB + (ROUTE_5_HEIGHT + 3) * (ROUTE_5_WIDTH + 6) + -3 ; current map position
-	db $10, SAFFRON_CITY_WIDTH ; bigness, width
-	db 0, (-5 * -2) ; alignments (y, x)
-	dw $C6EF + SAFFRON_CITY_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, CERULEAN_CITY_HEIGHT, -3, 2, CERULEAN_CITY_WIDTH - 4, CeruleanCityBlocks
+	SOUTH_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, -3, 2, SAFFRON_CITY_WIDTH - 4, SaffronCityBlocks, ROUTE_5_WIDTH, ROUTE_5_HEIGHT
 	dw Route5Object ; objects
 
 Route5Object: ; 0x545a3 (size=47)
@@ -87101,25 +86703,8 @@
 	db ROUTE_9_HEIGHT, ROUTE_9_WIDTH ; dimensions (y, x)
 	dw Route9Blocks, Route9TextPointers, Route9Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
-
-	; connections data
-
-	db CERULEAN_CITY
-	dw CeruleanCityBlocks - 3 + (CERULEAN_CITY_WIDTH * 2) ; connection strip location
-	dw $C6E8 + (ROUTE_9_WIDTH + 6) * (-3 + 3) ; current map position
-	db $f, CERULEAN_CITY_WIDTH ; bigness, width
-	db (-4 * -2), (CERULEAN_CITY_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * CERULEAN_CITY_WIDTH ; window
-
-	db ROUTE_10
-	dw Route10Blocks + (ROUTE_10_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (ROUTE_9_WIDTH + 6) * (0 + 4) ; current map position
-	db $c, ROUTE_10_WIDTH ; bigness, width
-	db (0 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_10_WIDTH ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, -3, 1, CERULEAN_CITY_HEIGHT - 3, CeruleanCityBlocks, ROUTE_9_WIDTH
+	EAST_MAP_CONNECTION ROUTE_10, ROUTE_10_WIDTH, 0, 0, ROUTE_10_HEIGHT - 24, Route10Blocks, ROUTE_9_WIDTH
 	dw Route9Object ; objects
 
 Route9Object: ; 0x546a8 (size=86)
@@ -87150,25 +86735,8 @@
 	db ROUTE_13_HEIGHT, ROUTE_13_WIDTH ; dimensions (y, x)
 	dw Route13Blocks, Route13TextPointers, Route13Script ; blocks, texts, scripts
 	db NORTH | WEST ; connections
-
-	; connections data
-
-	db ROUTE_12
-	dw Route12Blocks + (ROUTE_12_HEIGHT - 3) * ROUTE_12_WIDTH ; connection strip location
-	dw $C6EB + 20 ; current map position
-	db ROUTE_12_WIDTH, ROUTE_12_WIDTH ; bigness, width
-	db (ROUTE_12_HEIGHT * 2) - 1, (20 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_12_HEIGHT * (ROUTE_12_WIDTH + 6) ; window
-
-	db ROUTE_14
-	dw Route14Blocks - 3 + (ROUTE_14_WIDTH) ; connection strip location
-	dw $C6E8 + (ROUTE_13_WIDTH + 6) * (0 + 3) ; current map position
-	db $c, ROUTE_14_WIDTH ; bigness, width
-	db (0 * -2), (ROUTE_14_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_14_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_12, ROUTE_12_WIDTH, ROUTE_12_HEIGHT, 20, 0, ROUTE_12_WIDTH, Route12Blocks
+	WEST_MAP_CONNECTION ROUTE_14, ROUTE_14_WIDTH, 0, 0, ROUTE_14_HEIGHT - 15, Route14Blocks, ROUTE_13_WIDTH
 	dw Route13Object ; objects
 
 Route13Object: ; 0x5482e (size=93)
@@ -87201,25 +86769,8 @@
 	db ROUTE_14_HEIGHT, ROUTE_14_WIDTH ; dimensions (y, x)
 	dw Route14Blocks, Route14TextPointers, Route14Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
-
-	; connections data
-
-	db ROUTE_15
-	dw Route15Blocks - 3 + (ROUTE_15_WIDTH) ; connection strip location
-	dw $C6E8 + (ROUTE_14_WIDTH + 6) * (18 + 3) ; current map position
-	db ROUTE_15_HEIGHT, ROUTE_15_WIDTH ; bigness, width
-	db (18 * -2), (ROUTE_15_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_15_WIDTH ; window
-
-	db ROUTE_13
-	dw Route13Blocks + (ROUTE_13_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (ROUTE_14_WIDTH + 6) * (0 + 4) ; current map position
-	db ROUTE_13_HEIGHT, ROUTE_13_WIDTH ; bigness, width
-	db (0 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_13_WIDTH ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION ROUTE_15, ROUTE_15_WIDTH, 18, 0, ROUTE_15_HEIGHT, Route15Blocks, ROUTE_14_WIDTH
+	EAST_MAP_CONNECTION ROUTE_13, ROUTE_13_WIDTH, 0, 0, ROUTE_13_HEIGHT, Route13Blocks, ROUTE_14_WIDTH
 	dw Route14Object ; objects
 
 Route14Object: ; 0x549bb (size=87)
@@ -87250,25 +86801,8 @@
 	db ROUTE_17_HEIGHT, ROUTE_17_WIDTH ; dimensions (y, x)
 	dw Route17Blocks, Route17TextPointers, Route17Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
-
-	; connections data
-
-	db ROUTE_16
-	dw Route16Blocks + (ROUTE_16_HEIGHT - 3) * ROUTE_16_WIDTH ; connection strip location
-	dw $C6EB + 0 ; current map position
-	db $d, ROUTE_16_WIDTH ; bigness, width
-	db (ROUTE_16_HEIGHT * 2) - 1, (0 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_16_HEIGHT * (ROUTE_16_WIDTH + 6) ; window
-
-	db ROUTE_18
-	dw Route18Blocks ; connection strip location
-	dw $C6EB + (ROUTE_17_HEIGHT + 3) * (ROUTE_17_WIDTH + 6) + 0 ; current map position
-	db $d, ROUTE_18_WIDTH ; bigness, width
-	db 0, (0 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_18_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_16, ROUTE_16_WIDTH, ROUTE_16_HEIGHT, 0, 0, ROUTE_16_WIDTH - 7, Route16Blocks
+	SOUTH_MAP_CONNECTION ROUTE_18, ROUTE_18_WIDTH, 0, 0, ROUTE_18_WIDTH - 12, Route18Blocks, ROUTE_17_WIDTH, ROUTE_17_HEIGHT
 	dw Route17Object ; objects
 
 Route17Object: ; 0x54b42 (size=102)
@@ -87304,25 +86838,8 @@
 	db ROUTE_19_HEIGHT, ROUTE_19_WIDTH ; dimensions (y, x)
 	dw Route19Blocks, Route19TextPointers, Route19Script ; blocks, texts, scripts
 	db NORTH | WEST ; connections
-
-	; connections data
-
-	db FUCHSIA_CITY
-	dw FuchsiaCityBlocks + (FUCHSIA_CITY_HEIGHT - 3) * FUCHSIA_CITY_WIDTH + 2 ; connection strip location
-	dw $C6EB + -3 ; current map position
-	db $10, FUCHSIA_CITY_WIDTH ; bigness, width
-	db (FUCHSIA_CITY_HEIGHT * 2) - 1, (-5 * -2) ; alignments (y, x)
-	dw $C6E9 + FUCHSIA_CITY_HEIGHT * (FUCHSIA_CITY_WIDTH + 6) ; window
-
-	db ROUTE_20
-	dw Route20Blocks - 3 + (ROUTE_20_WIDTH) ; connection strip location
-	dw $C6E8 + (ROUTE_19_WIDTH + 6) * (18 + 3) ; current map position
-	db ROUTE_20_HEIGHT, ROUTE_20_WIDTH ; bigness, width
-	db (18 * -2), (ROUTE_20_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_20_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION FUCHSIA_CITY, FUCHSIA_CITY_WIDTH, FUCHSIA_CITY_HEIGHT, -3, 2, FUCHSIA_CITY_WIDTH - 4, FuchsiaCityBlocks
+	WEST_MAP_CONNECTION ROUTE_20, ROUTE_20_WIDTH, 18, 0, ROUTE_20_HEIGHT, Route20Blocks, ROUTE_19_WIDTH
 	dw Route19Object ; objects
 
 Route19Object: ; 0x54e9a (size=87)
@@ -87353,25 +86870,8 @@
 	db ROUTE_21_HEIGHT, ROUTE_21_WIDTH ; dimensions (y, x)
 	dw Route21Blocks, Route21TextPointers, Route21Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
-
-	; connections data
-
-	db PALLET_TOWN
-	dw PalletTownBlocks + (PALLET_TOWN_HEIGHT - 3) * PALLET_TOWN_WIDTH ; connection strip location
-	dw $C6EB + 0 ; current map position
-	db PALLET_TOWN_WIDTH, PALLET_TOWN_WIDTH ; bigness, width
-	db (PALLET_TOWN_HEIGHT * 2) - 1, (0 * -2) ; alignments (y, x)
-	dw $C6E9 + PALLET_TOWN_HEIGHT * (PALLET_TOWN_WIDTH + 6) ; window
-
-	db CINNABAR_ISLAND
-	dw CinnabarIslandBlocks ; connection strip location
-	dw $C6EB + (ROUTE_21_HEIGHT + 3) * (ROUTE_21_WIDTH + 6) + 0 ; current map position
-	db CINNABAR_ISLAND_WIDTH, CINNABAR_ISLAND_WIDTH ; bigness, width
-	db 0, (0 * -2) ; alignments (y, x)
-	dw $C6EF + CINNABAR_ISLAND_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION PALLET_TOWN, PALLET_TOWN_WIDTH, PALLET_TOWN_HEIGHT, 0, 0, PALLET_TOWN_WIDTH, PalletTownBlocks
+	SOUTH_MAP_CONNECTION CINNABAR_ISLAND, CINNABAR_ISLAND_WIDTH, 0, 0, CINNABAR_ISLAND_WIDTH, CinnabarIslandBlocks, ROUTE_21_WIDTH, ROUTE_21_HEIGHT
 	dw Route21Object ; objects
 
 Route21Object: ; 0x55021 (size=76)
@@ -89927,7 +89427,6 @@
 	db VERMILION_HOUSE_2_HEIGHT, VERMILION_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw VermilionHouse2Blocks, VermilionHouse2TextPointers, VermilionHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VermilionHouse2Object ; objects
 
 VermilionHouse2Script: ; 56070 (15:6070)
@@ -90009,7 +89508,6 @@
 	db CELADON_MART_2_HEIGHT, CELADON_MART_2_WIDTH ; dimensions (y, x)
 	dw CeladonMart2Blocks, CeladonMart2TextPointers, CeladonMart2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMart2Object ; objects
 
 CeladonMart2Script: ; 560f5 (15:60f5)
@@ -90064,7 +89562,6 @@
 	db FUCHSIA_HOUSE_3_HEIGHT, FUCHSIA_HOUSE_3_WIDTH ; dimensions (y, x)
 	dw FuchsiaHouse3Blocks, FuchsiaHouse3TextPointers, FuchsiaHouse3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FuchsiaHouse3Object ; objects
 
 FuchsiaHouse3Script: ; 5617c (15:617c)
@@ -90148,7 +89645,6 @@
 	db DAYCAREM_HEIGHT, DAYCAREM_WIDTH ; dimensions (y, x)
 	dw DayCareMBlocks, DayCareMTextPointers, DayCareMScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw DayCareMObject ; objects
 
 DayCareMScript: ; 5624f (15:624f)
@@ -90447,7 +89943,6 @@
 	db ROUTE_12_HOUSE_HEIGHT, ROUTE_12_HOUSE_WIDTH ; dimensions (y, x)
 	dw Route12HouseBlocks, Route12HouseTextPointers, Route12HouseScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route12HouseObject ; objects
 
 Route12HouseScript: ; 5647f (15:647f)
@@ -90529,7 +90024,6 @@
 	db SILPH_CO_8F_HEIGHT, SILPH_CO_8F_WIDTH ; dimensions (y, x)
 	dw SilphCo8Blocks, SilphCo8TextPointers, SilphCo8Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo8Object ; objects
 
 SilphCo8Script: ; 56504 (15:6504)
@@ -91217,25 +90711,8 @@
 	db ROUTE_6_HEIGHT, ROUTE_6_WIDTH ; dimensions (y, x)
 	dw Route6Blocks, Route6TextPointers, Route6Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
-
-	; connections data
-
-	db SAFFRON_CITY
-	dw SaffronCityBlocks + (SAFFRON_CITY_HEIGHT - 3) * SAFFRON_CITY_WIDTH + 2 ; connection strip location
-	dw $C6EB + -3 ; current map position
-	db $10, SAFFRON_CITY_WIDTH ; bigness, width
-	db (SAFFRON_CITY_HEIGHT * 2) - 1, (-5 * -2) ; alignments (y, x)
-	dw $C6E9 + SAFFRON_CITY_HEIGHT * (SAFFRON_CITY_WIDTH + 6) ; window
-
-	db VERMILION_CITY
-	dw VermilionCityBlocks + 2 ; connection strip location
-	dw $C6EB + (ROUTE_6_HEIGHT + 3) * (ROUTE_6_WIDTH + 6) + -3 ; current map position
-	db $10, VERMILION_CITY_WIDTH ; bigness, width
-	db 0, (-5 * -2) ; alignments (y, x)
-	dw $C6EF + VERMILION_CITY_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, SAFFRON_CITY_HEIGHT, -3, 2, SAFFRON_CITY_WIDTH - 4, SaffronCityBlocks
+	SOUTH_MAP_CONNECTION VERMILION_CITY, VERMILION_CITY_WIDTH, -3, 2, VERMILION_CITY_WIDTH - 4, VermilionCityBlocks, ROUTE_6_WIDTH, ROUTE_6_HEIGHT
 	dw Route6Object ; objects
 
 Route6Object: ; 0x58022 (size=87)
@@ -91272,25 +90749,8 @@
 	db ROUTE_8_HEIGHT, ROUTE_8_WIDTH ; dimensions (y, x)
 	dw Route8Blocks, Route8TextPointers, Route8Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
-
-	; connections data
-
-	db SAFFRON_CITY
-	dw SaffronCityBlocks - 3 + (SAFFRON_CITY_WIDTH * 2) ; connection strip location
-	dw $C6E8 + (ROUTE_8_WIDTH + 6) * (-3 + 3) ; current map position
-	db $f, SAFFRON_CITY_WIDTH ; bigness, width
-	db (-4 * -2), (SAFFRON_CITY_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * SAFFRON_CITY_WIDTH ; window
-
-	db LAVENDER_TOWN
-	dw LavenderTownBlocks + (LAVENDER_TOWN_WIDTH * 0) ; connection strip location
-	dw $C6E5 + (ROUTE_8_WIDTH + 6) * (0 + 4) ; current map position
-	db LAVENDER_TOWN_HEIGHT, LAVENDER_TOWN_WIDTH ; bigness, width
-	db (0 * -2), 0 ; alignments (y, x)
-	dw $C6EF + LAVENDER_TOWN_WIDTH ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, -3, 1, SAFFRON_CITY_HEIGHT - 3, SaffronCityBlocks, ROUTE_8_WIDTH
+	EAST_MAP_CONNECTION LAVENDER_TOWN, LAVENDER_TOWN_WIDTH, 0, 0, LAVENDER_TOWN_HEIGHT, LavenderTownBlocks, ROUTE_8_WIDTH
 	dw Route8Object ; objects
 
 Route8Object: ; 0x5814f (size=119)
@@ -91332,25 +90792,8 @@
 	db ROUTE_10_HEIGHT, ROUTE_10_WIDTH ; dimensions (y, x)
 	dw Route10Blocks, Route10TextPointers, Route10Script ; blocks, texts, scripts
 	db SOUTH | WEST ; connections
-
-	; connections data
-
-	db LAVENDER_TOWN
-	dw LavenderTownBlocks ; connection strip location
-	dw $C6EB + (ROUTE_10_HEIGHT + 3) * (ROUTE_10_WIDTH + 6) + 0 ; current map position
-	db LAVENDER_TOWN_WIDTH, LAVENDER_TOWN_WIDTH ; bigness, width
-	db 0, (0 * -2) ; alignments (y, x)
-	dw $C6EF + LAVENDER_TOWN_WIDTH ; window
-
-	db ROUTE_9
-	dw Route9Blocks - 3 + (ROUTE_9_WIDTH) ; connection strip location
-	dw $C6E8 + (ROUTE_10_WIDTH + 6) * (0 + 3) ; current map position
-	db ROUTE_9_HEIGHT, ROUTE_9_WIDTH ; bigness, width
-	db (0 * -2), (ROUTE_9_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_9_WIDTH ; window
-
-	; end connections data
-
+	SOUTH_MAP_CONNECTION LAVENDER_TOWN, LAVENDER_TOWN_WIDTH, 0, 0, LAVENDER_TOWN_WIDTH, LavenderTownBlocks, ROUTE_10_WIDTH, ROUTE_10_HEIGHT
+	WEST_MAP_CONNECTION ROUTE_9, ROUTE_9_WIDTH, 0, 0, ROUTE_9_HEIGHT, Route9Blocks, ROUTE_10_WIDTH
 	dw Route10Object ; objects
 
 Route10Object: ; 0x582f6 (size=96)
@@ -91390,25 +90833,8 @@
 	db ROUTE_11_HEIGHT, ROUTE_11_WIDTH ; dimensions (y, x)
 	dw Route11Blocks, Route11TextPointers, Route11Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
-
-	; connections data
-
-	db VERMILION_CITY
-	dw VermilionCityBlocks - 3 + (VERMILION_CITY_WIDTH * 2) ; connection strip location
-	dw $C6E8 + (ROUTE_11_WIDTH + 6) * (-3 + 3) ; current map position
-	db $f, VERMILION_CITY_WIDTH ; bigness, width
-	db (-4 * -2), (VERMILION_CITY_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * VERMILION_CITY_WIDTH ; window
-
-	db ROUTE_12
-	dw Route12Blocks + (ROUTE_12_WIDTH * 24) ; connection strip location
-	dw $C6E5 + (ROUTE_11_WIDTH + 6) * (-3 + 4) ; current map position
-	db $f, ROUTE_12_WIDTH ; bigness, width
-	db (-27 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_12_WIDTH ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION VERMILION_CITY, VERMILION_CITY_WIDTH, -3, 1, VERMILION_CITY_HEIGHT - 3, VermilionCityBlocks, ROUTE_11_WIDTH
+	EAST_MAP_CONNECTION ROUTE_12, ROUTE_12_WIDTH, -3, 24, ROUTE_12_HEIGHT - 39, Route12Blocks, ROUTE_11_WIDTH
 	dw Route11Object ; objects
 
 Route11Object: ; 0x584e0 (size=127)
@@ -91451,32 +90877,9 @@
 	db ROUTE_12_HEIGHT, ROUTE_12_WIDTH ; dimensions (y, x)
 	dw Route12Blocks, Route12TextPointers, Route12Script ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST ; connections
-
-	; connections data
-
-	db LAVENDER_TOWN
-	dw LavenderTownBlocks + (LAVENDER_TOWN_HEIGHT - 3) * LAVENDER_TOWN_WIDTH ; connection strip location
-	dw $C6EB + 0 ; current map position
-	db LAVENDER_TOWN_WIDTH, LAVENDER_TOWN_WIDTH ; bigness, width
-	db (LAVENDER_TOWN_HEIGHT * 2) - 1, (0 * -2) ; alignments (y, x)
-	dw $C6E9 + LAVENDER_TOWN_HEIGHT * (LAVENDER_TOWN_WIDTH + 6) ; window
-
-	db ROUTE_13
-	dw Route13Blocks + 17 ; connection strip location
-	dw $C6EB + (ROUTE_12_HEIGHT + 3) * (ROUTE_12_WIDTH + 6) + -3 ; current map position
-	db $d, ROUTE_13_WIDTH ; bigness, width
-	db 0, (-20 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_13_WIDTH ; window
-
-	db ROUTE_11
-	dw Route11Blocks - 3 + (ROUTE_11_WIDTH) ; connection strip location
-	dw $C6E8 + (ROUTE_12_WIDTH + 6) * (27 + 3) ; current map position
-	db ROUTE_11_HEIGHT, ROUTE_11_WIDTH ; bigness, width
-	db (27 * -2), (ROUTE_11_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * ROUTE_11_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION LAVENDER_TOWN, LAVENDER_TOWN_WIDTH, LAVENDER_TOWN_HEIGHT, 0, 0, LAVENDER_TOWN_WIDTH, LavenderTownBlocks
+	SOUTH_MAP_CONNECTION ROUTE_13, ROUTE_13_WIDTH, -3, 17, ROUTE_13_WIDTH - 17, Route13Blocks, ROUTE_12_WIDTH, ROUTE_12_HEIGHT
+	WEST_MAP_CONNECTION ROUTE_11, ROUTE_11_WIDTH, 27, 0, ROUTE_11_HEIGHT, Route11Blocks, ROUTE_12_WIDTH
 	dw Route12Object ; objects
 
 Route12Object: ; 0x5869a (size=118)
@@ -91518,25 +90921,8 @@
 	db ROUTE_15_HEIGHT, ROUTE_15_WIDTH ; dimensions (y, x)
 	dw Route15Blocks, Route15TextPointers, Route15Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
-
-	; connections data
-
-	db FUCHSIA_CITY
-	dw FuchsiaCityBlocks - 3 + (FUCHSIA_CITY_WIDTH * 2) ; connection strip location
-	dw $C6E8 + (ROUTE_15_WIDTH + 6) * (-3 + 3) ; current map position
-	db $f, FUCHSIA_CITY_WIDTH ; bigness, width
-	db (-4 * -2), (FUCHSIA_CITY_WIDTH * 2) - 1 ; alignments (y, x)
-	dw $C6EE + 2 * FUCHSIA_CITY_WIDTH ; window
-
-	db ROUTE_14
-	dw Route14Blocks + (ROUTE_14_WIDTH * 15) ; connection strip location
-	dw $C6E5 + (ROUTE_15_WIDTH + 6) * (-3 + 4) ; current map position
-	db $c, ROUTE_14_WIDTH ; bigness, width
-	db (-18 * -2), 0 ; alignments (y, x)
-	dw $C6EF + ROUTE_14_WIDTH ; window
-
-	; end connections data
-
+	WEST_MAP_CONNECTION FUCHSIA_CITY, FUCHSIA_CITY_WIDTH, -3, 1, FUCHSIA_CITY_HEIGHT - 3, FuchsiaCityBlocks, ROUTE_15_WIDTH
+	EAST_MAP_CONNECTION ROUTE_14, ROUTE_14_WIDTH, -3, 15, ROUTE_14_HEIGHT - 15, Route14Blocks, ROUTE_15_WIDTH
 	dw Route15Object ; objects
 
 Route15Object: ; 0x5894e (size=126)
@@ -91578,25 +90964,8 @@
 	db ROUTE_16_HEIGHT, ROUTE_16_WIDTH ; dimensions (y, x)
 	dw Route16Blocks, Route16TextPointers, Route16Script ; blocks, texts, scripts
 	db SOUTH | EAST ; connections
-
-	; connections data
-
-	db ROUTE_17
-	dw Route17Blocks ; connection strip location
-	dw $C6EB + (ROUTE_16_HEIGHT + 3) * (ROUTE_16_WIDTH + 6) + 0 ; current map position
-	db ROUTE_17_WIDTH, ROUTE_17_WIDTH ; bigness, width
-	db 0, (0 * -2) ; alignments (y, x)
-	dw $C6EF + ROUTE_17_WIDTH ; window
-
-	db CELADON_CITY
-	dw CeladonCityBlocks + (CELADON_CITY_WIDTH) ; connection strip location
-	dw $C6E5 + (ROUTE_16_WIDTH + 6) * (-3 + 4) ; current map position
-	db $f, CELADON_CITY_WIDTH ; bigness, width
-	db (-4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + CELADON_CITY_WIDTH ; window
-
-	; end connections data
-
+	SOUTH_MAP_CONNECTION ROUTE_17, ROUTE_17_WIDTH, 0, 0, ROUTE_17_WIDTH, Route17Blocks, ROUTE_16_WIDTH, ROUTE_16_HEIGHT
+	EAST_MAP_CONNECTION CELADON_CITY, CELADON_CITY_WIDTH, -3, 1, CELADON_CITY_HEIGHT - 3, CeladonCityBlocks, ROUTE_16_WIDTH
 	dw Route16Object ; objects
 
 Route16Object: ; 0x58afc (size=136)
@@ -91645,25 +91014,8 @@
 	db ROUTE_18_HEIGHT, ROUTE_18_WIDTH ; dimensions (y, x)
 	dw Route18Blocks, Route18TextPointers, Route18Script ; blocks, texts, scripts
 	db NORTH | EAST ; connections
-
-	; connections data
-
-	db ROUTE_17
-	dw Route17Blocks + (ROUTE_17_HEIGHT - 3) * ROUTE_17_WIDTH ; connection strip location
-	dw $C6EB + 0 ; current map position
-	db ROUTE_17_WIDTH, ROUTE_17_WIDTH ; bigness, width
-	db (ROUTE_17_HEIGHT * 2) - 1, (0 * -2) ; alignments (y, x)
-	dw $C6E9 + ROUTE_17_HEIGHT * (ROUTE_17_WIDTH + 6) ; window
-
-	db FUCHSIA_CITY
-	dw FuchsiaCityBlocks + (FUCHSIA_CITY_WIDTH) ; connection strip location
-	dw $C6E5 + (ROUTE_18_WIDTH + 6) * (-3 + 4) ; current map position
-	db $f, FUCHSIA_CITY_WIDTH ; bigness, width
-	db (-4 * -2), 0 ; alignments (y, x)
-	dw $C6EF + FUCHSIA_CITY_WIDTH ; window
-
-	; end connections data
-
+	NORTH_MAP_CONNECTION ROUTE_17, ROUTE_17_WIDTH, ROUTE_17_HEIGHT, 0, 0, ROUTE_17_WIDTH, Route17Blocks
+	EAST_MAP_CONNECTION FUCHSIA_CITY, FUCHSIA_CITY_WIDTH, -3, 1, FUCHSIA_CITY_HEIGHT - 3, FuchsiaCityBlocks, ROUTE_18_WIDTH
 	dw Route18Object ; objects
 
 Route18Object: ; 0x58c5a (size=66)
@@ -94111,7 +93463,6 @@
 	db POKEMON_FAN_CLUB_HEIGHT, POKEMON_FAN_CLUB_WIDTH ; dimensions (y, x)
 	dw FanClubBlocks, FanClubTextPointers, FanClubScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FanClubObject ; objects
 
 FanClubScript: ; 59b70 (16:5b70)
@@ -94318,7 +93669,6 @@
 	db SILPH_CO_2F_HEIGHT, SILPH_CO_2F_WIDTH ; dimensions (y, x)
 	dw SilphCo2Blocks, SilphCo2TextPointers, SilphCo2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo2Object ; objects
 
 SilphCo2Script: ; 59cf1 (16:5cf1)
@@ -94608,7 +93958,6 @@
 	db SILPH_CO_3F_HEIGHT, SILPH_CO_3F_WIDTH ; dimensions (y, x)
 	dw SilphCo3Blocks, SilphCo3TextPointers, SilphCo3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo3Object ; objects
 
 SilphCo3Script: ; 59f5b (16:5f5b)
@@ -94794,7 +94143,6 @@
 	db SILPH_CO_10F_HEIGHT, SILPH_CO_10F_WIDTH ; dimensions (y, x)
 	dw SilphCo10Blocks, SilphCo10TextPointers, SilphCo10Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo10Object ; objects
 
 SilphCo10Script: ; 5a139 (16:6139)
@@ -94961,7 +94309,6 @@
 	db LANCES_ROOM_HEIGHT, LANCES_ROOM_WIDTH ; dimensions (y, x)
 	dw LanceBlocks, LanceTextPointers, LanceScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw LanceObject ; objects
 
 LanceScript: ; 5a2ae (16:62ae)
@@ -95157,7 +94504,6 @@
 	db HALL_OF_FAME_HEIGHT, HALL_OF_FAME_WIDTH ; dimensions (y, x)
 	dw HallofFameRoomBlocks, HallofFameRoomTextPointers, HallofFameRoomScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw HallofFameRoomObject ; objects
 
 HallofFameRoomScript: ; 5a49e (16:649e)
@@ -95353,9 +94699,9 @@
 
 RedsHouse2F_h: ; 5c0a4 (17:40a4)
 	db $04 ; tileset
-	db $04,$04 ; dimensions
+	db REDS_HOUSE_2F_HEIGHT, REDS_HOUSE_2F_WIDTH ; dimensions
 	dw RedsHouse2FBlocks, RedsHouse2FTextPointers, RedsHouse2FScript
-	db 0 ; no connections
+	db $00 ; no connections
 	dw RedsHouse2FObject
 
 RedsHouse2FScript: ; 5c0b0 (17:40b0)
@@ -95387,14 +94733,14 @@
 	db $0A ; border tile
 
 	db 1 ; warps
-	db 1,7,2,$25
+	db 1, 7, 2, REDS_HOUSE_1F
 
 	db 0 ; signs
 
 	db 0 ; people
 
-	dw $C6EF + 4 + (4 + 6) * 0 + 3
-	db 1,7
+	; warp-to
+	EVENT_DISP REDS_HOUSE_2F_WIDTH, 1, 7
 
 Func_5c0dc: ; 5c0dc (17:40dc)
 	ld a, $4b
@@ -95410,7 +94756,6 @@
 	db MUSEUM_1F_HEIGHT, MUSEUM_1F_WIDTH ; dimensions (y, x)
 	dw MuseumF1Blocks, MuseumF1TextPointers, MuseumF1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw MuseumF1Object ; objects
 
 MuseumF1Script: ; 5c0f7 (17:40f7)
@@ -95698,7 +95043,6 @@
 	db MUSEUM_2F_HEIGHT, MUSEUM_2F_WIDTH ; dimensions (y, x)
 	dw MuseumF2Blocks, MuseumF2TextPointers, MuseumF2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw MuseumF2Object ; objects
 
 MuseumF2Script: ; 5c317 (17:4317)
@@ -95766,7 +95110,6 @@
 	db PEWTER_GYM_HEIGHT, PEWTER_GYM_WIDTH ; dimensions (y, x)
 	dw PewterGymBlocks, PewterGymTextPointers, PewterGymScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PewterGymObject ; objects
 
 PewterGymScript: ; 5c387 (17:4387)
@@ -96028,7 +95371,6 @@
 	db PEWTER_POKECENTER_HEIGHT, PEWTER_POKECENTER_WIDTH ; dimensions (y, x)
 	dw PewterPokecenterBlocks, PewterPokecenterTextPointers, PewterPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PewterPokecenterObject ; objects
 
 PewterPokecenterScript: ; 5c587 (17:4587)
@@ -96131,7 +95473,6 @@
 	db CERULEAN_POKECENTER_HEIGHT, CERULEAN_POKECENTER_WIDTH ; dimensions (y, x)
 	dw CeruleanPokecenterBlocks, CeruleanPokecenterTextPointers, CeruleanPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeruleanPokecenterObject ; objects
 
 CeruleanPokecenterScript: ; 5c645 (17:4645)
@@ -96185,7 +95526,6 @@
 	db CERULEAN_GYM_HEIGHT, CERULEAN_GYM_WIDTH ; dimensions (y, x)
 	dw CeruleanGymBlocks, CeruleanGymTextPointers, CeruleanGymScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeruleanGymObject ; objects
 
 CeruleanGymScript: ; 5c6b3 (17:46b3)
@@ -96437,7 +95777,6 @@
 	db CERULEAN_MART_HEIGHT, CERULEAN_MART_WIDTH ; dimensions (y, x)
 	dw CeruleanMartBlocks, CeruleanMartTextPointers, CeruleanMartScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeruleanMartObject ; objects
 
 CeruleanMartScript: ; 5c895 (17:4895)
@@ -96479,7 +95818,6 @@
 	db LAVENDER_POKECENTER_HEIGHT, LAVENDER_POKECENTER_WIDTH ; dimensions (y, x)
 	dw LavenderPokecenterBlocks, LavenderPokecenterTextPointers, LavenderPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw LavenderPokecenterObject ; objects
 
 LavenderPokecenterScript: ; 5c8da (17:48da)
@@ -96530,7 +95868,6 @@
 	db LAVENDER_MART_HEIGHT, LAVENDER_MART_WIDTH ; dimensions (y, x)
 	dw LavenderMartBlocks, LavenderMartTextPointers, LavenderMartScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw LavenderMartObject ; objects
 
 LavenderMartScript: ; 5c92c (17:492c)
@@ -96590,7 +95927,6 @@
 	db VERMILION_POKECENTER_HEIGHT, VERMILION_POKECENTER_WIDTH ; dimensions (y, x)
 	dw VermilionPokecenterBlocks, VermilionPokecenterTextPointers, VermilionPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VermilionPokecenterObject ; objects
 
 VermilionPokecenterScript: ; 5c98f (17:498f)
@@ -96641,7 +95977,6 @@
 	db VERMILION_MART_HEIGHT, VERMILION_MART_WIDTH ; dimensions (y, x)
 	dw VermilionMartBlocks, VermilionMartTextPointers, VermilionMartScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VermilionMartObject ; objects
 
 VermilionMartScript: ; 5c9e1 (17:49e1)
@@ -96683,7 +96018,6 @@
 	db VERMILION_GYM_HEIGHT, VERMILION_GYM_WIDTH ; dimensions (y, x)
 	dw VermilionGymBlocks, VermilionGymTextPointers, VermilionGymScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VermilionGymObject ; objects
 
 VermilionGymScript: ; 5ca26 (17:4a26)
@@ -96987,7 +96321,6 @@
 	db COPYCATS_HOUSE_2F_HEIGHT, COPYCATS_HOUSE_2F_WIDTH ; dimensions (y, x)
 	dw CopycatsHouseF2Blocks, CopycatsHouseF2TextPointers, CopycatsHouseF2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CopycatsHouseF2Object ; objects
 
 CopycatsHouseF2Script: ; 5cc71 (17:4c71)
@@ -97120,7 +96453,6 @@
 	db FIGHTINGDOJO_HEIGHT, FIGHTINGDOJO_WIDTH ; dimensions (y, x)
 	dw FightingDojoBlocks, FightingDojoTextPointers, FightingDojoScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FightingDojoObject ; objects
 
 FightingDojoScript: ; 5cd5d (17:4d5d)
@@ -97491,7 +96823,6 @@
 	db SAFFRON_GYM_HEIGHT, SAFFRON_GYM_WIDTH ; dimensions (y, x)
 	dw SaffronGymBlocks, SaffronGymTextPointers, SaffronGymScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SaffronGymObject ; objects
 
 SaffronGymScript: ; 5d00d (17:500d)
@@ -97951,7 +97282,6 @@
 	db SAFFRON_MART_HEIGHT, SAFFRON_MART_WIDTH ; dimensions (y, x)
 	dw SaffronMartBlocks, SaffronMartTextPointers, SaffronMartScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SaffronMartObject ; objects
 
 SaffronMartScript: ; 5d409 (17:5409)
@@ -97993,7 +97323,6 @@
 	db SILPH_CO_1F_HEIGHT, SILPH_CO_1F_WIDTH ; dimensions (y, x)
 	dw SilphCo1Blocks, SilphCo1TextPointers, SilphCo1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo1Object ; objects
 
 SilphCo1Script: ; 5d44e (17:544e)
@@ -98047,7 +97376,6 @@
 	db SAFFRON_POKECENTER_HEIGHT, SAFFRON_POKECENTER_WIDTH ; dimensions (y, x)
 	dw SaffronPokecenterBlocks, SaffronPokecenterTextPointers, SaffronPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SaffronPokecenterObject ; objects
 
 SaffronPokecenterScript: ; 5d535 (17:5535)
@@ -98098,7 +97426,6 @@
 	db VIRIDIAN_FOREST_EXIT_HEIGHT, VIRIDIAN_FOREST_EXIT_WIDTH ; dimensions (y, x)
 	dw ViridianForestexitBlocks, ViridianForestexitTextPointers, ViridianForestexitScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw ViridianForestexitObject ; objects
 
 ViridianForestexitScript: ; 5d587 (17:5587)
@@ -98142,7 +97469,6 @@
 	db ROUTE_2_GATE_HEIGHT, ROUTE_2_GATE_WIDTH ; dimensions (y, x)
 	dw Route2GateBlocks, Route2GateTextPointers, Route2GateScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Route2GateObject ; objects
 
 Route2GateScript: ; 5d5d4 (17:55d4)
@@ -98214,7 +97540,6 @@
 	db VIRIDIAN_FOREST_ENTRANCE_HEIGHT, VIRIDIAN_FOREST_ENTRANCE_WIDTH ; dimensions (y, x)
 	dw ViridianForestEntranceBlocks, ViridianForestEntranceTextPointers, ViridianForestEntranceScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw ViridianForestEntranceObject ; objects
 
 ViridianForestEntranceScript: ; 5d65c (17:565c)
@@ -98258,7 +97583,6 @@
 	db PATH_ENTRANCE_ROUTE_5_HEIGHT, PATH_ENTRANCE_ROUTE_5_WIDTH ; dimensions (y, x)
 	dw UndergroundTunnelEntranceRoute5Blocks, UndergroundTunnelEntranceRoute5TextPointers, UndergroundTunnelEntranceRoute5Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UndergroundTunnelEntranceRoute5Object ; objects
 
 UndergroundTunnelEntranceRoute5Script: ; 5d6a9 (17:56a9)
@@ -98304,7 +97628,6 @@
 	db PATH_ENTRANCE_ROUTE_6_HEIGHT, PATH_ENTRANCE_ROUTE_6_WIDTH ; dimensions (y, x)
 	dw UndergroundTunnelEntranceRoute6Blocks, UndergroundTunnelEntranceRoute6TextPointers, UndergroundTunnelEntranceRoute6Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UndergroundTunnelEntranceRoute6Object ; objects
 
 UndergroundTunnelEntranceRoute6Script: ; 5d6ef (17:56ef)
@@ -98315,10 +97638,8 @@
 UndergroundTunnelEntranceRoute6TextPointers: ; 5d6f7 (17:56f7)
 	dw UndergroundTunnelEntranceRoute6Text1
 
-;XXX wtf? syntax error on TX_FAR?
 UndergroundTunnelEntranceRoute6Text1: ; 5d6f9 (17:56f9)
-	db $17, $cb, $40, $23
-	;TX_FAR _UndergroundTunnelEntranceRoute6Text1 ; $cb, $40, $23
+	TX_FAR _UndergrdTunnelEntRoute6Text1
 	db "@"
 
 UndergroundTunnelEntranceRoute6Object: ; 0x5d6fe (size=34)
@@ -98344,7 +97665,6 @@
 	db PATH_ENTRANCE_ROUTE_7_HEIGHT, PATH_ENTRANCE_ROUTE_7_WIDTH ; dimensions (y, x)
 	dw UndergroundTunnelEntranceRoute7Blocks, UndergroundPathEntranceRoute7TextPointers, UndergroundPathEntranceRoute7Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UndergroundPathEntranceRoute7Object ; objects
 
 UndergroundPathEntranceRoute7Script: ; 5d72c (17:572c)
@@ -98356,8 +97676,7 @@
 	dw UndergroundPathEntranceRoute7Text1
 
 UndergroundPathEntranceRoute7Text1: ; 5d736 (17:5736)
-	db $17, $ff, $40, $23
-	;TX_FAR _UndergroundPathEntranceRoute7Text1
+	TX_FAR _UndergroundPathEntRoute7Text1
 	db "@"
 
 UndergroundPathEntranceRoute7Object: ; 0x5d73b (size=34)
@@ -98383,7 +97702,6 @@
 	db PATH_ENTRANCE_ROUTE_7_HEIGHT, PATH_ENTRANCE_ROUTE_7_WIDTH ; dimensions (y, x)
 	dw UndergroundTunnelEntranceRoute7CopyBlocks, UndergroundPathEntranceRoute7CopyTextPointers, UndergroundPathEntranceRoute7CopyScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UndergroundPathEntranceRoute7CopyObject ; objects
 
 UndergroundPathEntranceRoute7CopyScript: ; 5d769 (17:5769)
@@ -98435,7 +97753,6 @@
 	db SILPH_CO_9F_HEIGHT, SILPH_CO_9F_WIDTH ; dimensions (y, x)
 	dw SilphCo9Blocks, SilphCo9TextPointers, SilphCo9Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo9Object ; objects
 
 SilphCo9Script: ; 5d7bb (17:57bb)
@@ -98720,7 +98037,6 @@
 	db VICTORY_ROAD_1_HEIGHT, VICTORY_ROAD_1_WIDTH ; dimensions (y, x)
 	dw VictoryRoad1Blocks, VictoryRoad1TextPointers, VictoryRoad1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw VictoryRoad1Object ; objects
 
 VictoryRoad1Script: ; 5da0a (17:5a0a)
@@ -98880,8 +98196,8 @@
 	ld a, $4
 	jp Func_3ef5
 
-UnnamedText_5db81: ; 5db81 (17:5b81)
-	TX_FAR _UnnamedText_5db81
+RedBedroomSNESText: ; 5db81 (17:5b81)
+	TX_FAR _RedBedroomSNESText
 	db "@"
 
 Func_5db86: ; 5db86 (17:5b86)
@@ -98889,48 +98205,50 @@
 	ld a, $3
 	jp Func_3ef5
 
-Func_5db8e: ; 5db8e (17:5b8e)
+Route15UpstairsLeftBinoculars: ; 5db8e (17:5b8e)
 	db $fc
 	ld a, [$c109]
-	cp $4
+	cp $4 ; i
 	ret nz
 	call EnableAutoTextBoxDrawing
-	ld a, $a
+	ld a, $a ; text id Route15UpstairsBinocularsText
 	call Func_3ef5
 	ld a, ARTICUNO
 	ld [$cf91], a
 	call PlayCry
-	jp Func_5dbd9
+	jp DisplayMonFrontSpriteInBox
 
-UnnamedText_5dba8: ; 5dba8 (17:5ba8)
-	TX_FAR _UnnamedText_5dba8
+Route15UpstairsBinocularsText: ; 5dba8 (17:5ba8)
+	TX_FAR _Route15UpstairsBinocularsText
 	db "@"
 
 	ld a, $b7
 	ld [$cf91], a
-	call Func_5dbd9
+	call DisplayMonFrontSpriteInBox
 	call EnableAutoTextBoxDrawing
 	ld a, $9
 	call Func_3ef5
 	ret
 
-UnnamedText_5dbbe: ; 5dbbe (17:5bbe)
-	TX_FAR _UnnamedText_5dbbe
+AerodactylFossilText: ; 5dbbe (17:5bbe)
+	TX_FAR _AerodactylFossilText
 	db "@"
 
 	ld a, $b6
 	ld [$cf91], a
-	call Func_5dbd9
+	call DisplayMonFrontSpriteInBox
 	call EnableAutoTextBoxDrawing
 	ld a, $b
 	call Func_3ef5
 	ret
 
-UnnamedText_5dbd4: ; 5dbd4 (17:5bd4)
-	TX_FAR _UnnamedText_5dbd4
+KabutopsFossilText: ; 5dbd4 (17:5bd4)
+	TX_FAR _KabutopsFossilText
 	db "@"
 
-Func_5dbd9: ; 5dbd9 (17:5bd9)
+DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
+; Displays a pokemon's front sprite in a pop-up window.
+; [$cf91] = pokemon interal id number
 	ld a, $1
 	ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
 	call Delay3
@@ -98967,10 +98285,10 @@
 	call Func_3ef5
 	ret
 
-UnnamedText_5dc29: ; 5dc29 (17:5c29)
+LinkCableHelp: ; 5dc29 (17:5c29)
 	db $08 ; asm
 	call SaveScreenTilesToBuffer1
-	ld hl, UnnamedText_5dc9e
+	ld hl, LinkCableHelpText1
 	call PrintText
 	xor a
 	ld [W_ANIMATIONID], a
@@ -98994,7 +98312,7 @@
 	ld hl, $c3ca
 	ld de, HowToLinkText
 	call PlaceString
-	ld hl, UnnamedText_5dca3
+	ld hl, LinkCableHelpText2
 	call PrintText
 	call HandleMenuInput
 	bit 1, a
@@ -99004,7 +98322,7 @@
 	jr z, .asm_5dc93 ; 0x5dc7b $16
 	ld hl, $d730
 	res 6, [hl]
-	ld hl, PointerTable_5dcd8
+	ld hl, LinkCableInfoTexts
 	add a
 	ld d, $0
 	ld e, a
@@ -99020,38 +98338,38 @@
 	call LoadScreenTilesFromBuffer1
 	jp TextScriptEnd
 
-UnnamedText_5dc9e: ; 5dc9e (17:5c9e)
-	TX_FAR _UnnamedText_5dc9e
+LinkCableHelpText1: ; 5dc9e (17:5c9e)
+	TX_FAR _LinkCableHelpText1
 	db "@"
 
-UnnamedText_5dca3: ; 5dca3 (17:5ca3)
-	TX_FAR _UnnamedText_5dca3
+LinkCableHelpText2: ; 5dca3 (17:5ca3)
+	TX_FAR _LinkCableHelpText2
 	db "@"
 
 HowToLinkText: ; 5dca8 (17:5ca8)
 	db "HOW TO LINK",$4e,"COLOSSEUM",$4e,"TRADE CENTER",$4e,"STOP READING@"
 
-PointerTable_5dcd8: ; 5dcd8 (17:5cd8)
-	dw UnnamedText_5dcde
-	dw UnnamedText_5dce3
-	dw UnnamedText_5dce8
+LinkCableInfoTexts: ; 5dcd8 (17:5cd8)
+	dw LinkCableInfoText1
+	dw LinkCableInfoText2
+	dw LinkCableInfoText3
 
-UnnamedText_5dcde: ; 5dcde (17:5cde)
-	TX_FAR _UnnamedText_5dcde
+LinkCableInfoText1: ; 5dcde (17:5cde)
+	TX_FAR _LinkCableInfoText1
 	db "@"
 
-UnnamedText_5dce3: ; 5dce3 (17:5ce3)
-	TX_FAR _UnnamedText_5dce3
+LinkCableInfoText2: ; 5dce3 (17:5ce3)
+	TX_FAR _LinkCableInfoText2
 	db "@"
 
-UnnamedText_5dce8: ; 5dce8 (17:5ce8)
-	TX_FAR _UnnamedText_5dce8
+LinkCableInfoText3: ; 5dce8 (17:5ce8)
+	TX_FAR _LinkCableInfoText3
 	db "@"
 
-UnnamedText_5dced: ; 5dced (17:5ced)
+ViridianSchoolBlackboard: ; 5dced (17:5ced)
 	db $08 ; asm
 	call SaveScreenTilesToBuffer1
-	ld hl, UnnamedText_5dda2
+	ld hl, ViridianSchoolBlackboardText1
 	call PrintText
 	xor a
 	ld [W_ANIMATIONID], a
@@ -99077,11 +98395,11 @@
 	ld hl, $c3ce
 	ld de, StatusAilmentText2
 	call PlaceString
-	ld hl, UnnamedText_5dda7
+	ld hl, ViridianSchoolBlackboardText2
 	call PrintText
 	call HandleMenuInput
 	bit 1, a
-	jr nz, .asm_5dd97
+	jr nz, .exitBlackboard
 	bit 4, a
 	jr z, .asm_5dd5c
 	ld a, $2
@@ -99111,10 +98429,10 @@
 	ld a, [W_ANIMATIONID]
 	add b
 	cp $5
-	jr z, .asm_5dd97
+	jr z, .exitBlackboard
 	ld hl, $d730
 	res 6, [hl]
-	ld hl, PointerTable_5ddcc
+	ld hl, ViridianBlackboardStatusPointers
 	add a
 	ld d, $0
 	ld e, a
@@ -99124,18 +98442,18 @@
 	ld l, a
 	call PrintText
 	jp .asm_5dd15
-.asm_5dd97
+.exitBlackboard
 	ld hl, $d730
 	res 6, [hl]
 	call LoadScreenTilesFromBuffer1
 	jp TextScriptEnd
 
-UnnamedText_5dda2: ; 5dda2 (17:5da2)
-	TX_FAR _UnnamedText_5dda2
+ViridianSchoolBlackboardText1: ; 5dda2 (17:5da2)
+	TX_FAR _ViridianSchoolBlackboardText1
 	db "@"
 
-UnnamedText_5dda7: ; 5dda7 (17:5da7)
-	TX_FAR _UnnamedText_5dda7
+ViridianSchoolBlackboardText2: ; 5dda7 (17:5da7)
+	TX_FAR _ViridianSchoolBlackboardText2
 	db "@"
 
 StatusAilmentText1: ; 5ddac (17:5dac)
@@ -99148,31 +98466,31 @@
 	db " FRZ",$4e
 	db " QUIT@@"
 
-PointerTable_5ddcc: ; 5ddcc (17:5ddc)
-	dw UnnamedText_5ddd6
-	dw UnnamedText_5dddb
-	dw UnnamedText_5dde0
-	dw UnnamedText_5dde5
-	dw UnnamedText_5ddea
+ViridianBlackboardStatusPointers: ; 5ddcc (17:5ddc)
+	dw ViridianBlackboardSleepText
+	dw ViridianBlackboardPoisonText
+	dw ViridianBlackbaordPrlzText
+	dw ViridianBlackboardBurnText
+	dw ViridianBlackboardFrozenText
 
-UnnamedText_5ddd6: ; 5ddd6 (17:5dd6)
-	TX_FAR _UnnamedText_5ddd6
+ViridianBlackboardSleepText: ; 5ddd6 (17:5dd6)
+	TX_FAR _ViridianBlackboardSleepText
 	db "@"
 
-UnnamedText_5dddb: ; 5dddb (17:5ddb)
-	TX_FAR _UnnamedText_5dddb
+ViridianBlackboardPoisonText: ; 5dddb (17:5ddb)
+	TX_FAR _ViridianBlackboardPoisonText
 	db "@"
 
-UnnamedText_5dde0: ; 5dde0 (17:5de0)
-	TX_FAR _UnnamedText_5dde0
+ViridianBlackbaordPrlzText: ; 5dde0 (17:5de0)
+	TX_FAR _ViridianBlackbaordPrlzText
 	db "@"
 
-UnnamedText_5dde5: ; 5dde5 (17:5de5)
-	TX_FAR _UnnamedText_5dde5
+ViridianBlackboardBurnText: ; 5dde5 (17:5de5)
+	TX_FAR _ViridianBlackboardBurnText
 	db "@"
 
-UnnamedText_5ddea: ; 5ddea (17:5dea)
-	TX_FAR _UnnamedText_5ddea
+ViridianBlackboardFrozenText: ; 5ddea (17:5dea)
+	TX_FAR _ViridianBlackboardFrozenText
 	db "@"
 
 Func_5ddef: ; 5ddef (17:5def)
@@ -99180,8 +98498,8 @@
 	ld a, $26
 	jp Func_3ef5
 
-UnnamedText_5ddf7: ; 5ddf7 (17:5df7)
-	TX_FAR _UnnamedText_5ddf7
+VermilionGymTrashText: ; 5ddf7 (17:5df7)
+	TX_FAR _VermilionGymTrashText
 	db "@"
 
 	call EnableAutoTextBoxDrawing
@@ -99257,8 +98575,8 @@
 Unknown_5de7d: ; 5de7d (17:5e7d)
 INCBIN "baserom.gbc",$5de7d,$5dec8 - $5de7d
 
-UnnamedText_5dec8: ; 5dec8 (17:5ec8)
-	TX_FAR _UnnamedText_5dec8
+VermilionGymTrashSuccesText1: ; 5dec8 (17:5ec8)
+	TX_FAR _VermilionGymTrashSuccesText1
 	db $08 ; asm
 	call WaitForSoundToFinish
 	ld a, $9d
@@ -99266,8 +98584,8 @@
 	call WaitForSoundToFinish
 	jp TextScriptEnd
 
-UnnamedText_5dedb: ; 5dedb (17:5edb)
-	TX_FAR _UnnamedText_5dedb
+VermilionGymTrashSuccesText2: ; 5dedb (17:5edb)
+	TX_FAR _VermilionGymTrashSuccesText2
 	db "@"
 
 UnnamedText_5dee0: ; 5dee0 (17:5ee0)
@@ -99278,8 +98596,8 @@
 	call WaitForSoundToFinish
 	jp TextScriptEnd
 
-UnnamedText_5deef: ; 5deef (17:5eef)
-	TX_FAR _UnnamedText_5deef
+VermilionGymTrashSuccesText3: ; 5deef (17:5eef)
+	TX_FAR _VermilionGymTrashSuccesText3
 	db $08 ; asm
 	call WaitForSoundToFinish
 	ld a, $ad
@@ -99287,8 +98605,8 @@
 	call WaitForSoundToFinish
 	jp TextScriptEnd
 
-UnnamedText_5df02: ; 5df02 (17:5f02)
-	TX_FAR _UnnamedText_5df02
+VermilionGymTrashFailText: ; 5df02 (17:5f02)
+	TX_FAR _VermilionGymTrashFailText
 	db $08 ; asm
 	call WaitForSoundToFinish
 	ld a, $a5
@@ -99318,7 +98636,6 @@
 	db POKEMONTOWER_1_HEIGHT, POKEMONTOWER_1_WIDTH ; dimensions (y, x)
 	dw PokemonTower1Blocks, PokemonTower1TextPointers, PokemonTower1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PokemonTower1Object ; objects
 
 PokemonTower1Script: ; 6042c (18:442c)
@@ -99381,7 +98698,6 @@
 	db POKEMONTOWER_2_HEIGHT, POKEMONTOWER_2_WIDTH ; dimensions (y, x)
 	dw PokemonTower2Blocks, PokemonTower2TextPointers, PokemonTower2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PokemonTower2Object ; objects
 
 PokemonTower2Script: ; 604f2 (18:44f2)
@@ -99590,7 +98906,6 @@
 	db POKEMONTOWER_3_HEIGHT, POKEMONTOWER_3_WIDTH ; dimensions (y, x)
 	dw PokemonTower3Blocks, PokemonTower3TextPointers, PokemonTower3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PokemonTower3Object ; objects
 
 PokemonTower3Script: ; 606cc (18:46cc)
@@ -99723,7 +99038,6 @@
 	db POKEMONTOWER_4_HEIGHT, POKEMONTOWER_4_WIDTH ; dimensions (y, x)
 	dw PokemonTower4Blocks, PokemonTower4TextPointers, PokemonTower4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PokemonTower4Object ; objects
 
 PokemonTower4Script: ; 607f6 (18:47f6)
@@ -99861,7 +99175,6 @@
 	db POKEMONTOWER_5_HEIGHT, POKEMONTOWER_5_WIDTH ; dimensions (y, x)
 	dw PokemonTower5Blocks, PokemonTower5TextPointers, PokemonTower5Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PokemonTower5Object ; objects
 
 PokemonTower5Script: ; 60932 (18:4932)
@@ -100075,7 +99388,6 @@
 	db POKEMONTOWER_6_HEIGHT, POKEMONTOWER_6_WIDTH ; dimensions (y, x)
 	dw PokemonTower6Blocks, PokemonTower6TextPointers, PokemonTower6Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PokemonTower6Object ; objects
 
 PokemonTower6Script: ; 60aef (18:4aef)
@@ -100324,7 +99636,6 @@
 	db POKEMONTOWER_7_HEIGHT, POKEMONTOWER_7_WIDTH ; dimensions (y, x)
 	dw PokemonTower7Blocks, PokemonTower7TextPointers, PokemonTower7Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PokemonTower7Object ; objects
 
 PokemonTower7Script: ; 60d05 (18:4d05)
@@ -100635,7 +99946,6 @@
 	db CELADON_MART_1_HEIGHT, CELADON_MART_1_WIDTH ; dimensions (y, x)
 	dw CeladonMart1Blocks, CeladonMart1TextPointers, CeladonMart1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeladonMart1Object ; objects
 
 CeladonMart1Script: ; 60f86 (18:4f86)
@@ -100820,7 +100130,6 @@
 	db VIRIDIAN_FOREST_HEIGHT, VIRIDIAN_FOREST_WIDTH ; dimensions (y, x)
 	dw ViridianForestBlocks, ViridianForestTextPointers, ViridianForestScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw ViridianForestObject ; objects
 
 ViridianForestScript: ; 6110d (18:510d)
@@ -100914,10 +100223,7 @@
 	db "@"
 
 ViridianForestAfterBattleText1: ; 61194 (18:5194)
-	;TX_FAR _ViridianForestAfterBattleText1
-	db $17
-	dw _ViridianForestAfterBattleText1
-	db BANK(_ViridianForestAfterBattleText1)
+	TX_FAR _ViridianFrstAfterBattleText1
 	db "@"
 
 ViridianForestBattleText2: ; 61199 (18:5199)
@@ -100929,10 +100235,7 @@
 	db "@"
 
 ViridianForestAfterBattleText2: ; 611a3 (18:51a3)
-	;TX_FAR _ViridianForestAfterBattleText2
-	db $17
-	dw _ViridianForestAfterBattleText2
-	db BANK(_ViridianForestAfterBattleText2)
+	TX_FAR _ViridianFrstAfterBattleText2
 	db "@"
 
 ViridianForestBattleText3: ; 611a8 (18:51a8)
@@ -100944,10 +100247,7 @@
 	db "@"
 
 ViridianForestAfterBattleText3: ; 611b2 (18:51b2)
-	;TX_FAR _ViridianForestAfterBattleText3
-	db $17
-	dw _ViridianForestAfterBattleText3
-	db BANK(_ViridianForestAfterBattleText3)
+	TX_FAR _ViridianFrstAfterBattleText3
 	db "@"
 
 ViridianForestText8: ; 611b7 (18:51b7)
@@ -101020,7 +100320,6 @@
 	db SS_ANNE_1_HEIGHT, SS_ANNE_1_WIDTH ; dimensions (y, x)
 	dw SSAnne1Blocks, SSAnne1TextPointers, SSAnne1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne1Object ; objects
 
 SSAnne1Script: ; 61265 (18:5265)
@@ -101082,7 +100381,6 @@
 	db SS_ANNE_2_HEIGHT, SS_ANNE_2_WIDTH ; dimensions (y, x)
 	dw SSAnne2Blocks, SSAnne2TextPointers, SSAnne2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne2Object ; objects
 
 SSAnne2Script: ; 6139f (18:539f)
@@ -101335,7 +100633,6 @@
 	db SS_ANNE_4_HEIGHT, SS_ANNE_4_WIDTH ; dimensions (y, x)
 	dw SSAnne4Blocks, SSAnne4TextPointers, SSAnne4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne4Object ; objects
 
 SSAnne4Script: ; 6162e (18:562e)
@@ -101375,7 +100672,6 @@
 	db SS_ANNE_5_HEIGHT, SS_ANNE_5_WIDTH ; dimensions (y, x)
 	dw SSAnne5Blocks, SSAnne5TextPointers, SSAnne5Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne5Object ; objects
 
 SSAnne5Script: ; 616ae (18:56ae)
@@ -101496,7 +100792,6 @@
 	db SS_ANNE_6_HEIGHT, SS_ANNE_6_WIDTH ; dimensions (y, x)
 	dw SSAnne6Blocks, SSAnne6TextPointers, SSAnne6Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne6Object ; objects
 
 SSAnne6Script: ; 617b3 (18:57b3)
@@ -101600,7 +100895,6 @@
 	db SS_ANNE_7_HEIGHT, SS_ANNE_7_WIDTH ; dimensions (y, x)
 	dw SSAnne7Blocks, SSAnne7TextPointers, SSAnne7Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne7Object ; objects
 
 SSAnne7Script: ; 61895 (18:5895)
@@ -101724,7 +101018,6 @@
 	db SS_ANNE_8_HEIGHT, SS_ANNE_8_WIDTH ; dimensions (y, x)
 	dw SSAnne8Blocks, SSAnne8TextPointers, SSAnne8Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne8Object ; objects
 
 SSAnne8Script: ; 61976 (18:5976)
@@ -101934,7 +101227,6 @@
 	db SS_ANNE_9_HEIGHT, SS_ANNE_9_WIDTH ; dimensions (y, x)
 	dw SSAnne9Blocks, SSAnne9TextPointers, SSAnne9Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne9Object ; objects
 
 SSAnne9Script: ; 61b4b (18:5b4b)
@@ -102207,7 +101499,6 @@
 	db SS_ANNE_10_HEIGHT, SS_ANNE_10_WIDTH ; dimensions (y, x)
 	dw SSAnne10Blocks, SSAnne10TextPointers, SSAnne10Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SSAnne10Object ; objects
 
 SSAnne10Script: ; 61d55 (18:5d55)
@@ -102460,7 +101751,6 @@
 	db UNDERGROUND_PATH_NS_HEIGHT, UNDERGROUND_PATH_NS_WIDTH ; dimensions (y, x)
 	dw UndergroundPathNSBlocks, UndergroundPathNSTextPointers, UndergroundPathNSScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UndergroundPathNSObject ; objects
 
 UndergroundPathNSScript: ; 61f26 (18:5f26)
@@ -102489,7 +101779,6 @@
 	db UNDERGROUND_PATH_WE_HEIGHT, UNDERGROUND_PATH_WE_WIDTH ; dimensions (y, x)
 	dw UndergroundPathWEBlocks, UndergroundPathWETextPointers, UndergroundPathWEScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UndergroundPathWEObject ; objects
 
 UndergroundPathWEScript: ; 61f4a (18:5f4a)
@@ -102518,7 +101807,6 @@
 	db DIGLETTS_CAVE_HEIGHT, DIGLETTS_CAVE_WIDTH ; dimensions (y, x)
 	dw DiglettsCaveBlocks, DiglettsCaveTextPointers, DiglettsCaveScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw DiglettsCaveObject ; objects
 
 DiglettsCaveScript: ; 61f6e (18:5f6e)
@@ -102550,7 +101838,6 @@
 	db SILPH_CO_11F_HEIGHT, SILPH_CO_11F_WIDTH ; dimensions (y, x)
 	dw SilphCo11Blocks, SilphCo11TextPointers, SilphCo11Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SilphCo11Object ; objects
 
 SilphCo11Script: ; 620fa (18:60fa)
@@ -102991,12 +102278,12 @@
 	db VIRIDIAN_GYM, %10000000
 	db $ff
 
-UnnamedText_62453: ; 62453 (18:6453)
-	TX_FAR _UnnamedText_62453
+GymStatueText1: ; 62453 (18:6453)
+	TX_FAR _GymStatueText1
 	db "@"
 
-UnnamedText_62458: ; 62458 (18:6458)
-	TX_FAR _UnnamedText_62458
+GymStatueText2: ; 62458 (18:6458)
+	TX_FAR _GymStatueText2
 	db "@"
 
 Func_6245d: ; 6245d (18:645d)
@@ -103038,28 +102325,28 @@
 	db ROCK_TUNNEL_POKECENTER,$08,$1A
 	db $FF
 
-UnnamedText_624a3: ; 624a3 (18:64a3)
-	TX_FAR _UnnamedText_624a3
+ViridianCityPokecenterBenchGuyText: ; 624a3 (18:64a3)
+	TX_FAR _ViridianCityPokecenterGuyText
 	db "@"
 
-UnnamedText_624a8: ; 624a8 (18:64a8)
-	TX_FAR _UnnamedText_624a8
+PewterCityPokecenterBenchGuyText: ; 624a8 (18:64a8)
+	TX_FAR _PewterCityPokecenterGuyText
 	db "@"
 
-UnnamedText_624ad: ; 624ad (18:64ad)
-	TX_FAR _UnnamedText_624ad
+CeruleanCityPokecenterBenchGuyText: ; 624ad (18:64ad)
+	TX_FAR _CeruleanPokecenterGuyText
 	db "@"
 
-UnnamedText_624b2: ; 624b2 (18:64b2)
-	TX_FAR _UnnamedText_624b2
+LavenderCityPokecenterBenchGuyText: ; 624b2 (18:64b2)
+	TX_FAR _LavenderPokecenterGuyText
 	db "@"
 
-UnnamedText_624b7: ; 624b7 (18:64b7)
-	TX_FAR _UnnamedText_624b7
+MtMoonPokecenterBenchGuyText: ; 624b7 (18:64b7)
+	TX_FAR _MtMoonPokecenterBenchGuyText
 	db "@"
 
-UnnamedText_624bc: ; 624bc (18:64bc)
-	TX_FAR _UnnamedText_624bc
+RockTunnelPokecenterBenchGuyText: ; 624bc (18:64bc)
+	TX_FAR _RockTunnelPokecenterGuyText
 	db "@"
 
 UnnamedText_624c1: ; 624c1 (18:64c1)
@@ -103074,43 +102361,43 @@
 	TX_FAR _UnnamedText_624cb
 	db "@"
 
-UnnamedText_624d0: ; 624d0 (18:64d0)
-	TX_FAR _UnnamedText_624d0
+VermilionCityPokecenterBenchGuyText: ; 624d0 (18:64d0)
+	TX_FAR _VermilionPokecenterGuyText
 	db "@"
 
-UnnamedText_624d5: ; 624d5 (18:64d5)
-	TX_FAR _UnnamedText_624d5
+CeladonCityPokecenterBenchGuyText: ; 624d5 (18:64d5)
+	TX_FAR _CeladonCityPokecenterGuyText
 	db "@"
 
-UnnamedText_624da: ; 624da (18:64da)
-	TX_FAR _UnnamedText_624da
+FuchsiaCityPokecenterBenchGuyText: ; 624da (18:64da)
+	TX_FAR _FuchsiaCityPokecenterGuyText
 	db "@"
 
-UnnamedText_624df: ; 624df (18:64df)
-	TX_FAR _UnnamedText_624df
+CinnabarIslandPokecenterBenchGuyText: ; 624df (18:64df)
+	TX_FAR _CinnabarPokecenterGuyText
 	db "@"
 
-UnnamedText_624e4: ; 624e4 (18:64e4)
+SaffronCityPokecenterBenchGuyText: ; 624e4 (18:64e4)
 	db $8 ; asm
 	ld a, [$d838]
 	bit 7, a
-	ld hl, UnnamedText_624fd
+	ld hl, SaffronCityPokecenterBenchGuyText2
 	jr nz, .asm_624f2 ; 0x624ed $3
-	ld hl, UnnamedText_624f8
+	ld hl, SaffronCityPokecenterBenchGuyText1
 .asm_624f2
 	call PrintText
 	jp TextScriptEnd
 
-UnnamedText_624f8: ; 624f8 (18:64f8)
-	TX_FAR _UnnamedText_624f8
+SaffronCityPokecenterBenchGuyText1: ; 624f8 (18:64f8)
+	TX_FAR _SaffronCityPokecenterGuyText1
 	db "@"
 
-UnnamedText_624fd: ; 624fd (18:64fd)
-	TX_FAR _UnnamedText_624fd
+SaffronCityPokecenterBenchGuyText2: ; 624fd (18:64fd)
+	TX_FAR _SaffronCityPokecenterGuyText2
 	db "@"
 
-UnnamedText_62502: ; 62502 (18:6502)
-	TX_FAR _UnnamedText_62502
+CeladonCityHotelText: ; 62502 (18:6502)
+	TX_FAR _CeladonCityHotelText
 	db "@"
 
 	ret
@@ -103120,12 +102407,12 @@
 	ld a, $e
 	jp Func_3ef5
 
-UnnamedText_62511: ; 62511 (18:6511)
-	TX_FAR _UnnamedText_62511
+BookcaseText: ; 62511 (18:6511)
+	TX_FAR _BookcaseText
 	db "@"
 
 	ld a, [$c109]
-	cp $4
+	cp $4 ; check to see if player is facing up
 	ret nz
 	call EnableAutoTextBoxDrawing
 	ld a, $1
@@ -104248,7 +103535,7 @@
 	ld a, [$c102]
 	ld c, a
 	ld b, $0
-	ld hl, Unknown_70856 ; $4856
+	ld hl, FishingRodGfxProperties ; $4856
 	add hl, bc
 	ld de, $c39c
 	ld bc, $4
@@ -104315,8 +103602,16 @@
 	TX_FAR _UnnamedText_70851
 	db "@"
 
-Unknown_70856: ; 70856 (1c:4856)
-INCBIN "baserom.gbc",$70856,$70866 - $70856
+FishingRodGfxProperties: ; 70856 (1c:4856)
+; specicies how the fishing rod should be drawn on the screen
+; first byte = screen y coordinate
+; second byte = screen x coordinate
+; third byte = tile number
+; fourth byte = sprite properties
+	db $5B, $4C, $FD, $00 ; player facing down
+	db $44, $4C, $FD, $00 ; player facing up
+	db $50, $40, $FE, $00 ; player facing left
+	db $50, $58, $FE, $20 ; player facing right ($20 means "horizontally flip the tile")
 
 Unknown_70866: ; 70866 (1c:4866)
 INCBIN "baserom.gbc",$70866,$7087e - $70866
@@ -109389,7 +108684,6 @@
 	db VIRIDIAN_GYM_HEIGHT, VIRIDIAN_GYM_WIDTH ; dimensions (y, x)
 	dw ViridianGymBlocks, ViridianGymTextPointers, ViridianGymScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw ViridianGymObject ; objects
 
 ViridianGymScript: ; 748a3 (1d:48a3)
@@ -109938,7 +109232,6 @@
 	db PEWTER_MART_HEIGHT, PEWTER_MART_WIDTH ; dimensions (y, x)
 	dw PewterMartBlocks, PewterMartTextPointers, PewterMartScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw PewterMartObject ; objects
 
 PewterMartScript: ; 74cad (1d:4cad)
@@ -109995,7 +109288,6 @@
 	db UNKNOWN_DUNGEON_1_HEIGHT, UNKNOWN_DUNGEON_1_WIDTH ; dimensions (y, x)
 	dw UnknownDungeon1Blocks, UnknownDungeon1TextPointers, UnknownDungeon1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw UnknownDungeon1Object ; objects
 
 UnknownDungeon1Script: ; 74d0c (1d:4d0c)
@@ -110046,7 +109338,6 @@
 	db CERULEAN_HOUSE_2_HEIGHT, CERULEAN_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw CeruleanHouse2Blocks, CeruleanHouse2TextPointers, CeruleanHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CeruleanHouse2Object ; objects
 
 CeruleanHouse2Script: ; 74e09 (1d:4e09)
@@ -110177,8 +109468,8 @@
 	EVENT_DISP $4, $7, $2
 	EVENT_DISP $4, $7, $3
 
-Func_74ee0: ; 74ee0 (1d:4ee0)
-	ld hl, UnnamedText_74f99
+VendingMachineMenu: ; 74ee0 (1d:4ee0)
+	ld hl, VendingMachineText1
 	call PrintText
 	ld a, $13
 	ld [$d125], a
@@ -110224,10 +109515,10 @@
 	ld a, $2
 	ld [$FF00+$a0], a
 	call HasEnoughMoney
-	jr nc, .asm_74f54
-	ld hl, UnnamedText_74fd3
+	jr nc, .enoughMoney
+	ld hl, VendingMachineText4
 	jp PrintText
-.asm_74f54
+.enoughMoney
 	call Func_74fe7
 	ld a, [$FF00+$db]
 	ld b, a
@@ -110234,8 +109525,8 @@
 	ld c, 1
 	call GiveItem
 	jr nc, .BagFull
-	ld b, $3c
-.asm_74f63
+	ld b, $3c ; number of times to play the "brrrrr" sound
+.playDeliverySound ; 0x74f63
 	ld c, $2
 	call DelayFrames
 	push bc
@@ -110243,8 +109534,9 @@
 	call PlaySound
 	pop bc
 	dec b
-	jr nz, .asm_74f63
-	ld hl, UnnamedText_74fd8
+	jr nz, .playDeliverySound
+.asm_74f72
+	ld hl, VendingMachineText5
 	call PrintText
 	ld hl, $ffde
 	ld de, wPlayerMoney + 2 ; $d349
@@ -110255,14 +109547,14 @@
 	ld [$d125], a
 	jp DisplayTextBoxID
 .BagFull
-	ld hl, UnnamedText_74fdd
+	ld hl, VendingMachineText6
 	jp PrintText
 .asm_74f93
-	ld hl, UnnamedText_74fe2
+	ld hl, VendingMachineText7
 	jp PrintText
 
-UnnamedText_74f99: ; 74f99 (1d:4f99)
-	TX_FAR _UnnamedText_74f99
+VendingMachineText1: ; 74f99 (1d:4f99)
+	TX_FAR _VendingMachineText1
 	db "@"
 
 DrinkText: ; 74f9e (1d:4f9e)
@@ -110270,25 +109562,26 @@
 	db "SODA POP",$4E
 	db "LEMONADE",$4E
 	db "CANCEL@"
+
 DrinkPriceText: ; 74fc3 (1d:4fc3)
 	db "¥200",$4E
 	db "¥300",$4E
 	db "¥350",$4E,"@"
 
-UnnamedText_74fd3: ; 74fd3 (1d:4fd3)
-	TX_FAR _UnnamedText_74fd3
+VendingMachineText4: ; 74fd3 (1d:4fd3)
+	TX_FAR _VendingMachineText4
 	db "@"
 
-UnnamedText_74fd8: ; 74fd8 (1d:4fd8)
-	TX_FAR _UnnamedText_74fd8
+VendingMachineText5: ; 74fd8 (1d:4fd8)
+	TX_FAR _VendingMachineText5
 	db "@"
 
-UnnamedText_74fdd: ; 74fdd (1d:4fdd)
-	TX_FAR _UnnamedText_74fdd
+VendingMachineText6: ; 74fdd (1d:4fdd)
+	TX_FAR _VendingMachineText6
 	db "@"
 
-UnnamedText_74fe2: ; 74fe2 (1d:4fe2)
-	TX_FAR _UnnamedText_74fe2
+VendingMachineText7: ; 74fe2 (1d:4fe2)
+	TX_FAR _VendingMachineText7
 	db "@"
 
 Func_74fe7: ; 74fe7 (1d:4fe7)
@@ -110319,7 +109612,6 @@
 	db FUCHSIA_HOUSE_1_HEIGHT, FUCHSIA_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw FuchsiaHouse1Blocks, FuchsiaHouse1TextPointers, FuchsiaHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FuchsiaHouse1Object ; objects
 
 FuchsiaHouse1Script: ; 75018 (1d:5018)
@@ -110366,7 +109658,6 @@
 	db FUCHSIA_POKECENTER_HEIGHT, FUCHSIA_POKECENTER_WIDTH ; dimensions (y, x)
 	dw FuchsiaPokecenterBlocks, FuchsiaPokecenterTextPointers, FuchsiaPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FuchsiaPokecenterObject ; objects
 
 FuchsiaPokecenterScript: ; 75063 (1d:5063)
@@ -110417,7 +109708,6 @@
 	db FUCHSIA_HOUSE_2_HEIGHT, FUCHSIA_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw FuchsiaHouse2Blocks, FuchsiaHouse2TextPointers, FuchsiaHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FuchsiaHouse2Object ; objects
 
 FuchsiaHouse2Script: ; 750b5 (1d:50b5)
@@ -110567,7 +109857,6 @@
 	db SAFARIZONEENTRANCE_HEIGHT, SAFARIZONEENTRANCE_WIDTH ; dimensions (y, x)
 	dw SafariZoneEntranceBlocks, SafariZoneEntranceTextPointers, SafariZoneEntranceScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw SafariZoneEntranceObject ; objects
 
 SafariZoneEntranceScript: ; 751cd (1d:51cd)
@@ -110900,7 +110189,6 @@
 	db FUCHSIA_GYM_HEIGHT, FUCHSIA_GYM_WIDTH ; dimensions (y, x)
 	dw FuchsiaGymBlocks, FuchsiaGymTextPointers, FuchsiaGymScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FuchsiaGymObject ; objects
 
 FuchsiaGymScript: ; 7543d (1d:543d)
@@ -111268,7 +110556,6 @@
 	db FUCHSIAMEETINGROOM_HEIGHT, FUCHSIAMEETINGROOM_WIDTH ; dimensions (y, x)
 	dw FuchsiaMeetingRoomBlocks, FuchsiaMeetingRoomTextPointers, FuchsiaMeetingRoomScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw FuchsiaMeetingRoomObject ; objects
 
 FuchsiaMeetingRoomScript: ; 756e3 (1d:56e3)
@@ -111318,7 +110605,6 @@
 	db CINNABAR_GYM_HEIGHT, CINNABAR_GYM_WIDTH ; dimensions (y, x)
 	dw CinnabarGymBlocks, CinnabarGymTextPointers, CinnabarGymScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CinnabarGymObject ; objects
 
 CinnabarGymScript: ; 7574a (1d:574a)
@@ -111833,7 +111119,6 @@
 	db CINNABAR_LAB_1_HEIGHT, CINNABAR_LAB_1_WIDTH ; dimensions (y, x)
 	dw Lab1Blocks, Lab1TextPointers, Lab1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Lab1Object ; objects
 
 Lab1Script: ; 75b8c (1d:5b8c)
@@ -111901,7 +111186,6 @@
 	db CINNABAR_LAB_2_HEIGHT, CINNABAR_LAB_2_WIDTH ; dimensions (y, x)
 	dw Lab2Blocks, Lab2TextPointers, Lab2Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Lab2Object ; objects
 
 Lab2Script: ; 75c21 (1d:5c21)
@@ -111957,7 +111241,6 @@
 	db CINNABAR_LAB_3_HEIGHT, CINNABAR_LAB_3_WIDTH ; dimensions (y, x)
 	dw Lab3Blocks, Lab3TextPointers, Lab3Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Lab3Object ; objects
 
 Lab3Script: ; 75c87 (1d:5c87)
@@ -112052,7 +111335,6 @@
 	db CINNABAR_LAB_4_HEIGHT, CINNABAR_LAB_4_WIDTH ; dimensions (y, x)
 	dw Lab4Blocks, Lab4TextPointers, Lab4Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw Lab4Object ; objects
 
 Lab4Script: ; 75d31 (1d:5d31)
@@ -112198,7 +111480,6 @@
 	db CINNABAR_POKECENTER_HEIGHT, CINNABAR_POKECENTER_WIDTH ; dimensions (y, x)
 	dw CinnabarPokecenterBlocks, CinnabarPokecenterTextPointers, CinnabarPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CinnabarPokecenterObject ; objects
 
 CinnabarPokecenterScript: ; 75e2c (1d:5e2c)
@@ -112249,7 +111530,6 @@
 	db CINNABAR_MART_HEIGHT, CINNABAR_MART_WIDTH ; dimensions (y, x)
 	dw CinnabarMartBlocks, CinnabarMartTextPointers, CinnabarMartScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CinnabarMartObject ; objects
 
 CinnabarMartScript: ; 75e7e (1d:5e7e)
@@ -112291,7 +111571,6 @@
 	db COPYCATS_HOUSE_1F_HEIGHT, COPYCATS_HOUSE_1F_WIDTH ; dimensions (y, x)
 	dw CopycatsHouseF1Blocks, CopycatsHouseF1TextPointers, CopycatsHouseF1Script ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw CopycatsHouseF1Object ; objects
 
 CopycatsHouseF1Script: ; 75ec3 (1d:5ec3)
@@ -112339,10 +111618,9 @@
 
 Gary_h: ; 75f11 (1d:5f11)
 	db $7 ;tileset
-	db $4, $4 ;Height, Width
+	db CHAMPIONS_ROOM_HEIGHT, CHAMPIONS_ROOM_WIDTH ; Height, Width
 	dw GaryBlocks, GaryTextPointers, GaryScript
 	db $0 ;No Connections
-
 	dw GaryObject
 
 GaryScript: ; 75f1d (1d:5f1d)
@@ -112672,7 +111950,6 @@
 	db LORELEIS_ROOM_HEIGHT, LORELEIS_ROOM_WIDTH ; dimensions (y, x)
 	dw LoreleiBlocks, LoreleiTextPointers, LoreleiScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw LoreleiObject ; objects
 
 LoreleiScript: ; 7617b (1d:617b)
@@ -112857,7 +112134,6 @@
 	db BRUNOS_ROOM_HEIGHT, BRUNOS_ROOM_WIDTH ; dimensions (y, x)
 	dw BrunoBlocks, BrunoTextPointers, BrunoScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw BrunoObject ; objects
 
 BrunoScript: ; 762d6 (1d:62d6)
@@ -113043,7 +112319,6 @@
 	db AGATHAS_ROOM_HEIGHT, AGATHAS_ROOM_WIDTH ; dimensions (y, x)
 	dw AgathaBlocks, AgathaTextPointers, AgathaScript ; blocks, texts, scripts
 	db $00 ; connections
-
 	dw AgathaObject ; objects
 
 AgathaScript: ; 7642d (1d:642d)
@@ -122368,15 +121643,15 @@
 
 SECTION "bank20",ROMX,BANK[$20]
 
-_UnnamedText_526ee: ; 80000 (20:4000)
+_CardKeySuccessText1: ; 80000 (20:4000)
 	db $0, "Bingo!@@"
 
-_UnnamedText_526f3: ; 80009 (20:4009)
+_CardKeySuccessText2: ; 80009 (20:4009)
 	db $0, $4f
 	db "The CARD KEY", $55
 	db "opened the door!", $57
 
-_UnnamedText_526f8: ; 80029 (20:4029)
+_CardKeyFailText: ; 80029 (20:4029)
 	db $0, "Darn! It needs a", $4f
 	db "CARD KEY!", $57
 
@@ -122517,7 +121792,7 @@
 	db "CATERPIE can't", $55
 	db "cut it!", $58
 
-_ViridianForestAfterBattleText1: ; 803a2 (20:43a2)
+_ViridianFrstAfterBattleText1: ; 803a2 (20:43a2)
 	db $0, "Ssh! You'll scare", $4f
 	db "the bugs away!", $57
 
@@ -122531,7 +121806,7 @@
 	db "I ran out of", $55
 	db "#MON!", $58
 
-_ViridianForestAfterBattleText2: ; 8040b (20:440b)
+_ViridianFrstAfterBattleText2: ; 8040b (20:440b)
 	db $0, "Darn! I'm going", $4f
 	db "to catch some", $55
 	db "stronger ones!", $57
@@ -122545,7 +121820,7 @@
 	db "give! You're good", $55
 	db "at this!", $58
 
-_ViridianForestAfterBattleText3: ; 80475 (20:4475)
+_ViridianFrstAfterBattleText3: ; 80475 (20:4475)
 	db $0, "Sometimes, you", $4f
 	db "can find stuff on", $55
 	db "the ground!", $51
@@ -123440,7 +122715,7 @@
 	db $0, "What?", $4f
 	db "I lost? No!", $58
 
-_RocketHideout3AfterBattleText3: ; 821fc (20:61fc)
+_RocketHide3AfterBattleText3: ; 821fc (20:61fc)
 	db $0, "Go ahead and go!", $4f
 	db "But, you need the", $55
 	db "LIFT KEY to run", $55
@@ -123477,7 +122752,7 @@
 	db $0, "Burned", $4f
 	db "again!", $58
 
-_RocketHideout4AfterBattleText2: ; 82363 (20:6363)
+_RocketHide4AfterBattleText2: ; 82363 (20:6363)
 	db $0, "Do you have", $4f
 	db "something against", $55
 	db "TEAM ROCKET?", $57
@@ -123490,7 +122765,7 @@
 _RocketHideout4EndBattleText3: ; 823bc (20:63bc)
 	db $0, "Ayaya!", $58
 
-_RocketHideout4AfterBattleText3: ; 823c4 (20:63c4)
+_RocketHide4AfterBattleText3: ; 823c4 (20:63c4)
 	db $0, "BOSS! I'm sorry I", $4f
 	db "failed you!", $57
 
@@ -124965,13 +124240,13 @@
 
 _AIBattleWithdrawText: ; 880be (22:40be)
 	db 1
-	dw $D04A
+	dw W_TRAINERNAME
 	db 0," with-",$4F,"drew @",1
 	dw W_ENEMYMONNAME
 	db 0,"!",$58
 _AIBattleUseItemText: ; 880d5 (22:40d5)
 	db 1
-	dw $D04A
+	dw W_TRAINERNAME
 	db 0,$4F,"used @",1
 	dw $CD6D
 	db 0,$55,"on @",1
@@ -125081,25 +124356,21 @@
 _UnnamedText_703ff: ; 88267 (22:4267)
 	db $0, "#DEX Rating", $6d, $57
 
-_UnnamedText_62453: ; 88275 (22:4275)
+_GymStatueText1: ; 88275 (22:4275)
 	TX_RAM wGymCityName
 	db $0, $4f
 	db "#MON GYM", $55
 	db "LEADER: @"
-
-UnnamedText_8828c: ; 8828c (22:428c)
 	TX_RAM wGymLeaderName
 	db $0, $51
 	db "WINNING TRAINERS:", $4f
 	db $53, $57
 
-_UnnamedText_62458: ; 882a5 (22:42a5)
+_GymStatueText2: ; 882a5 (22:42a5)
 	TX_RAM wGymCityName
 	db $0, $4f
 	db "#MON GYM", $55
 	db "LEADER: @"
-
-UnnamedText_882bc: ; 882bc (22:42bc)
 	TX_RAM wGymLeaderName
 	db $0, $51
 	db "WINNING TRAINERS:", $4f
@@ -125106,13 +124377,13 @@
 	db $53, $55
 	db $52, $57
 
-_UnnamedText_624a3: ; 882d7 (22:42d7)
+_ViridianCityPokecenterGuyText: ; 882d7 (22:42d7)
 	db $0, "#MON CENTERs", $4f
 	db "heal your tired,", $55
 	db "hurt or fainted", $55
 	db "#MON!", $57
 
-_UnnamedText_624a8: ; 8830c (22:430c)
+_PewterCityPokecenterGuyText: ; 8830c (22:430c)
 	db $0, "Yawn!", $51
 	db "When JIGGLYPUFF", $4f
 	db "sings, #MON", $55
@@ -125120,25 +124391,25 @@
 	db "...Me too...", $4f
 	db "Snore...", $57
 
-_UnnamedText_624ad: ; 88353 (22:4353)
+_CeruleanPokecenterGuyText: ; 88353 (22:4353)
 	db $0, "BILL has lots of", $4f
 	db "#MON!", $51
 	db "He collects rare", $4f
 	db "ones too!", $57
 
-_UnnamedText_624b2: ; 88386 (22:4386)
+_LavenderPokecenterGuyText: ; 88386 (22:4386)
 	db $0, "CUBONEs wear", $4f
 	db "skulls, right?", $51
 	db "People will pay a", $4f
 	db "lot for one!", $57
 
-_UnnamedText_624b7: ; 883c2 (22:43c2)
+_MtMoonPokecenterBenchGuyText: ; 883c2 (22:43c2)
 	db $0, "If you have too", $4f
 	db "many #MON, you", $55
 	db "should store them", $55
 	db "via PC!", $57
 
-_UnnamedText_624bc: ; 883fc (22:43fc)
+_RockTunnelPokecenterGuyText: ; 883fc (22:43fc)
 	db $0, "I heard that", $4f
 	db "GHOSTs haunt", $55
 	db "LAVENDER TOWN!", $57
@@ -125156,7 +124427,7 @@
 	db "is hiding in the", $55
 	db "SAFARI ZONE.", $57
 
-_UnnamedText_624d0: ; 8848e (22:448e)
+_VermilionPokecenterGuyText: ; 8848e (22:448e)
 	db $0, "It is true that a", $4f
 	db "higher level", $55
 	db "#MON will be", $55
@@ -125169,12 +124440,12 @@
 	db "universally", $55
 	db "strong #MON.", $57
 
-_UnnamedText_624d5: ; 88531 (22:4531)
+_CeladonCityPokecenterGuyText: ; 88531 (22:4531)
 	db $0, "If I had a BIKE,", $4f
 	db "I would go to", $55
 	db "CYCLING ROAD!", $57
 
-_UnnamedText_624da: ; 8855f (22:455f)
+_FuchsiaCityPokecenterGuyText: ; 8855f (22:455f)
 	db $0, "If you're studying ", $4f
 	db "#MON, visit", $55
 	db "the SAFARI ZONE.", $51
@@ -125181,7 +124452,7 @@
 	db "It has all sorts", $4f
 	db "of rare #MON.", $57
 
-_UnnamedText_624df: ; 885af (22:45af)
+_CinnabarPokecenterGuyText: ; 885af (22:45af)
 	db $0, "#MON can still", $4f
 	db "learn techniques", $55
 	db "after canceling", $55
@@ -125190,27 +124461,27 @@
 	db "until new moves", $55
 	db "have been learned.", $57
 
-_UnnamedText_624f8: ; 88621 (22:4621)
+_SaffronCityPokecenterGuyText1: ; 88621 (22:4621)
 	db $0, "It would be great", $4f
 	db "if the ELITE FOUR", $55
 	db "came and stomped", $55
 	db "TEAM ROCKET!", $57
 
-_UnnamedText_624fd: ; 88664 (22:4664)
+_SaffronCityPokecenterGuyText2: ; 88664 (22:4664)
 	db $0, "TEAM ROCKET took", $4f
 	db "off! We can go", $55
 	db "out safely again!", $55
 	db "That's great!", $57
 
-_UnnamedText_62502: ; 886a4 (22:46a4)
+_CeladonCityHotelText: ; 886a4 (22:46a4)
 	db $0, "My sis brought me", $4f
 	db "on this vacation!", $57
 
-_UnnamedText_62511: ; 886c9 (22:46c9)
+_BookcaseText: ; 886c9 (22:46c9)
 	db $0, "Crammed full of", $4f
 	db "#MON books!", $57
 
-_UnnamedText_1e953: ; 886e6 (22:46e6)
+_NewBicycleText: ; 886e6 (22:46e6)
 	db $0, "A shiny new", $4f
 	db "BICYCLE!", $57
 
@@ -125237,7 +124508,7 @@
 	db $0, "PA: Your SAFARI", $4f
 	db "GAME is over!", $57
 
-_UnnamedText_1ea5b: ; 887b7 (22:47b7)
+_CinnabarGymQuizIntroText: ; 887b7 (22:47b7)
 	db $0, "#MON Quiz!", $51
 	db "Get it right and", $4f
 	db "the door opens to", $55
@@ -125251,41 +124522,41 @@
 	db "Then get it right!", $4f
 	db "Here we go!", $58
 
-_UnnamedText_1ea6c: ; 8886d (22:486d)
+_CinnabarQuizQuestionsText1: ; 8886d (22:486d)
 	db $0, "CATERPIE evolves", $4f
 	db "into BUTTERFREE?", $57
 
-_UnnamedText_1ea71: ; 88890 (22:4890)
+_CinnabarQuizQuestionsText2: ; 88890 (22:4890)
 	db $0, "There are 9", $4f
 	db "certified #MON", $55
 	db "LEAGUE BADGEs?", $57
 
-_UnnamedText_1ea76: ; 888bb (22:48bb)
+_CinnabarQuizQuestionsText3: ; 888bb (22:48bb)
 	db $0, "POLIWAG evolves 3", $4f
 	db "times?", $57
 
-_UnnamedText_1ea7b: ; 888d5 (22:48d5)
+_CinnabarQuizQuestionsText4: ; 888d5 (22:48d5)
 	db $0, "Are thunder moves", $4f
 	db "effective against", $55
 	db "ground element-", $55
 	db "type #MON?", $57
 
-_UnnamedText_1ea80: ; 88915 (22:4915)
+_CinnabarQuizQuestionsText5: ; 88915 (22:4915)
 	db $0, "#MON of the", $4f
 	db "same kind and", $55
 	db "level are not", $55
 	db "identical?", $57
 
-_UnnamedText_1ea85: ; 88949 (22:4949)
+_CinnabarQuizQuestionsText6: ; 88949 (22:4949)
 	db $0, "TM28 contains", $4f
 	db "TOMBSTONER?", $57
 
-_UnnamedText_1eae3: ; 88964 (22:4964)
+_CinnabarGymQuizCorrectText: ; 88964 (22:4964)
 	db $0, "You're absolutely", $4f
 	db "correct!", $51
 	db "Go on through!@@"
 
-_UnnamedText_1eb05: ; 8898f (22:498f)
+_CinnabarGymQuizIncorrectText: ; 8898f (22:498f)
 	db $0, "Sorry! Bad call!", $58
 
 _UnnamedText_1eb69: ; 889a1 (22:49a1)
@@ -125293,25 +124564,25 @@
 	db "#MON notebooks!", $51
 	db "#MON graphs!", $57
 
-_UnnamedText_1ebdd: ; 889cf (22:49cf)
+_BillsHouseMonitorText: ; 889cf (22:49cf)
 	db $0, "TELEPORTER is", $4f
 	db "displayed on the", $55
 	db "PC monitor.", $57
 
-_UnnamedText_1ebe2: ; 889fb (22:49fb)
+_BillsHouseInitiatedText: ; 889fb (22:49fb)
 	db $0, $52, " initiated", $4f
 	db "TELEPORTER's Cell", $55
 	db "Separator!@@"
 
-_UnnamedText_1ec7f: ; 88a25 (22:4a25)
+_BillsHousePokemonListText1: ; 88a25 (22:4a25)
 	db $0, "BILL's favorite", $4f
 	db "#MON list!", $58
 
-_UnnamedText_1ecaa: ; 88a40 (22:4a40)
+_BillsHousePokemonListText2: ; 88a40 (22:4a40)
 	db $0, "Which #MON do", $4f
 	db "you want to see?", $57
 
-_UnnamedText_1ecbd: ; 88a60 (22:4a60)
+_OakLabEmailText: ; 88a60 (22:4a60)
 	db $0, "There's an e-mail", $4f
 	db "message here!", $51
 	db "...", $51
@@ -125331,23 +124602,23 @@
 	db "please visit us!", $55
 	db "...", $57
 
-_UnnamedText_2ff32: ; 88b5b (22:4b5b)
+_GameCornerCoinCaseText: ; 88b5b (22:4b5b)
 	db $0, "A COIN CASE is", $4f
 	db "required!", $57
 
-_UnnamedText_2ff37: ; 88b75 (22:4b75)
+_GameCornerNoCoinsText: ; 88b75 (22:4b75)
 	db $0, "You don't have", $4f
 	db "any coins!", $57
 
-_UnnamedText_37e79: ; 88b8f (22:4b8f)
+_GameCornerOutOfOrderText: ; 88b8f (22:4b8f)
 	db $0, "OUT OF ORDER", $4f
 	db "This is broken.", $57
 
-_UnnamedText_37e7e: ; 88bad (22:4bad)
+_GameCornerOutToLunchText: ; 88bad (22:4bad)
 	db $0, "OUT TO LUNCH", $4f
 	db "This is reserved.", $57
 
-_UnnamedText_37e83: ; 88bcd (22:4bcd)
+_GameCornerSomeonesKeysText: ; 88bcd (22:4bcd)
 	db $0, "Someone's keys!", $4f
 	db "They'll be back.", $57
 
@@ -125354,7 +124625,7 @@
 _UnnamedText_21865: ; 88bed (22:4bed)
 	db $0, "Just a moment.", $57
 
-UnnamedText_88bfd: ; 88bfd (22:4bfd)
+TMNotebookText: ; 88bfd (22:4bfd)
 	db $0, "It's a pamphlet", $4f
 	db "on TMs.", $51
 	db "...", $51
@@ -125365,14 +124636,14 @@
 	db "used repeatedly.", $51
 	db "SILPH CO.@@"
 
-_UnnamedText_529e9: ; 88c6f (22:4c6f)
+_TurnPageText: ; 88c6f (22:4c6f)
 	db $0, "Turn the page?", $57
 
-_UnnamedText_529ee: ; 88c7f (22:4c7f)
+_ViridianSchoolNotebookText5: ; 88c7f (22:4c7f)
 	db $0, "GIRL: Hey! Don't", $4f
 	db "look at my notes!@@"
 
-_UnnamedText_529f4: ; 88ca3 (22:4ca3)
+_ViridianSchoolNotebookText1: ; 88ca3 (22:4ca3)
 	db $0, "Looked at the", $4f
 	db "notebook!", $51
 	db "First page...", $51
@@ -125386,7 +124657,7 @@
 	db "fight are called", $55
 	db "#MON trainers.", $58
 
-_UnnamedText_529f9: ; 88d46 (22:4d46)
+_ViridianSchoolNotebookText2: ; 88d46 (22:4d46)
 	db $0, "Second page...", $51
 	db "A healthy #MON", $4f
 	db "may be hard to", $55
@@ -125396,7 +124667,7 @@
 	db "other damage are", $55
 	db "effective!", $58
 
-_UnnamedText_529fe: ; 88dbd (22:4dbd)
+_ViridianSchoolNotebookText3: ; 88dbd (22:4dbd)
 	db $0, "Third page...", $51
 	db "#MON trainers", $4f
 	db "seek others to", $55
@@ -125406,7 +124677,7 @@
 	db "constantly fought", $55
 	db "at #MON GYMs.", $58
 
-_UnnamedText_52a03: ; 88e2c (22:4e2c)
+_ViridianSchoolNotebookText4: ; 88e2c (22:4e2c)
 	db $0, "Fourth page...", $51
 	db "The goal for", $4f
 	db "#MON trainers", $55
@@ -125426,20 +124697,20 @@
 	db $0, "What goes around", $4f
 	db "comes around!", $57
 
-_UnnamedText_52a2a: ; 88ef9 (22:4ef9)
+_FightingDojoText: ; 88ef9 (22:4ef9)
 	db $0, "FIGHTING DOJO", $57
 
-_UnnamedText_52a3d: ; 88f08 (22:4f08)
+_IndigoPlateauHQText: ; 88f08 (22:4f08)
 	db $0, "INDIGO PLATEAU", $4f
 	db "#MON LEAGUE HQ", $57
 
-_UnnamedText_5db81: ; 88f27 (22:4f27)
+_RedBedroomSNESText: ; 88f27 (22:4f27)
 	db $0, $52, " is", $4f
 	db "playing the SNES!", $55
 	db "...Okay!", $55
 	db "It's time to go!", $57
 
-_UnnamedText_5dba8: ; 88f58 (22:4f58)
+_Route15UpstairsBinocularsText: ; 88f58 (22:4f58)
 	db $0, "Looked into the", $4f
 	db "binoculars...", $51
 	db "A large, shining", $4f
@@ -125446,26 +124717,26 @@
 	db "bird is flying", $55
 	db "toward the sea.", $57
 
-_UnnamedText_5dbbe: ; 88fa7 (22:4fa7)
+_AerodactylFossilText: ; 88fa7 (22:4fa7)
 	db $0, "AERODACTYL Fossil", $4f
 	db "A primitive and", $55
 	db "rare #MON.", $57
 
-_UnnamedText_5dbd4: ; 88fd5 (22:4fd5)
+_KabutopsFossilText: ; 88fd5 (22:4fd5)
 	db $0, "KABUTOPS Fossil", $4f
 	db "A primitive and", $55
 	db "rare #MON.", $57
 
-_UnnamedText_5dc9e: ; 89001 (22:5001)
+_LinkCableHelpText1: ; 89001 (22:5001)
 	db $0, "TRAINER TIPS", $51
 	db "Using a Game Link", $4f
 	db "Cable", $58
 
-_UnnamedText_5dca3: ; 89027 (22:5027)
+_LinkCableHelpText2: ; 89027 (22:5027)
 	db $0, "Which heading do", $4f
 	db "you want to read?", $57
 
-_UnnamedText_5dcde: ; 8904b (22:504b)
+_LinkCableInfoText1: ; 8904b (22:504b)
 	db $0, "When you have", $4f
 	db "linked your GAME", $55
 	db "BOY with another", $55
@@ -125474,27 +124745,27 @@
 	db "the right in any", $55
 	db "#MON CENTER.", $58
 
-_UnnamedText_5dce3: ; 890bd (22:50bd)
+_LinkCableInfoText2: ; 890bd (22:50bd)
 	db $0, "COLOSSEUM lets", $4f
 	db "you play against", $55
 	db "a friend.", $58
 
-_UnnamedText_5dce8: ; 890e8 (22:50e8)
+_LinkCableInfoText3: ; 890e8 (22:50e8)
 	db $0, "TRADE CENTER is", $4f
 	db "used for trading", $55
 	db "#MON.", $58
 
-_UnnamedText_5dda2: ; 89110 (22:5110)
+_ViridianSchoolBlackboardText1: ; 89110 (22:5110)
 	db $0, "The blackboard", $4f
 	db "describes #MON", $55
 	db "STATUS changes", $55
 	db "during battles.", $58
 
-_UnnamedText_5dda7: ; 8914e (22:514e)
+_ViridianSchoolBlackboardText2: ; 8914e (22:514e)
 	db $0, "Which heading do", $4f
 	db "you want to read?", $57
 
-_UnnamedText_5ddd6: ; 89172 (22:5172)
+_ViridianBlackboardSleepText: ; 89172 (22:5172)
 	db $0, "A #MON can't", $4f
 	db "attack if it's", $55
 	db "asleep!", $51
@@ -125504,7 +124775,7 @@
 	db "Use AWAKENING to", $4f
 	db "wake them up!", $58
 
-_UnnamedText_5dddb: ; 891de (22:51de)
+_ViridianBlackboardPoisonText: ; 891de (22:51de)
 	db $0, "When poisoned, a", $4f
 	db "#MON's health", $55
 	db "steadily drops.", $51
@@ -125513,7 +124784,7 @@
 	db "Use an ANTIDOTE", $4f
 	db "to cure poison!", $58
 
-_UnnamedText_5dde0: ; 8924b (22:524b)
+_ViridianBlackbaordPrlzText: ; 8924b (22:524b)
 	db $0, "Paralysis could", $4f
 	db "make #MON", $55
 	db "moves misfire!", $51
@@ -125522,7 +124793,7 @@
 	db "Use PARLYZ HEAL", $4f
 	db "for treatment!", $58
 
-_UnnamedText_5dde5: ; 892b5 (22:52b5)
+_ViridianBlackboardBurnText: ; 892b5 (22:52b5)
 	db $0, "A burn reduces", $4f
 	db "power and speed.", $55
 	db "It also causes", $55
@@ -125532,7 +124803,7 @@
 	db "Use BURN HEAL to", $4f
 	db "cure a burn!", $58
 
-_UnnamedText_5ddea: ; 8932f (22:532f)
+_ViridianBlackboardFrozenText: ; 8932f (22:532f)
 	db $0, "If frozen, a", $4f
 	db "#MON becomes", $55
 	db "totally immobile!", $51
@@ -125542,11 +124813,11 @@
 	db "Use ICE HEAL to", $4f
 	db "thaw out #MON!", $58
 
-_UnnamedText_5ddf7: ; 893a7 (22:53a7)
+_VermilionGymTrashText: ; 893a7 (22:53a7)
 	db $0, "Nope, there's", $4f
 	db "only trash here.", $57
 
-_UnnamedText_5dec8: ; 893c6 (22:53c6)
+_VermilionGymTrashSuccesText1: ; 893c6 (22:53c6)
 	db $0, "Hey! There's a", $4f
 	db "switch under the", $55
 	db "trash!", $55
@@ -125554,19 +124825,19 @@
 	db "The 1st electric", $4f
 	db "lock opened!@@"
 
-_UnnamedText_5dedb: ; 89418 (22:5418)
+_VermilionGymTrashSuccesText2: ; 89418 (22:5418)
 	db $0, "Hey! There's", $4f
 	db "another switch", $55
 	db "under the trash!", $55
 	db "Turn it on!", $58
 
-_UnnamedText_5deef: ; 89451 (22:5451)
+_VermilionGymTrashSuccesText3: ; 89451 (22:5451)
 	db $0, "The 2nd electric", $4f
 	db "lock opened!", $51
 	db "The motorized door", $4f
 	db "opened!@@"
 
-_UnnamedText_5df02: ; 8948c (22:548c)
+_VermilionGymTrashFailText: ; 8948c (22:548c)
 	db $0, "Nope! There's", $4f
 	db "only trash here.", $55
 	db "Hey! The electric", $55
@@ -125600,15 +124871,15 @@
 	db "Oops! Dropped", $4f
 	db "some coins!", $57
 
-_UnnamedText_fbd9: ; 89557 (22:5557)
+_IndigoPlateauStatuesText1: ; 89557 (22:5557)
 	db $0, "INDIGO PLATEAU", $58
 
-_UnnamedText_fbde: ; 89567 (22:5567)
+_IndigoPlateauStatuesText2: ; 89567 (22:5567)
 	db $0, "The ultimate goal", $4f
 	db "of trainers!", $55
 	db "#MON LEAGUE HQ", $57
 
-_UnnamedText_fbe3: ; 89596 (22:5596)
+_IndigoPlateauStatuesText3: ; 89596 (22:5596)
 	db $0, "The highest", $4f
 	db "#MON authority", $55
 	db "#MON LEAGUE HQ", $57
@@ -125677,7 +124948,7 @@
 _TrainerDefeatedText: ; 896f9 (22:56f9)
 	db $0, $52, " defeated", $4f
 	db "@"
-	TX_RAM $d04a ; 0x89706
+	TX_RAM W_TRAINERNAME ; 0x89706
 	db $0, "!", $58
 
 _PlayerMonFaintedText: ; 8970c (22:570c)
@@ -125701,12 +124972,12 @@
 _LinkBattleLostText: ; 89772 (22:5772)
 	db $0, $52, " lost to", $4f
 	db "@"
-	TX_RAM $d04a ; 0x8977e
+	TX_RAM W_TRAINERNAME ; 0x8977e
 	db $0, "!", $58
 
 _TrainerAboutToUseText: ; 89784 (22:5784)
 	db 1
-	dw $D04A
+	dw W_TRAINERNAME
 	db 0," is",$4F
 	db "about to use",$55,"@",1
 	dw W_ENEMYMONNAME
@@ -125716,7 +124987,7 @@
 
 _TrainerSentOutText: ; 897b4 (22:57b4)
 	db 1
-	dw $D04A
+	dw W_TRAINERNAME
 	db 0," sent",$4F
 	db "out @",1
 	dw W_ENEMYMONNAME
@@ -125990,7 +125261,7 @@
 	db "appeared!", $58
 
 _UnnamedText_58e4a: ; 89c5e (22:5c5e)
-	TX_RAM $d04a
+	TX_RAM W_TRAINERNAME
 	db $0, " wants", $4f
 	db "to fight!", $58
 
@@ -126610,12 +125881,12 @@
 	db $0, "Hey, you don't", $4f
 	db "have enough ¥!", $57
 
-_UndergroundTunnelEntranceRoute6Text1: ; 8c0cb (23:40cb)
+_UndergrdTunnelEntRoute6Text1: ; 8c0cb (23:40cb)
 	db $0, "People often lose", $4f
 	db "things in that", $55
 	db "UNDERGROUND PATH.", $57
 
-_UndergroundPathEntranceRoute7Text1: ; 8c0ff (23:40ff)
+_UndergroundPathEntRoute7Text1: ; 8c0ff (23:40ff)
 	db $0, "I heard a sleepy", $4f
 	db "#MON appeared", $55
 	db "near CELADON CITY.", $57
@@ -126649,7 +125920,7 @@
 	db "to the building", $55
 	db "across the road.", $57
 
-_UndergroundPathEntranceRoute8Text1: ; 8c28d (23:428d)
+_UndergroundPathEntRoute8Text1: ; 8c28d (23:428d)
 	db $0, "The dept. store", $4f
 	db "in CELADON has a", $55
 	db "great selection!", $57
@@ -126810,7 +126081,7 @@
 	db "is by way of the", $55
 	db "ROCK TUNNEL.", $57
 
-_DiglettsCaveEntranceRoute11Text1: ; 8c7f9 (23:47f9)
+_DiglettsCaveEntRoute11Text1: ; 8c7f9 (23:47f9)
 	db $0, "What a surprise!", $4f
 	db "DIGLETTs dug this", $55
 	db "long tunnel!", $51
@@ -132182,24 +131453,24 @@
 	db $0, "ROOFTOP SQUARE:", $4f
 	db "VENDING MACHINES", $57
 
-_UnnamedText_74f99: ; 9ce72 (27:4e72)
+_VendingMachineText1: ; 9ce72 (27:4e72)
 	db $0, "A vending machine!", $4f
 	db "Here's the menu!", $58
 
-_UnnamedText_74fd3: ; 9ce96 (27:4e96)
+_VendingMachineText4: ; 9ce96 (27:4e96)
 	db $0, "Oops, not enough", $4f
 	db "money!", $57
 
-_UnnamedText_74fd8: ; 9ceaf (27:4eaf)
+_VendingMachineText5: ; 9ceaf (27:4eaf)
 	TX_RAM $cf4b
 	db $0, $4f
 	db "popped out!", $57
 
-_UnnamedText_74fdd: ; 9cec0 (27:4ec0)
+_VendingMachineText6: ; 9cec0 (27:4ec0)
 	db $0, "There's no more", $4f
 	db "room for stuff!", $57
 
-_UnnamedText_74fe2: ; 9cee0 (27:4ee0)
+_VendingMachineText7: ; 9cee0 (27:4ee0)
 	db $0, "Not thirsty!", $57
 
 _CeladonMansion1Text1: ; 9ceee (27:4eee)
@@ -134187,26 +133458,26 @@
 	db $0, "We hope to see", $4f
 	db "you again!", $57
 
-_UnnamedText_72b3: ; a292b (28:692b)
+_CableClubNPCText7: ; a292b (28:692b)
 	db $0, "This area is", $4f
 	db "reserved for 2", $55
 	db "friends who are", $55
 	db "linked by cable.", $57
 
-_UnnamedText_72b8: ; a2969 (28:6969)
+_CableClubNPCText1: ; a2969 (28:6969)
 	db $0, "Welcome to the", $4f
 	db "Cable Club!", $57
 
-_UnnamedText_72bd: ; a2985 (28:6985)
+_CableClubNPCText2: ; a2985 (28:6985)
 	db $0, "Please apply here.", $51
 	db "Before opening", $4f
 	db "the link, we have", $55
 	db "to save the game.", $57
 
-UnnamedText_a29cc: ; a29cc (28:69cc)
+_CableClubNPCText3: ; a29cc (28:69cc)
 	db $0, "Please wait.@@"
 
-_UnnamedText_72c8: ; a29db (28:69db)
+_CableClubNPCText4: ; a29db (28:69db)
 	db $0, "The link has been", $4f
 	db "closed because of", $55
 	db "inactivity.", $51
@@ -134216,10 +133487,10 @@
 
 SECTION "bank29",ROMX,BANK[$29]
 
-_UnnamedText_72cd: ; a4000 (29:4000)
+_CableClubNPCText5: ; a4000 (29:4000)
 	db $0, "Please come again!", $57
 
-_UnnamedText_72d2: ; a4014 (29:4014)
+_CableClubNPCText6: ; a4014 (29:4014)
 	db $0, "We're making", $4f
 	db "preparations.", $55
 	db "Please wait.", $57
--- a/wram.asm
+++ b/wram.asm
@@ -450,7 +450,13 @@
 W_TRAINERCLASS: ; d031
 	ds 1
 
-	ds 37
+	ds 24
+
+W_TRAINERNAME: ; d04a
+; 13 bytes for the letters of the opposing trainer
+; the name is terminated with $50 with possible
+; unused trailing letters
+	ds 13
 
 W_ISINBATTLE: ; d057
 ; no battle, this is 0
--