summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorentrpntr <entrpntr@gmail.com>2020-05-09 19:40:06 -0400
committerentrpntr <entrpntr@gmail.com>2020-05-09 19:40:06 -0400
commit14f623c65c3f80ade737ba9ace7f1ba132e71939 (patch)
treeb76722a7e9c1443cb836d09020887c79b703d104
parent566e2239d1544fbad2238e6d8550645b1b9d70c9 (diff)
Add engine/pokegear/pokegear.asm.
-rw-r--r--constants/landmark_constants.asm194
-rw-r--r--constants/map_data_constants.asm30
-rw-r--r--constants/sprite_anim_constants.asm7
-rw-r--r--data/maps/flypoints.asm30
-rw-r--r--data/maps/maps.asm738
-rw-r--r--engine/pokegear/pokegear.asm2878
-rw-r--r--gfx/pokegear/clock.tilemap.rle1
-rw-r--r--gfx/pokegear/dexmap_nest_icon.2bpp1
-rw-r--r--gfx/pokegear/fast_ship.2bppbin0 -> 128 bytes
-rw-r--r--gfx/pokegear/flymap_label_border.1bppbin0 -> 48 bytes
-rw-r--r--gfx/pokegear/johto.binbin0 -> 361 bytes
-rw-r--r--gfx/pokegear/kanto.binbin0 -> 361 bytes
-rw-r--r--gfx/pokegear/phone.tilemap.rle4
-rw-r--r--gfx/pokegear/pokegear_sprites.2bpp.lzbin0 -> 48 bytes
-rw-r--r--gfx/pokegear/radio.tilemap.rle5
-rw-r--r--gfx/pokegear/town_map_palette_map.asm29
-rwxr-xr-xhome/region.asm4
-rw-r--r--main.asm38
-rw-r--r--wram.asm40
19 files changed, 3508 insertions, 491 deletions
diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm
index 5fba4387..a0746ec1 100644
--- a/constants/landmark_constants.asm
+++ b/constants/landmark_constants.asm
@@ -1,104 +1,104 @@
-
+; Landmarks indexes (see data/maps/landmarks.asm)
const_def
- const SPECIAL_MAP ; 00
- const NEW_BARK_TOWN ; 01
- const ROUTE_29 ; 02
- const CHERRYGROVE_CITY ; 03
- const ROUTE_30 ; 04
- const ROUTE_31 ; 05
- const VIOLET_CITY ; 06
- const SPROUT_TOWER ; 07
- const ROUTE_32 ; 08
- const RUINS_OF_ALPH ; 09
- const UNION_CAVE ; 0a
- const ROUTE_33 ; 0b
- const AZALEA_TOWN ; 0c
- const SLOWPOKE_WELL ; 0d
- const ILEX_FOREST ; 0e
- const ROUTE_34 ; 0f
- const GOLDENROD_CITY ; 10
- const RADIO_TOWER ; 11
- const ROUTE_35 ; 12
- const NATIONAL_PARK ; 13
- const ROUTE_36 ; 14
- const ROUTE_37 ; 15
- const ECRUTEAK_CITY ; 16
- const TIN_TOWER ; 17
- const BURNED_TOWER ; 18
- const ROUTE_38 ; 19
- const ROUTE_39 ; 1a
- const OLIVINE_CITY ; 1b
- const LIGHTHOUSE ; 1c
- const ROUTE_40 ; 1d
- const WHIRL_ISLANDS ; 1e
- const ROUTE_41 ; 1f
- const CIANWOOD_CITY ; 20
- const ROUTE_42 ; 21
- const MT_MORTAR ; 22
- const MAHOGANY_TOWN ; 23
- const ROUTE_43 ; 24
- const LAKE_OF_RAGE ; 25
- const ROUTE_44 ; 26
- const ICE_PATH ; 27
- const BLACKTHORN_CITY ; 28
- const DRAGONS_DEN ; 29
- const ROUTE_45 ; 2a
- const DARK_CAVE ; 2b
- const ROUTE_46 ; 2c
- const SILVER_CAVE ; 2d
+; Johto landmarks
+ const LANDMARK_SPECIAL ; 00
+ const LANDMARK_NEW_BARK_TOWN ; 01
+ const LANDMARK_ROUTE_29 ; 02
+ const LANDMARK_CHERRYGROVE_CITY ; 03
+ const LANDMARK_ROUTE_30 ; 04
+ const LANDMARK_ROUTE_31 ; 05
+ const LANDMARK_VIOLET_CITY ; 06
+ const LANDMARK_SPROUT_TOWER ; 07
+ const LANDMARK_ROUTE_32 ; 08
+ const LANDMARK_RUINS_OF_ALPH ; 09
+ const LANDMARK_UNION_CAVE ; 0a
+ const LANDMARK_ROUTE_33 ; 0b
+ const LANDMARK_AZALEA_TOWN ; 0c
+ const LANDMARK_SLOWPOKE_WELL ; 0d
+ const LANDMARK_ILEX_FOREST ; 0e
+ const LANDMARK_ROUTE_34 ; 0f
+ const LANDMARK_GOLDENROD_CITY ; 10
+ const LANDMARK_RADIO_TOWER ; 11
+ const LANDMARK_ROUTE_35 ; 12
+ const LANDMARK_NATIONAL_PARK ; 13
+ const LANDMARK_ROUTE_36 ; 14
+ const LANDMARK_ROUTE_37 ; 15
+ const LANDMARK_ECRUTEAK_CITY ; 16
+ const LANDMARK_TIN_TOWER ; 17
+ const LANDMARK_BURNED_TOWER ; 18
+ const LANDMARK_ROUTE_38 ; 19
+ const LANDMARK_ROUTE_39 ; 1a
+ const LANDMARK_OLIVINE_CITY ; 1b
+ const LANDMARK_LIGHTHOUSE ; 1c
+ const LANDMARK_ROUTE_40 ; 1d
+ const LANDMARK_WHIRL_ISLANDS ; 1e
+ const LANDMARK_ROUTE_41 ; 1f
+ const LANDMARK_CIANWOOD_CITY ; 20
+ const LANDMARK_ROUTE_42 ; 21
+ const LANDMARK_MT_MORTAR ; 22
+ const LANDMARK_MAHOGANY_TOWN ; 23
+ const LANDMARK_ROUTE_43 ; 24
+ const LANDMARK_LAKE_OF_RAGE ; 25
+ const LANDMARK_ROUTE_44 ; 26
+ const LANDMARK_ICE_PATH ; 27
+ const LANDMARK_BLACKTHORN_CITY ; 28
+ const LANDMARK_DRAGONS_DEN ; 29
+ const LANDMARK_ROUTE_45 ; 2a
+ const LANDMARK_DARK_CAVE ; 2b
+ const LANDMARK_ROUTE_46 ; 2c
+ const LANDMARK_SILVER_CAVE ; 2d
KANTO_LANDMARK EQU const_value
-
- const PALLET_TOWN ; 2e
- const ROUTE_1 ; 2f
- const VIRIDIAN_CITY ; 30
- const ROUTE_2 ; 31
- const PEWTER_CITY ; 32
- const ROUTE_3 ; 33
- const MT_MOON ; 34
- const ROUTE_4 ; 35
- const CERULEAN_CITY ; 36
- const ROUTE_24 ; 37
- const ROUTE_25 ; 38
- const ROUTE_5 ; 39
- const UNDERGROUND_PATH ; 3a
- const ROUTE_6 ; 3b
- const VERMILION_CITY ; 3c
- const DIGLETTS_CAVE ; 3d
- const ROUTE_7 ; 3e
- const ROUTE_8 ; 3f
- const ROUTE_9 ; 40
- const ROCK_TUNNEL ; 41
- const ROUTE_10 ; 42
- const POWER_PLANT ; 43
- const LAVENDER_TOWN ; 44
- const LAV_RADIO_TOWER ; 45
- const CELADON_CITY ; 46
- const SAFFRON_CITY ; 47
- const ROUTE_11 ; 48
- const ROUTE_12 ; 49
- const ROUTE_13 ; 4a
- const ROUTE_14 ; 4b
- const ROUTE_15 ; 4c
- const ROUTE_16 ; 4d
- const ROUTE_17 ; 4e
- const ROUTE_18 ; 4f
- const FUCHSIA_CITY ; 50
- const ROUTE_19 ; 51
- const ROUTE_20 ; 52
- const SEAFOAM_ISLANDS ; 53
- const CINNABAR_ISLAND ; 54
- const ROUTE_21 ; 55
- const ROUTE_22 ; 56
- const VICTORY_ROAD ; 57
- const ROUTE_23 ; 58
- const INDIGO_PLATEAU ; 59
- const ROUTE_26 ; 5a
- const ROUTE_27 ; 5b
- const TOHJO_FALLS ; 5c
- const ROUTE_28 ; 5d
- const FAST_SHIP ; 5e
+ const LANDMARK_PALLET_TOWN ; 2e
+ const LANDMARK_ROUTE_1 ; 2f
+ const LANDMARK_VIRIDIAN_CITY ; 30
+ const LANDMARK_ROUTE_2 ; 31
+ const LANDMARK_PEWTER_CITY ; 32
+ const LANDMARK_ROUTE_3 ; 33
+ const LANDMARK_MT_MOON ; 34
+ const LANDMARK_ROUTE_4 ; 35
+ const LANDMARK_CERULEAN_CITY ; 36
+ const LANDMARK_ROUTE_24 ; 37
+ const LANDMARK_ROUTE_25 ; 38
+ const LANDMARK_ROUTE_5 ; 39
+ const LANDMARK_UNDERGROUND_PATH ; 3a
+ const LANDMARK_ROUTE_6 ; 3b
+ const LANDMARK_VERMILION_CITY ; 3c
+ const LANDMARK_DIGLETTS_CAVE ; 3d
+ const LANDMARK_ROUTE_7 ; 3e
+ const LANDMARK_ROUTE_8 ; 3f
+ const LANDMARK_ROUTE_9 ; 40
+ const LANDMARK_ROCK_TUNNEL ; 41
+ const LANDMARK_ROUTE_10 ; 42
+ const LANDMARK_POWER_PLANT ; 43
+ const LANDMARK_LAVENDER_TOWN ; 44
+ const LANDMARK_LAV_RADIO_TOWER ; 45
+ const LANDMARK_CELADON_CITY ; 46
+ const LANDMARK_SAFFRON_CITY ; 47
+ const LANDMARK_ROUTE_11 ; 48
+ const LANDMARK_ROUTE_12 ; 49
+ const LANDMARK_ROUTE_13 ; 4a
+ const LANDMARK_ROUTE_14 ; 4b
+ const LANDMARK_ROUTE_15 ; 4c
+ const LANDMARK_ROUTE_16 ; 4d
+ const LANDMARK_ROUTE_17 ; 4e
+ const LANDMARK_ROUTE_18 ; 4f
+ const LANDMARK_FUCHSIA_CITY ; 50
+ const LANDMARK_ROUTE_19 ; 51
+ const LANDMARK_ROUTE_20 ; 52
+ const LANDMARK_SEAFOAM_ISLANDS ; 53
+ const LANDMARK_CINNABAR_ISLAND ; 54
+ const LANDMARK_ROUTE_21 ; 55
+ const LANDMARK_ROUTE_22 ; 56
+ const LANDMARK_VICTORY_ROAD ; 57
+ const LANDMARK_ROUTE_23 ; 58
+ const LANDMARK_INDIGO_PLATEAU ; 59
+ const LANDMARK_ROUTE_26 ; 5a
+ const LANDMARK_ROUTE_27 ; 5b
+ const LANDMARK_TOHJO_FALLS ; 5c
+ const LANDMARK_ROUTE_28 ; 5d
+ const LANDMARK_FAST_SHIP ; 5e
; Regions
const_def
diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm
index 05322ffc..71fe803e 100644
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -99,6 +99,36 @@ const_value = -1
const SPAWN_FAST_SHIP
NUM_SPAWNS EQU const_value
+; Flypoints indexes (see data/maps/flypoints.asm)
+ const_def
+; johto
+ const FLY_NEW_BARK
+ const FLY_CHERRYGROVE
+ const FLY_VIOLET
+ const FLY_AZALEA
+ const FLY_GOLDENROD
+ const FLY_ECRUTEAK
+ const FLY_OLIVINE
+ const FLY_CIANWOOD
+ const FLY_MAHOGANY
+ const FLY_LAKE_OF_RAGE
+ const FLY_BLACKTHORN
+ const FLY_MT_SILVER
+; kanto
+KANTO_FLYPOINT EQU const_value
+ const FLY_PALLET
+ const FLY_VIRIDIAN
+ const FLY_PEWTER
+ const FLY_CERULEAN
+ const FLY_VERMILION
+ const FLY_ROCK_TUNNEL
+ const FLY_LAVENDER
+ const FLY_CELADON
+ const FLY_SAFFRON
+ const FLY_FUCHSIA
+ const FLY_CINNABAR
+ const FLY_INDIGO
+
; outdoor sprite limits (see engine/overworld/overworld.asm)
MAX_OUTDOOR_SPRITES EQU 11
SPRITE_GFX_LIST_CAPACITY EQU 12
diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm
index 173fb57d..727ab89a 100644
--- a/constants/sprite_anim_constants.asm
+++ b/constants/sprite_anim_constants.asm
@@ -20,14 +20,21 @@ SPRITEANIMSTRUCT_LENGTH EQU const_value
NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
; SpriteAnimSeqData indexes (see data/sprite_anims/sequences.asm)
+SPRITE_ANIM_INDEX_PARTY_MON EQU $00
+SPRITE_ANIM_INDEX_RED_WALK EQU $1c
+SPRITE_ANIM_INDEX_POKEGEAR_ARROW EQU $1f
SPRITE_ANIM_INDEX_TRADE_POKE_BALL EQU $20
SPRITE_ANIM_INDEX_TRADE_POOF EQU $21
SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE EQU $22
SPRITE_ANIM_INDEX_TRADEMON_ICON EQU $23
SPRITE_ANIM_INDEX_TRADEMON_BUBBLE EQU $24
+SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB EQU $26
SPRITE_ANIM_INDEX_EGG_CRACK EQU $2b
SPRITE_ANIM_INDEX_EGG_HATCH EQU $2e
+; DoAnimFrame.Jumptable indexes (see engine/gfx/sprite_anims.asm)
+SPRITE_ANIM_SEQ_NULL EQU $00
+
; SpriteAnimFrameData indexes (see data/sprite_anims/framesets.asm)
const_def
const SPRITE_ANIM_FRAMESET_00 ; 00
diff --git a/data/maps/flypoints.asm b/data/maps/flypoints.asm
new file mode 100644
index 00000000..e3578daa
--- /dev/null
+++ b/data/maps/flypoints.asm
@@ -0,0 +1,30 @@
+Flypoints:
+; entries correspond to FLY_* constants
+; Johto
+ ; landmark, spawn point
+ db LANDMARK_NEW_BARK_TOWN, SPAWN_NEW_BARK
+ db LANDMARK_CHERRYGROVE_CITY, SPAWN_CHERRYGROVE
+ db LANDMARK_VIOLET_CITY, SPAWN_VIOLET
+ db LANDMARK_AZALEA_TOWN, SPAWN_AZALEA
+ db LANDMARK_GOLDENROD_CITY, SPAWN_GOLDENROD
+ db LANDMARK_ECRUTEAK_CITY, SPAWN_ECRUTEAK
+ db LANDMARK_OLIVINE_CITY, SPAWN_OLIVINE
+ db LANDMARK_CIANWOOD_CITY, SPAWN_CIANWOOD
+ db LANDMARK_MAHOGANY_TOWN, SPAWN_MAHOGANY
+ db LANDMARK_LAKE_OF_RAGE, SPAWN_LAKE_OF_RAGE
+ db LANDMARK_BLACKTHORN_CITY, SPAWN_BLACKTHORN
+ db LANDMARK_SILVER_CAVE, SPAWN_MT_SILVER
+; Kanto
+ db LANDMARK_PALLET_TOWN, SPAWN_PALLET
+ db LANDMARK_VIRIDIAN_CITY, SPAWN_VIRIDIAN
+ db LANDMARK_PEWTER_CITY, SPAWN_PEWTER
+ db LANDMARK_CERULEAN_CITY, SPAWN_CERULEAN
+ db LANDMARK_VERMILION_CITY, SPAWN_VERMILION
+ db LANDMARK_ROCK_TUNNEL, SPAWN_ROCK_TUNNEL
+ db LANDMARK_LAVENDER_TOWN, SPAWN_LAVENDER
+ db LANDMARK_CELADON_CITY, SPAWN_CELADON
+ db LANDMARK_SAFFRON_CITY, SPAWN_SAFFRON
+ db LANDMARK_FUCHSIA_CITY, SPAWN_FUCHSIA
+ db LANDMARK_CINNABAR_ISLAND, SPAWN_CINNABAR
+ db LANDMARK_INDIGO_PLATEAU, SPAWN_INDIGO
+ db -1
diff --git a/data/maps/maps.asm b/data/maps/maps.asm
index 339becec..46155310 100644
--- a/data/maps/maps.asm
+++ b/data/maps/maps.asm
@@ -2,7 +2,7 @@ map: MACRO
;\1: map name: for the MapAttributes pointer (see data/maps/attributes.asm)
;\2: tileset: a TILESET_* constant
;\3: environment: TOWN, ROUTE, INDOOR, CAVE, ENVIRONMENT_5, GATE, or DUNGEON
-;\4: location: from constants/landmark_constants.asm
+;\4: location: a LANDMARK_* constant
;\5: music: a MUSIC_* constant
;\6: phone service flag: TRUE to prevent phone calls
;\7: time of day: a PALETTE_* constant
@@ -44,421 +44,421 @@ MapGroupPointers::
dw MapGroup_Cherrygrove ; 26
MapGroup_Olivine:
- map OlivinePokecenter1F, TILESET_POKECENTER, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineGym, TILESET_CHAMPIONS_ROOM, INDOOR, OLIVINE_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineTimsHouse, TILESET_HOUSE, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineHouseBeta, TILESET_HOUSE, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivinePunishmentSpeechHouse, TILESET_HOUSE, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineGoodRodHouse, TILESET_HOUSE, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineCafe, TILESET_GAME_CORNER, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineMart, TILESET_MART, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route38EcruteakGate, TILESET_GATE, GATE, ROUTE_38, MUSIC_ROUTE_37, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route39Barn, TILESET_TRADITIONAL_HOUSE, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route39Farmhouse, TILESET_HOUSE, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route38, TILESET_JOHTO, ROUTE, ROUTE_38, MUSIC_ROUTE_37, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route39, TILESET_JOHTO, ROUTE, ROUTE_39, MUSIC_ROUTE_37, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map OlivineCity, TILESET_JOHTO, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map OlivinePokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineGym, TILESET_CHAMPIONS_ROOM, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineTimsHouse, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineHouseBeta, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivinePunishmentSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineGoodRodHouse, TILESET_HOUSE, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineCafe, TILESET_GAME_CORNER, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineMart, TILESET_MART, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route38EcruteakGate, TILESET_GATE, GATE, LANDMARK_ROUTE_38, MUSIC_ROUTE_37, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route39Barn, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ROUTE_39, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route39Farmhouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_39, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route38, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_38, MUSIC_ROUTE_37, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route39, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_39, MUSIC_ROUTE_37, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map OlivineCity, TILESET_JOHTO, TOWN, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
MapGroup_Mahogany:
- map MahoganyRedGyaradosSpeechHouse, TILESET_HOUSE, INDOOR, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map MahoganyGym, TILESET_ELITE_FOUR_ROOM, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map MahoganyPokecenter1F, TILESET_POKECENTER, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route42EcruteakGate, TILESET_GATE, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route42, TILESET_JOHTO, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
- map Route44, TILESET_JOHTO, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_REMORAID
- map MahoganyTown, TILESET_JOHTO, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map MahoganyRedGyaradosSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map MahoganyGym, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map MahoganyPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route42EcruteakGate, TILESET_GATE, GATE, LANDMARK_ROUTE_42, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route42, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_42, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
+ map Route44, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_44, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_REMORAID
+ map MahoganyTown, TILESET_JOHTO, TOWN, LANDMARK_MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
MapGroup_Dungeons:
- map SproutTower1F, TILESET_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SproutTower2F, TILESET_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SproutTower3F, TILESET_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower1F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower2F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower3F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower4F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower5F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower6F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower7F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower8F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTower9F, TILESET_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map BurnedTower1F, TILESET_TOWER, DUNGEON, BURNED_TOWER, MUSIC_BURNED_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map BurnedTowerB1F, TILESET_CAVE, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map NationalPark, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map NationalParkBugContest, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map RadioTower1F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RadioTower2F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RuinsOfAlphOutside, TILESET_JOHTO, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map RuinsOfAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RuinsOfAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RuinsOfAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RuinsOfAlphAerodactylChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RuinsOfAlphInnerChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map RuinsOfAlphResearchCenter, TILESET_FACILITY, INDOOR, RUINS_OF_ALPH, MUSIC_UNION_CAVE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map UnionCave1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
- map UnionCaveB1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
- map UnionCaveB2F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_SHORE
- map SlowpokeWellB1F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
- map SlowpokeWellB2F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
- map OlivineLighthouse1F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineLighthouse2F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineLighthouse3F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineLighthouse4F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineLighthouse5F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivineLighthouse6F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map MahoganyMart1F, TILESET_TRADITIONAL_HOUSE, INDOOR, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map TeamRocketBaseB1F, TILESET_UNDERGROUND, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map TeamRocketBaseB2F, TILESET_FACILITY, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map TeamRocketBaseB3F, TILESET_FACILITY, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map IlexForest, TILESET_FOREST, CAVE, ILEX_FOREST, MUSIC_UNION_CAVE, FALSE, PALETTE_NITE, FISHGROUP_POND
- map GoldenrodUnderground, TILESET_GATE, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodUndergroundSwitchRoomEntrances, TILESET_ELITE_FOUR_ROOM, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodDeptStoreB1F, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodUndergroundWarehouse, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map MountMortar1FOutside, TILESET_DARK_CAVE, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
- map MountMortar1FInside, TILESET_DARK_CAVE, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
- map MountMortar2FInside, TILESET_DARK_CAVE, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
- map MountMortarB1F, TILESET_DARK_CAVE, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
- map IcePath1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
- map IcePathB1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
- map IcePathB2FMahoganySide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
- map IcePathB2FBlackthornSide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
- map IcePathB3F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
- map WhirlIslandNW, TILESET_DARK_CAVE, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
- map WhirlIslandNE, TILESET_DARK_CAVE, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
- map WhirlIslandSW, TILESET_DARK_CAVE, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
- map WhirlIslandCave, TILESET_DARK_CAVE, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
- map WhirlIslandSE, TILESET_DARK_CAVE, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
- map WhirlIslandB1F, TILESET_DARK_CAVE, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
- map WhirlIslandB2F, TILESET_DARK_CAVE, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
- map WhirlIslandLugiaChamber, TILESET_DARK_CAVE, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
- map SilverCaveRoom1, TILESET_DARK_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
- map SilverCaveRoom2, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
- map SilverCaveRoom3, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_DAY, FISHGROUP_LAKE
- map SilverCaveItemRooms, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
- map DarkCaveVioletEntrance, TILESET_DARK_CAVE, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
- map DarkCaveBlackthornEntrance, TILESET_DARK_CAVE, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
- map DragonsDen1F, TILESET_CAVE, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
- map DragonsDenB1F, TILESET_JOHTO, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
- map TohjoFalls, TILESET_CAVE, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
- map DiglettsCave, TILESET_CAVE, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, TRUE, PALETTE_NITE, FISHGROUP_SHORE
- map MountMoon, TILESET_CAVE, CAVE, MT_MOON, MUSIC_MT_MOON, TRUE, PALETTE_NITE, FISHGROUP_SHORE
- map UndergroundPath, TILESET_UNDERGROUND, GATE, UNDERGROUND_PATH, MUSIC_MT_MOON, FALSE, PALETTE_NITE, FISHGROUP_SHORE
- map RockTunnel1F, TILESET_DARK_CAVE, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, TRUE, PALETTE_DARK, FISHGROUP_SHORE
- map RockTunnelB1F, TILESET_DARK_CAVE, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, TRUE, PALETTE_DARK, FISHGROUP_SHORE
- map SafariZoneFuchsiaGateBeta, TILESET_GATE, INDOOR, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SafariZoneBeta, TILESET_PARK, CAVE, FUCHSIA_CITY, MUSIC_EVOLUTION, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map VictoryRoad, TILESET_CAVE, CAVE, VICTORY_ROAD, MUSIC_VICTORY_ROAD, TRUE, PALETTE_NITE, FISHGROUP_SHORE
+ map SproutTower1F, TILESET_TOWER, DUNGEON, LANDMARK_SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SproutTower2F, TILESET_TOWER, DUNGEON, LANDMARK_SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SproutTower3F, TILESET_TOWER, DUNGEON, LANDMARK_SPROUT_TOWER, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower1F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower2F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower3F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower4F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower5F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower6F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower7F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower8F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTower9F, TILESET_TOWER, DUNGEON, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map BurnedTower1F, TILESET_TOWER, DUNGEON, LANDMARK_BURNED_TOWER, MUSIC_BURNED_TOWER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map BurnedTowerB1F, TILESET_CAVE, CAVE, LANDMARK_BURNED_TOWER, MUSIC_BURNED_TOWER, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map NationalPark, TILESET_PARK, ROUTE, LANDMARK_NATIONAL_PARK, MUSIC_NATIONAL_PARK, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map NationalParkBugContest, TILESET_PARK, ROUTE, LANDMARK_NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map RadioTower1F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RadioTower2F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RadioTower3F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RadioTower4F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RadioTower5F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_RADIO_TOWER, RADIO_TOWER_MUSIC | MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RuinsOfAlphOutside, TILESET_JOHTO, ROUTE, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map RuinsOfAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RuinsOfAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RuinsOfAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RuinsOfAlphAerodactylChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RuinsOfAlphInnerChamber, TILESET_RUINS_OF_ALPH, DUNGEON, LANDMARK_RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map RuinsOfAlphResearchCenter, TILESET_FACILITY, INDOOR, LANDMARK_RUINS_OF_ALPH, MUSIC_UNION_CAVE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map UnionCave1F, TILESET_CAVE, CAVE, LANDMARK_UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
+ map UnionCaveB1F, TILESET_CAVE, CAVE, LANDMARK_UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
+ map UnionCaveB2F, TILESET_CAVE, CAVE, LANDMARK_UNION_CAVE, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_SHORE
+ map SlowpokeWellB1F, TILESET_CAVE, CAVE, LANDMARK_SLOWPOKE_WELL, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
+ map SlowpokeWellB2F, TILESET_CAVE, CAVE, LANDMARK_SLOWPOKE_WELL, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
+ map OlivineLighthouse1F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineLighthouse2F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineLighthouse3F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineLighthouse4F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineLighthouse5F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_LIGHTHOUSE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivineLighthouse6F, TILESET_LIGHTHOUSE, DUNGEON, LANDMARK_LIGHTHOUSE, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map MahoganyMart1F, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map TeamRocketBaseB1F, TILESET_UNDERGROUND, DUNGEON, LANDMARK_MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map TeamRocketBaseB2F, TILESET_FACILITY, DUNGEON, LANDMARK_MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map TeamRocketBaseB3F, TILESET_FACILITY, DUNGEON, LANDMARK_MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map IlexForest, TILESET_FOREST, CAVE, LANDMARK_ILEX_FOREST, MUSIC_UNION_CAVE, FALSE, PALETTE_NITE, FISHGROUP_POND
+ map GoldenrodUnderground, TILESET_GATE, DUNGEON, LANDMARK_GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodUndergroundSwitchRoomEntrances, TILESET_ELITE_FOUR_ROOM, DUNGEON, LANDMARK_GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodDeptStoreB1F, TILESET_UNDERGROUND, DUNGEON, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodUndergroundWarehouse, TILESET_UNDERGROUND, DUNGEON, LANDMARK_GOLDENROD_CITY, MUSIC_UNION_CAVE, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map MountMortar1FOutside, TILESET_DARK_CAVE, CAVE, LANDMARK_MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
+ map MountMortar1FInside, TILESET_DARK_CAVE, CAVE, LANDMARK_MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
+ map MountMortar2FInside, TILESET_DARK_CAVE, CAVE, LANDMARK_MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
+ map MountMortarB1F, TILESET_DARK_CAVE, CAVE, LANDMARK_MT_MORTAR, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
+ map IcePath1F, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
+ map IcePathB1F, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
+ map IcePathB2FMahoganySide, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
+ map IcePathB2FBlackthornSide, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
+ map IcePathB3F, TILESET_ICE_PATH, CAVE, LANDMARK_ICE_PATH, MUSIC_DARK_CAVE, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
+ map WhirlIslandNW, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+ map WhirlIslandNE, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+ map WhirlIslandSW, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+ map WhirlIslandCave, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+ map WhirlIslandSE, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+ map WhirlIslandB1F, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+ map WhirlIslandB2F, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+ map WhirlIslandLugiaChamber, TILESET_DARK_CAVE, CAVE, LANDMARK_WHIRL_ISLANDS, MUSIC_UNION_CAVE, TRUE, PALETTE_DARK, FISHGROUP_WHIRL_ISLANDS
+ map SilverCaveRoom1, TILESET_DARK_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
+ map SilverCaveRoom2, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
+ map SilverCaveRoom3, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_DAY, FISHGROUP_LAKE
+ map SilverCaveItemRooms, TILESET_CAVE, CAVE, LANDMARK_SILVER_CAVE, MUSIC_LIGHTHOUSE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
+ map DarkCaveVioletEntrance, TILESET_DARK_CAVE, CAVE, LANDMARK_DARK_CAVE, MUSIC_DARK_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
+ map DarkCaveBlackthornEntrance, TILESET_DARK_CAVE, CAVE, LANDMARK_DARK_CAVE, MUSIC_DARK_CAVE, TRUE, PALETTE_DARK, FISHGROUP_LAKE
+ map DragonsDen1F, TILESET_CAVE, CAVE, LANDMARK_DRAGONS_DEN, MUSIC_DRAGONS_DEN, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
+ map DragonsDenB1F, TILESET_JOHTO, CAVE, LANDMARK_DRAGONS_DEN, MUSIC_DRAGONS_DEN, TRUE, PALETTE_NITE, FISHGROUP_DRATINI
+ map TohjoFalls, TILESET_CAVE, CAVE, LANDMARK_TOHJO_FALLS, MUSIC_UNION_CAVE, TRUE, PALETTE_NITE, FISHGROUP_LAKE
+ map DiglettsCave, TILESET_CAVE, CAVE, LANDMARK_DIGLETTS_CAVE, MUSIC_MT_MOON, TRUE, PALETTE_NITE, FISHGROUP_SHORE
+ map MountMoon, TILESET_CAVE, CAVE, LANDMARK_MT_MOON, MUSIC_MT_MOON, TRUE, PALETTE_NITE, FISHGROUP_SHORE
+ map UndergroundPath, TILESET_UNDERGROUND, GATE, LANDMARK_UNDERGROUND_PATH, MUSIC_MT_MOON, FALSE, PALETTE_NITE, FISHGROUP_SHORE
+ map RockTunnel1F, TILESET_DARK_CAVE, CAVE, LANDMARK_ROCK_TUNNEL, MUSIC_MT_MOON, TRUE, PALETTE_DARK, FISHGROUP_SHORE
+ map RockTunnelB1F, TILESET_DARK_CAVE, CAVE, LANDMARK_ROCK_TUNNEL, MUSIC_MT_MOON, TRUE, PALETTE_DARK, FISHGROUP_SHORE
+ map SafariZoneFuchsiaGateBeta, TILESET_GATE, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SafariZoneBeta, TILESET_PARK, CAVE, LANDMARK_FUCHSIA_CITY, MUSIC_EVOLUTION, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map VictoryRoad, TILESET_CAVE, CAVE, LANDMARK_VICTORY_ROAD, MUSIC_VICTORY_ROAD, TRUE, PALETTE_NITE, FISHGROUP_SHORE
MapGroup_Ecruteak:
- map EcruteakTinTowerEntrance, TILESET_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map WiseTriosRoom, TILESET_TRADITIONAL_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map EcruteakPokecenter1F, TILESET_POKECENTER, INDOOR, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map EcruteakLugiaSpeechHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map DanceTheatre, TILESET_TRADITIONAL_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_DANCING_HALL, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map EcruteakMart, TILESET_MART, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map EcruteakGym, TILESET_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map EcruteakItemfinderHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map EcruteakCity, TILESET_JOHTO, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map EcruteakTinTowerEntrance, TILESET_TOWER, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map WiseTriosRoom, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map EcruteakPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map EcruteakLugiaSpeechHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map DanceTheatre, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_DANCING_HALL, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map EcruteakMart, TILESET_MART, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map EcruteakGym, TILESET_TOWER, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map EcruteakItemfinderHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map EcruteakCity, TILESET_JOHTO, TOWN, LANDMARK_ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
MapGroup_Blackthorn:
- map BlackthornGym1F, TILESET_ELITE_FOUR_ROOM, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map BlackthornGym2F, TILESET_ELITE_FOUR_ROOM, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map BlackthornDragonSpeechHouse, TILESET_HOUSE, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map BlackthornEmysHouse, TILESET_HOUSE, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map BlackthornMart, TILESET_MART, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map BlackthornPokecenter1F, TILESET_POKECENTER, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map MoveDeletersHouse, TILESET_HOUSE, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route45, TILESET_JOHTO, ROUTE, ROUTE_45, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_DRATINI_2
- map Route46, TILESET_JOHTO, ROUTE, ROUTE_46, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map BlackthornCity, TILESET_JOHTO, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map BlackthornGym1F, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map BlackthornGym2F, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map BlackthornDragonSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map BlackthornEmysHouse, TILESET_HOUSE, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map BlackthornMart, TILESET_MART, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map BlackthornPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map MoveDeletersHouse, TILESET_HOUSE, INDOOR, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route45, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_45, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_DRATINI_2
+ map Route46, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_46, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map BlackthornCity, TILESET_JOHTO, TOWN, LANDMARK_BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_POND
MapGroup_Cinnabar:
- map CinnabarPokecenter1F, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CinnabarPokecenter2FBeta, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route19FuchsiaGate, TILESET_GATE, GATE, ROUTE_19, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SeafoamGym, TILESET_CAVE, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map Route19, TILESET_KANTO, ROUTE, ROUTE_19, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route20, TILESET_KANTO, ROUTE, ROUTE_20, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map Route21, TILESET_KANTO, ROUTE, ROUTE_21, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map CinnabarIsland, TILESET_KANTO, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map CinnabarPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CinnabarPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route19FuchsiaGate, TILESET_GATE, GATE, LANDMARK_ROUTE_19, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SeafoamGym, TILESET_CAVE, INDOOR, LANDMARK_SEAFOAM_ISLANDS, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route19, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_19, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route20, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_20, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map Route21, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_21, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map CinnabarIsland, TILESET_KANTO, TOWN, LANDMARK_CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
MapGroup_Cerulean:
- map CeruleanGymBadgeSpeechHouse, TILESET_HOUSE, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeruleanPoliceStation, TILESET_HOUSE, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeruleanTradeSpeechHouse, TILESET_HOUSE, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeruleanPokecenter1F, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeruleanPokecenter2FBeta, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeruleanGym, TILESET_PORT, INDOOR, CERULEAN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map CeruleanMart, TILESET_MART, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route10Pokecenter1F, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route10Pokecenter2FBeta, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PowerPlant, TILESET_FACILITY, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map BillsHouse, TILESET_HOUSE, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route4, TILESET_KANTO, ROUTE, ROUTE_4, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
- map Route9, TILESET_KANTO, ROUTE, ROUTE_9, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
- map Route10North, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
- map Route24, TILESET_KANTO, ROUTE, ROUTE_24, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
- map Route25, TILESET_KANTO, ROUTE, ROUTE_25, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
- map CeruleanCity, TILESET_KANTO, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
+ map CeruleanGymBadgeSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeruleanPoliceStation, TILESET_HOUSE, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeruleanTradeSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeruleanPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeruleanPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeruleanGym, TILESET_PORT, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeruleanMart, TILESET_MART, INDOOR, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route10Pokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_ROUTE_10, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route10Pokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_ROUTE_10, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PowerPlant, TILESET_FACILITY, INDOOR, LANDMARK_POWER_PLANT, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map BillsHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_25, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route4, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_4, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
+ map Route9, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_9, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
+ map Route10North, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_10, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
+ map Route24, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_24, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
+ map Route25, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_25, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
+ map CeruleanCity, TILESET_KANTO, TOWN, LANDMARK_CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
MapGroup_Azalea:
- map AzaleaPokecenter1F, TILESET_POKECENTER, INDOOR, AZALEA_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CharcoalKiln, TILESET_HOUSE, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map AzaleaMart, TILESET_MART, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map KurtsHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map AzaleaGym, TILESET_ELITE_FOUR_ROOM, INDOOR, AZALEA_TOWN, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map Route33, TILESET_JOHTO_MODERN, ROUTE, ROUTE_33, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map AzaleaTown, TILESET_JOHTO_MODERN, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map AzaleaPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CharcoalKiln, TILESET_HOUSE, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map AzaleaMart, TILESET_MART, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map KurtsHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map AzaleaGym, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_AZALEA_TOWN, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route33, TILESET_JOHTO_MODERN, ROUTE, LANDMARK_ROUTE_33, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map AzaleaTown, TILESET_JOHTO_MODERN, TOWN, LANDMARK_AZALEA_TOWN, MUSIC_AZALEA_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
MapGroup_LakeOfRage:
- map LakeOfRageHiddenPowerHouse, TILESET_HOUSE, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map LakeOfRageMagikarpHouse, TILESET_HOUSE, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route43MahoganyGate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route43Gate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route43, TILESET_JOHTO, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map LakeOfRage, TILESET_JOHTO, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_GYARADOS
+ map LakeOfRageHiddenPowerHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map LakeOfRageMagikarpHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route43MahoganyGate, TILESET_GATE, GATE, LANDMARK_ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route43Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route43, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_43, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map LakeOfRage, TILESET_JOHTO, TOWN, LANDMARK_LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, FALSE, PALETTE_AUTO, FISHGROUP_GYARADOS
MapGroup_Violet:
- map Route32, TILESET_JOHTO, ROUTE, ROUTE_32, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH
- map Route35, TILESET_JOHTO, ROUTE, ROUTE_35, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map Route36, TILESET_JOHTO, ROUTE, ROUTE_36, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route37, TILESET_JOHTO, ROUTE, ROUTE_37, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map VioletCity, TILESET_JOHTO, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map VioletMart, TILESET_MART, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VioletGym, TILESET_ELITE_FOUR_ROOM, INDOOR, VIOLET_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VioletNicknameSpeechHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VioletPokecenter1F, TILESET_POKECENTER, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VioletKylesHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route32RuinsOfAlphGate, TILESET_GATE, GATE, ROUTE_32, MUSIC_ROUTE_30, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route32Pokecenter1F, TILESET_POKECENTER, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route35GoldenrodGate, TILESET_GATE, GATE, ROUTE_35, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route35NationalParkGate, TILESET_GATE, INDOOR, ROUTE_35, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route36RuinsOfAlphGate, TILESET_GATE, GATE, ROUTE_36, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route36NationalParkGate, TILESET_GATE, INDOOR, ROUTE_36, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route32, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_32, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH
+ map Route35, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_35, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map Route36, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_36, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route37, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_37, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map VioletCity, TILESET_JOHTO, TOWN, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map VioletMart, TILESET_MART, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VioletGym, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map EarlsPokemonAcademy, TILESET_LAB, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VioletNicknameSpeechHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VioletPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VioletKylesHouse, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_VIOLET_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route32RuinsOfAlphGate, TILESET_GATE, GATE, LANDMARK_ROUTE_32, MUSIC_ROUTE_30, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route32Pokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_ROUTE_32, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route35GoldenrodGate, TILESET_GATE, GATE, LANDMARK_ROUTE_35, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route35NationalParkGate, TILESET_GATE, INDOOR, LANDMARK_ROUTE_35, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route36RuinsOfAlphGate, TILESET_GATE, GATE, LANDMARK_ROUTE_36, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route36NationalParkGate, TILESET_GATE, INDOOR, LANDMARK_ROUTE_36, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Goldenrod:
- map Route34, TILESET_JOHTO_MODERN, ROUTE, ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map GoldenrodCity, TILESET_JOHTO_MODERN, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map GoldenrodGym, TILESET_ELITE_FOUR_ROOM, INDOOR, GOLDENROD_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodBikeShop, TILESET_CHAMPIONS_ROOM, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodHappinessRater, TILESET_HOUSE, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map BillsFamilysHouse, TILESET_HOUSE, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodFlowerShop, TILESET_HOUSE, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodPokecenter1F, TILESET_POKECENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodPPSpeechHouse, TILESET_HOUSE, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodNameRater, TILESET_HOUSE, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodDeptStore1F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodDeptStore2F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodDeptStore3F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodDeptStore4F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodDeptStore5F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodDeptStore6F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodDeptStoreElevator, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map IlexForestAzaleaGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route34IlexForestGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map DayCare, TILESET_HOUSE, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route34, TILESET_JOHTO_MODERN, ROUTE, LANDMARK_ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map GoldenrodCity, TILESET_JOHTO_MODERN, TOWN, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map GoldenrodGym, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodBikeShop, TILESET_CHAMPIONS_ROOM, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodHappinessRater, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map BillsFamilysHouse, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodFlowerShop, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodPPSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodNameRater, TILESET_HOUSE, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodDeptStore1F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodDeptStore2F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodDeptStore3F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodDeptStore4F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodDeptStore5F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodDeptStore6F, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodDeptStoreElevator, TILESET_MART, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, LANDMARK_GOLDENROD_CITY, MUSIC_GAME_CORNER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map IlexForestAzaleaGate, TILESET_GATE, GATE, LANDMARK_ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route34IlexForestGate, TILESET_GATE, GATE, LANDMARK_ROUTE_34, MUSIC_ROUTE_36, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map DayCare, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_34, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Vermilion:
- map Route6, TILESET_KANTO, ROUTE, ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map Route11, TILESET_KANTO, ROUTE, ROUTE_11, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map VermilionCity, TILESET_KANTO, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map VermilionFishingSpeechHouse, TILESET_HOUSE, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VermilionPokecenter1F, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VermilionPokecenter2FBeta, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PokemonFanClub, TILESET_HOUSE, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VermilionMagnetTrainSpeechHouse, TILESET_HOUSE, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VermilionMart, TILESET_MART, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VermilionDiglettsCaveSpeechHouse, TILESET_HOUSE, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VermilionGym, TILESET_GAME_CORNER, INDOOR, VERMILION_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map Route6SaffronGate, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route6UndergroundPathEntrance, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route6, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map Route11, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_11, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map VermilionCity, TILESET_KANTO, TOWN, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map VermilionFishingSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VermilionPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VermilionPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PokemonFanClub, TILESET_HOUSE, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VermilionMagnetTrainSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VermilionMart, TILESET_MART, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VermilionDiglettsCaveSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VermilionGym, TILESET_GAME_CORNER, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route6SaffronGate, TILESET_GATE, GATE, LANDMARK_ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route6UndergroundPathEntrance, TILESET_GATE, GATE, LANDMARK_ROUTE_6, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Pallet:
- map Route1, TILESET_KANTO, ROUTE, ROUTE_1, MUSIC_ROUTE_1, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map PalletTown, TILESET_KANTO, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map RedsHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map RedsHouse2F, TILESET_PLAYERS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map BluesHouse, TILESET_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OaksLab, TILESET_LAB, INDOOR, PALLET_TOWN, MUSIC_POKEMON_TALK, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route1, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_1, MUSIC_ROUTE_1, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map PalletTown, TILESET_KANTO, TOWN, LANDMARK_PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map RedsHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map RedsHouse2F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map BluesHouse, TILESET_HOUSE, INDOOR, LANDMARK_PALLET_TOWN, MUSIC_PALLET_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OaksLab, TILESET_LAB, INDOOR, LANDMARK_PALLET_TOWN, MUSIC_POKEMON_TALK, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Pewter:
- map Route3, TILESET_KANTO, ROUTE, ROUTE_3, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map PewterCity, TILESET_KANTO, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map PewterNidoranSpeechHouse, TILESET_HOUSE, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PewterGym, TILESET_TOWER, INDOOR, PEWTER_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map PewterMart, TILESET_MART, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PewterPokecenter1F, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PewterPokecenter2FBeta, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PewterSnoozeSpeechHouse, TILESET_HOUSE, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route3, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_3, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map PewterCity, TILESET_KANTO, TOWN, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map PewterNidoranSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PewterGym, TILESET_TOWER, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map PewterMart, TILESET_MART, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PewterPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PewterPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PewterSnoozeSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_PEWTER_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_FastShip:
- map OlivinePort, TILESET_PORT, ROUTE, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map VermilionPort, TILESET_PORT, ROUTE, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map FastShip1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map FastShipCabins_NNW_NNE_NE, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map FastShipCabins_SW_SSW_NW, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map FastShipCabins_SE_SSE_CaptainsCabin, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map MountMoonSquare, TILESET_KANTO, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map MountMoonGiftShop, TILESET_TRADITIONAL_HOUSE, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TinTowerRoof, TILESET_TOWER, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map OlivinePort, TILESET_PORT, ROUTE, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map VermilionPort, TILESET_PORT, ROUTE, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map FastShip1F, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map FastShipCabins_NNW_NNE_NE, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map FastShipCabins_SW_SSW_NW, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map FastShipCabins_SE_SSE_CaptainsCabin, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, LANDMARK_FAST_SHIP, MUSIC_SS_AQUA, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, LANDMARK_OLIVINE_CITY, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, LANDMARK_VERMILION_CITY, MUSIC_VERMILION_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map MountMoonSquare, TILESET_KANTO, ROUTE, LANDMARK_MT_MOON, MUSIC_MT_MOON_SQUARE, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map MountMoonGiftShop, TILESET_TRADITIONAL_HOUSE, INDOOR, LANDMARK_MT_MOON, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TinTowerRoof, TILESET_TOWER, ROUTE, LANDMARK_TIN_TOWER, MUSIC_TIN_TOWER, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
MapGroup_Indigo:
- map Route23, TILESET_KANTO, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map IndigoPlateauPokecenter1F, TILESET_POKECENTER, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map WillsRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map KogasRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map BrunosRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map KarensRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map LancesRoom, TILESET_CHAMPIONS_ROOM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map HallOfFame, TILESET_ICE_PATH, INDOOR, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route23, TILESET_KANTO, TOWN, LANDMARK_ROUTE_23, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map IndigoPlateauPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map WillsRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map KogasRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map BrunosRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map KarensRoom, TILESET_ELITE_FOUR_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map LancesRoom, TILESET_CHAMPIONS_ROOM, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map HallOfFame, TILESET_ICE_PATH, INDOOR, LANDMARK_INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, TRUE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Fuchsia:
- map Route13, TILESET_KANTO, ROUTE, ROUTE_13, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH_NO_SWARM
- map Route14, TILESET_KANTO, ROUTE, ROUTE_14, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route15, TILESET_KANTO, ROUTE, ROUTE_15, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route18, TILESET_KANTO, ROUTE, ROUTE_18, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map FuchsiaCity, TILESET_KANTO, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_AUTO, FISHGROUP_GYARADOS
- map FuchsiaMart, TILESET_MART, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map FuchsiaGym, TILESET_LAB, INDOOR, FUCHSIA_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map BillsBrothersHouse, TILESET_HOUSE, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map FuchsiaPokecenter1F, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map FuchsiaPokecenter2FBeta, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SafariZoneWardensHome, TILESET_HOUSE, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route15FuchsiaGate, TILESET_GATE, GATE, ROUTE_15, MUSIC_ROUTE_12, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route13, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_13, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH_NO_SWARM
+ map Route14, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_14, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route15, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_15, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route18, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_18, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map FuchsiaCity, TILESET_KANTO, TOWN, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_AUTO, FISHGROUP_GYARADOS
+ map FuchsiaMart, TILESET_MART, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map FuchsiaGym, TILESET_LAB, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map BillsBrothersHouse, TILESET_HOUSE, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map FuchsiaPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map FuchsiaPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SafariZoneWardensHome, TILESET_HOUSE, INDOOR, LANDMARK_FUCHSIA_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route15FuchsiaGate, TILESET_GATE, GATE, LANDMARK_ROUTE_15, MUSIC_ROUTE_12, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Lavender:
- map Route8, TILESET_KANTO, ROUTE, ROUTE_8, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route12, TILESET_KANTO, ROUTE, ROUTE_12, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH_NO_SWARM
- map Route10South, TILESET_KANTO, ROUTE, ROUTE_10, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
- map LavenderTown, TILESET_KANTO, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map LavenderPokecenter1F, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map LavenderPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map MrFujisHouse, TILESET_HOUSE, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map LavenderSpeechHouse, TILESET_HOUSE, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map LavenderNameRater, TILESET_HOUSE, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map LavenderMart, TILESET_MART, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SoulHouse, TILESET_HOUSE, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map LavRadioTower1F, TILESET_RADIO_TOWER, INDOOR, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route8SaffronGate, TILESET_GATE, GATE, ROUTE_8, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route12SuperRodHouse, TILESET_HOUSE, INDOOR, ROUTE_12, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route8, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_8, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route12, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_12, MUSIC_ROUTE_12, FALSE, PALETTE_AUTO, FISHGROUP_QWILFISH_NO_SWARM
+ map Route10South, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_10, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_LAKE
+ map LavenderTown, TILESET_KANTO, TOWN, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map LavenderPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map LavenderPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map MrFujisHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map LavenderSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map LavenderNameRater, TILESET_HOUSE, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map LavenderMart, TILESET_MART, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SoulHouse, TILESET_HOUSE, INDOOR, LANDMARK_LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map LavRadioTower1F, TILESET_RADIO_TOWER, INDOOR, LANDMARK_LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route8SaffronGate, TILESET_GATE, GATE, LANDMARK_ROUTE_8, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route12SuperRodHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_12, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Silver:
- map Route28, TILESET_KANTO, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map SilverCaveOutside, TILESET_KANTO, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map SilverCavePokecenter1F, TILESET_POKECENTER, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route28SteelWingHouse, TILESET_HOUSE, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route28, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_28, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map SilverCaveOutside, TILESET_KANTO, TOWN, LANDMARK_SILVER_CAVE, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map SilverCavePokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_SILVER_CAVE, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route28SteelWingHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_28, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_CableClub:
- map Pokecenter2F, TILESET_POKECENTER, INDOOR, SPECIAL_MAP, MUSIC_POKEMON_CENTER, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map TradeCenter, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map Colosseum, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map TimeCapsule, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map Pokecenter2F, TILESET_POKECENTER, INDOOR, LANDMARK_SPECIAL, MUSIC_POKEMON_CENTER, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map TradeCenter, TILESET_GATE, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map Colosseum, TILESET_GATE, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map TimeCapsule, TILESET_GATE, INDOOR, LANDMARK_SPECIAL, MUSIC_CHERRYGROVE_CITY, TRUE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Celadon:
- map Route7, TILESET_KANTO, ROUTE, ROUTE_7, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route16, TILESET_KANTO, ROUTE, ROUTE_16, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route17, TILESET_KANTO, ROUTE, ROUTE_17, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_NONE
- map CeladonCity, TILESET_KANTO, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_AUTO, FISHGROUP_NONE
- map CeladonDeptStore1F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonDeptStore2F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonDeptStore3F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonDeptStore4F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonDeptStore5F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonDeptStore6F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonDeptStoreElevator, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonMansion1F, TILESET_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonMansion2F, TILESET_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonMansion3F, TILESET_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonMansionRoof, TILESET_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonMansionRoofHouse, TILESET_HOUSE, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonPokecenter1F, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonPokecenter2FBeta, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonGameCorner, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_GAME_CORNER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonGameCornerPrizeRoom, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonGym, TILESET_TRAIN_STATION, INDOOR, CELADON_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map CeladonCafe, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route16FuchsiaSpeechHouse, TILESET_HOUSE, INDOOR, ROUTE_16, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route16Gate, TILESET_GATE, GATE, ROUTE_16, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route7SaffronGate, TILESET_GATE, GATE, ROUTE_7, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route17Route18Gate, TILESET_GATE, GATE, ROUTE_17, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route7, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_7, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route16, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_16, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route17, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_17, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_NONE
+ map CeladonCity, TILESET_KANTO, TOWN, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_AUTO, FISHGROUP_NONE
+ map CeladonDeptStore1F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonDeptStore2F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonDeptStore3F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonDeptStore4F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonDeptStore5F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonDeptStore6F, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonDeptStoreElevator, TILESET_MART, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonMansion1F, TILESET_MANSION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonMansion2F, TILESET_MANSION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonMansion3F, TILESET_MANSION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonMansionRoof, TILESET_MANSION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonMansionRoofHouse, TILESET_HOUSE, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonGameCorner, TILESET_GAME_CORNER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_GAME_CORNER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonGameCornerPrizeRoom, TILESET_GAME_CORNER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonGym, TILESET_TRAIN_STATION, INDOOR, LANDMARK_CELADON_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map CeladonCafe, TILESET_GAME_CORNER, INDOOR, LANDMARK_CELADON_CITY, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route16FuchsiaSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_16, MUSIC_CELADON_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route16Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_16, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route7SaffronGate, TILESET_GATE, GATE, LANDMARK_ROUTE_7, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route17Route18Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_17, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Cianwood:
- map Route40, TILESET_JOHTO, ROUTE, ROUTE_40, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route41, TILESET_JOHTO, ROUTE, ROUTE_41, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map CianwoodCity, TILESET_JOHTO, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map ManiasHouse, TILESET_HOUSE, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CianwoodGym, TILESET_TOWER, INDOOR, CIANWOOD_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map CianwoodPokecenter1F, TILESET_POKECENTER, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CianwoodPharmacy, TILESET_HOUSE, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CianwoodPhotoStudio, TILESET_HOUSE, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CianwoodLugiaSpeechHouse, TILESET_HOUSE, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route40, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_40, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route41, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_41, MUSIC_ROUTE_36, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map CianwoodCity, TILESET_JOHTO, TOWN, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map ManiasHouse, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CianwoodGym, TILESET_TOWER, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map CianwoodPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CianwoodPharmacy, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CianwoodPhotoStudio, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CianwoodLugiaSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Viridian:
- map Route2, TILESET_KANTO, ROUTE, ROUTE_2, MUSIC_ROUTE_2, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map Route22, TILESET_KANTO, ROUTE, ROUTE_22, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map ViridianCity, TILESET_KANTO, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map ViridianGym, TILESET_TRAIN_STATION, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map ViridianNicknameSpeechHouse, TILESET_HOUSE, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TrainerHouse1F, TILESET_HOUSE, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map TrainerHouseB1F, TILESET_FACILITY, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map ViridianMart, TILESET_MART, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map ViridianPokecenter1F, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map ViridianPokecenter2FBeta, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route2NuggetHouse, TILESET_HOUSE, INDOOR, ROUTE_2, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route2Gate, TILESET_GATE, GATE, ROUTE_2, MUSIC_ROUTE_2, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map VictoryRoadGate, TILESET_GATE, GATE, ROUTE_26, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route2, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_2, MUSIC_ROUTE_2, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map Route22, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_22, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map ViridianCity, TILESET_KANTO, TOWN, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map ViridianGym, TILESET_TRAIN_STATION, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map ViridianNicknameSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TrainerHouse1F, TILESET_HOUSE, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map TrainerHouseB1F, TILESET_FACILITY, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map ViridianMart, TILESET_MART, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map ViridianPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map ViridianPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route2NuggetHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_2, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route2Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_2, MUSIC_ROUTE_2, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map VictoryRoadGate, TILESET_GATE, GATE, LANDMARK_ROUTE_26, MUSIC_INDIGO_PLATEAU, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_NewBark:
- map Route26, TILESET_JOHTO, ROUTE, ROUTE_26, MUSIC_ROUTE_26, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map Route27, TILESET_JOHTO, ROUTE, ROUTE_27, MUSIC_ROUTE_26, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map Route29, TILESET_JOHTO, ROUTE, ROUTE_29, MUSIC_ROUTE_29, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map NewBarkTown, TILESET_JOHTO, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
- map ElmsLab, TILESET_LAB, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PlayersHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PlayersHouse2F, TILESET_PLAYERS_ROOM, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map PlayersNeighborsHouse, TILESET_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map ElmsHouse, TILESET_PLAYERS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route26HealHouse, TILESET_HOUSE, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map DayOfWeekSiblingsHouse, TILESET_HOUSE, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route27SandstormHouse, TILESET_HOUSE, INDOOR, ROUTE_27, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route29Route46Gate, TILESET_GATE, GATE, ROUTE_29, MUSIC_ROUTE_29, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route26, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_26, MUSIC_ROUTE_26, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map Route27, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_27, MUSIC_ROUTE_26, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map Route29, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_29, MUSIC_ROUTE_29, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map NewBarkTown, TILESET_JOHTO, TOWN, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_AUTO, FISHGROUP_OCEAN
+ map ElmsLab, TILESET_LAB, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_PROF_ELM, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PlayersHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PlayersHouse2F, TILESET_PLAYERS_ROOM, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map PlayersNeighborsHouse, TILESET_HOUSE, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map ElmsHouse, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route26HealHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_26, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map DayOfWeekSiblingsHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_26, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route27SandstormHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_27, MUSIC_AZALEA_TOWN, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route29Route46Gate, TILESET_GATE, GATE, LANDMARK_ROUTE_29, MUSIC_ROUTE_29, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Saffron:
- map Route5, TILESET_KANTO, ROUTE, ROUTE_5, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map SaffronCity, TILESET_KANTO, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map FightingDojo, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SaffronGym, TILESET_UNDERGROUND, INDOOR, SAFFRON_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
- map SaffronMart, TILESET_MART, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SaffronPokecenter1F, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SaffronPokecenter2FBeta, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map MrPsychicsHouse, TILESET_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SaffronMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map SilphCo1F, TILESET_FACILITY, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CopycatsHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CopycatsHouse2F, TILESET_PLAYERS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route5UndergroundPathEntrance, TILESET_GATE, GATE, ROUTE_5, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route5SaffronGate, TILESET_GATE, GATE, ROUTE_5, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route5CleanseTagHouse, TILESET_HOUSE, INDOOR, ROUTE_5, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route5, TILESET_KANTO, ROUTE, LANDMARK_ROUTE_5, MUSIC_ROUTE_3, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map SaffronCity, TILESET_KANTO, TOWN, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map FightingDojo, TILESET_TRAIN_STATION, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SaffronGym, TILESET_UNDERGROUND, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_GYM, TRUE, PALETTE_DAY, FISHGROUP_SHORE
+ map SaffronMart, TILESET_MART, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SaffronPokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SaffronPokecenter2FBeta, TILESET_POKECENTER, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map MrPsychicsHouse, TILESET_HOUSE, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SaffronMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map SilphCo1F, TILESET_FACILITY, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CopycatsHouse1F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CopycatsHouse2F, TILESET_PLAYERS_HOUSE, INDOOR, LANDMARK_SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route5UndergroundPathEntrance, TILESET_GATE, GATE, LANDMARK_ROUTE_5, MUSIC_ROUTE_3, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route5SaffronGate, TILESET_GATE, GATE, LANDMARK_ROUTE_5, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route5CleanseTagHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_5, MUSIC_VIRIDIAN_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
MapGroup_Cherrygrove:
- map Route30, TILESET_JOHTO, ROUTE, ROUTE_30, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map Route31, TILESET_JOHTO, ROUTE, ROUTE_31, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_POND
- map CherrygroveCity, TILESET_JOHTO, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
- map CherrygroveMart, TILESET_MART, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CherrygrovePokecenter1F, TILESET_POKECENTER, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CherrygroveGymSpeechHouse, TILESET_HOUSE, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map GuideGentsHouse, TILESET_HOUSE, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map CherrygroveEvolutionSpeechHouse, TILESET_HOUSE, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route30BerryHouse, TILESET_HOUSE, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map MrPokemonsHouse, TILESET_FACILITY, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
- map Route31VioletGate, TILESET_GATE, GATE, ROUTE_31, MUSIC_ROUTE_30, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route30, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_30, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map Route31, TILESET_JOHTO, ROUTE, LANDMARK_ROUTE_31, MUSIC_ROUTE_30, FALSE, PALETTE_AUTO, FISHGROUP_POND
+ map CherrygroveCity, TILESET_JOHTO, TOWN, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_AUTO, FISHGROUP_SHORE
+ map CherrygroveMart, TILESET_MART, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CherrygrovePokecenter1F, TILESET_POKECENTER, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CherrygroveGymSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map GuideGentsHouse, TILESET_HOUSE, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map CherrygroveEvolutionSpeechHouse, TILESET_HOUSE, INDOOR, LANDMARK_CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route30BerryHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_30, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map MrPokemonsHouse, TILESET_FACILITY, INDOOR, LANDMARK_ROUTE_30, MUSIC_CHERRYGROVE_CITY, FALSE, PALETTE_DAY, FISHGROUP_SHORE
+ map Route31VioletGate, TILESET_GATE, GATE, LANDMARK_ROUTE_31, MUSIC_ROUTE_30, FALSE, PALETTE_DAY, FISHGROUP_SHORE
diff --git a/engine/pokegear/pokegear.asm b/engine/pokegear/pokegear.asm
new file mode 100644
index 00000000..00eb4e92
--- /dev/null
+++ b/engine/pokegear/pokegear.asm
@@ -0,0 +1,2878 @@
+; Pokégear cards
+ const_def
+ const POKEGEARCARD_CLOCK ; 0
+ const POKEGEARCARD_MAP ; 1
+ const POKEGEARCARD_PHONE ; 2
+ const POKEGEARCARD_RADIO ; 3
+NUM_POKEGEAR_CARDS EQU const_value
+
+PHONE_DISPLAY_HEIGHT EQU 4
+
+; PokegearJumptable.Jumptable indexes
+ const_def
+ const POKEGEARSTATE_CLOCKINIT ; 0
+ const POKEGEARSTATE_CLOCKJOYPAD ; 1
+ const POKEGEARSTATE_MAPCHECKREGION ; 2
+ const POKEGEARSTATE_JOHTOMAPINIT ; 3
+ const POKEGEARSTATE_JOHTOMAPJOYPAD ; 4
+ const POKEGEARSTATE_KANTOMAPINIT ; 5
+ const POKEGEARSTATE_KANTOMAPJOYPAD ; 6
+ const POKEGEARSTATE_PHONEINIT ; 7
+ const POKEGEARSTATE_PHONEJOYPAD ; 8
+ const POKEGEARSTATE_MAKEPHONECALL ; 9
+ const POKEGEARSTATE_FINISHPHONECALL ; a
+ const POKEGEARSTATE_RADIOINIT ; b
+ const POKEGEARSTATE_RADIOJOYPAD ; c
+
+PokeGear:
+ ld hl, wOptions
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ ldh a, [hInMenu]
+ push af
+ ld a, $1
+ ldh [hInMenu], a
+ ld a, [wVramState]
+ push af
+ xor a
+ ld [wVramState], a
+ call .InitTilemap
+ call DelayFrame
+.loop
+ call UpdateTime
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done
+ call PokegearJumptable
+ farcall PlaySpriteAnimations
+ call DelayFrame
+ jr .loop
+
+.done
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ pop af
+ ld [wVramState], a
+ pop af
+ ldh [hInMenu], a
+ pop af
+ ld [wOptions], a
+ call ClearBGPalettes
+ xor a ; LOW(vBGMap0)
+ ldh [hBGMapAddress], a
+ ld a, HIGH(vBGMap0)
+ ldh [hBGMapAddress + 1], a
+ ld a, $90
+ ldh [hWY], a
+ call ExitPokegearRadio_HandleMusic
+ ret
+
+.InitTilemap:
+ call ClearBGPalettes
+ call ClearTilemap
+ call ClearSprites
+ call DisableLCD
+ xor a
+ ldh [hSCY], a
+ ldh [hSCX], a
+ ld a, $7
+ ldh [hWX], a
+ call Pokegear_LoadGFX
+ farcall ClearSpriteAnims
+ call InitPokegearModeIndicatorArrow
+ ld a, 8
+ call SkipMusic
+ ld a, LCDC_DEFAULT
+ ldh [rLCDC], a
+ call TownMap_InitCursorAndPlayerIconPositions
+ xor a
+ ld [wJumptableIndex], a ; POKEGEARSTATE_CLOCKINIT
+ ld [wPokegearCard], a ; POKEGEARCARD_CLOCK
+ ld [wPokegearMapRegion], a ; JOHTO_REGION
+ ld [wPokegearCE66], a
+ ld [wPokegearPhoneScrollPosition], a
+ ld [wPokegearPhoneCursorPosition], a
+ ld [wPokegearPhoneSelectedPerson], a
+ ld [wPokegearRadioChannelBank], a
+ ld [wPokegearRadioChannelAddr], a
+ ld [wPokegearRadioChannelAddr + 1], a
+ call Pokegear_InitJumptableIndices
+ call InitPokegearTilemap
+ ld b, SCGB_POKEGEAR_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ldh a, [hCGB]
+ and a
+ ret z
+ ld a, %11100100
+ call DmgToCgbObjPal0
+ ret
+
+Pokegear_LoadGFX:
+ call ClearVBank1
+ ld hl, TownMapGFX
+ ld de, vTiles2
+ ld a, BANK(TownMapGFX)
+ call FarDecompress
+ ld hl, PokegearGFX
+ ld de, vTiles2 tile $30
+ ld a, BANK(PokegearGFX)
+ call FarDecompress
+ ld hl, PokegearSpritesGFX
+ ld de, vTiles0
+ ld a, BANK(PokegearSpritesGFX)
+ call Decompress
+ ld a, [wMapGroup]
+ ld b, a
+ ld a, [wMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp LANDMARK_FAST_SHIP
+ jr z, .ssaqua
+ ld hl, ChrisSpriteGFX
+ ld de, vTiles0 tile $10
+ ld bc, 4 tiles
+ ld a, BANK(ChrisSpriteGFX)
+ call FarCopyBytes
+ ld hl, ChrisSpriteGFX + 12 tiles
+ ld de, vTiles0 tile $14
+ ld bc, 4 tiles
+ ld a, BANK(ChrisSpriteGFX)
+ call FarCopyBytes
+ ret
+
+.ssaqua
+ ld hl, FastShipGFX
+ ld de, vTiles0 tile $10
+ ld bc, 8 tiles
+ call CopyBytes
+ ret
+
+FastShipGFX:
+INCBIN "gfx/pokegear/fast_ship.2bpp"
+
+InitPokegearModeIndicatorArrow:
+ depixel 4, 2, 4, 0
+ ld a, SPRITE_ANIM_INDEX_POKEGEAR_ARROW
+ call InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_TILE_ID
+ add hl, bc
+ ld [hl], $0
+ ret
+
+AnimatePokegearModeIndicatorArrow:
+ ld hl, wPokegearCard
+ ld e, [hl]
+ ld d, 0
+ ld hl, .XCoords
+ add hl, de
+ ld a, [hl]
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.XCoords:
+ db $00 ; POKEGEARCARD_CLOCK
+ db $10 ; POKEGEARCARD_MAP
+ db $20 ; POKEGEARCARD_PHONE
+ db $30 ; POKEGEARCARD_RADIO
+
+TownMap_GetCurrentLandmark:
+ ld a, [wMapGroup]
+ ld b, a
+ ld a, [wMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp LANDMARK_SPECIAL
+ ret nz
+ ld a, [wBackupMapGroup]
+ ld b, a
+ ld a, [wBackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ ret
+
+TownMap_InitCursorAndPlayerIconPositions:
+ ld a, [wMapGroup]
+ ld b, a
+ ld a, [wMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ cp LANDMARK_FAST_SHIP
+ jr z, .FastShip
+ cp LANDMARK_SPECIAL
+ jr nz, .LoadLandmark
+ ld a, [wBackupMapGroup]
+ ld b, a
+ ld a, [wBackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+.LoadLandmark:
+ ld [wPokegearMapPlayerIconLandmark], a
+ ld [wPokegearMapCursorLandmark], a
+ ret
+
+.FastShip:
+ ld [wPokegearMapPlayerIconLandmark], a
+ ld a, LANDMARK_NEW_BARK_TOWN
+ ld [wPokegearMapCursorLandmark], a
+ ret
+
+Pokegear_InitJumptableIndices:
+ ld a, POKEGEARSTATE_CLOCKINIT
+ ld [wJumptableIndex], a
+ xor a ; POKEGEARCARD_CLOCK
+ ld [wPokegearCard], a
+ ret
+
+InitPokegearTilemap:
+ xor a
+ ldh [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $4f
+ call ByteFill
+ ld a, [wPokegearCard]
+ maskbits NUM_POKEGEAR_CARDS
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .return_from_jumptable
+ push de
+ jp hl
+
+.return_from_jumptable
+ call Pokegear_FinishTilemap
+ farcall TownMapPals
+ ld a, [wPokegearMapRegion]
+ and a
+ jr nz, .kanto_0
+ xor a ; LOW(vBGMap0)
+ ldh [hBGMapAddress], a
+ ld a, HIGH(vBGMap0)
+ ldh [hBGMapAddress + 1], a
+ call .UpdateBGMap
+ ld a, $90
+ jr .finish
+
+.kanto_0
+ xor a ; LOW(vBGMap1)
+ ldh [hBGMapAddress], a
+ ld a, HIGH(vBGMap1)
+ ldh [hBGMapAddress + 1], a
+ call .UpdateBGMap
+ xor a
+.finish
+ ldh [hWY], a
+ ; swap region maps
+ ld a, [wPokegearMapRegion]
+ maskbits NUM_REGIONS
+ xor 1
+ ld [wPokegearMapRegion], a
+ ret
+
+.UpdateBGMap:
+ ldh a, [hCGB]
+ and a
+ jr z, .dmg
+ ld a, $2
+ ldh [hBGMapMode], a
+ ld c, 3
+ call DelayFrames
+.dmg
+ call WaitBGMap
+ ret
+
+.Jumptable:
+; entries correspond to POKEGEARCARD_* constants
+ dw .Clock
+ dw .Map
+ dw .Phone
+ dw .Radio
+
+.Clock:
+ ld de, ClockTilemapRLE
+ call Pokegear_LoadTilemapRLE
+ hlcoord 13, 1
+ ld de, .switch
+ call PlaceString
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call Textbox
+ call Pokegear_UpdateClock
+ ret
+
+.switch
+ db "SWITCH▶@"
+
+.Map:
+ ld a, [wPokegearMapPlayerIconLandmark]
+ cp LANDMARK_FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+.johto
+ ld e, 0
+ jr .ok
+
+.kanto
+ ld e, 1
+.ok
+ farcall PokegearMap
+ ld a, $07
+ ld bc, SCREEN_WIDTH - 2
+ hlcoord 1, 2
+ call ByteFill
+ hlcoord 0, 2
+ ld [hl], $06
+ hlcoord 19, 2
+ ld [hl], $17
+ ld a, [wPokegearMapCursorLandmark]
+ call PokegearMap_UpdateLandmarkName
+ ret
+
+.Radio:
+ ld de, RadioTilemapRLE
+ call Pokegear_LoadTilemapRLE
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call Textbox
+ ret
+
+.Phone:
+ ld de, PhoneTilemapRLE
+ call Pokegear_LoadTilemapRLE
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call Textbox
+ call .PlacePhoneBars
+ call PokegearPhone_UpdateDisplayList
+ ret
+
+.PlacePhoneBars:
+ hlcoord 17, 1
+ ld a, $3c
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 17, 2
+ inc a
+ ld [hli], a
+ call GetMapPhoneService
+ and a
+ ret nz
+ hlcoord 18, 2
+ ld [hl], $3f
+ ret
+
+Pokegear_FinishTilemap:
+ hlcoord 0, 0
+ ld bc, $8
+ ld a, $4f
+ call ByteFill
+ hlcoord 0, 1
+ ld bc, $8
+ ld a, $4f
+ call ByteFill
+ ld de, wPokegearFlags
+ ld a, [de]
+ bit POKEGEAR_MAP_CARD_F, a
+ call nz, .PlaceMapIcon
+ ld a, [de]
+ bit POKEGEAR_PHONE_CARD_F, a
+ call nz, .PlacePhoneIcon
+ ld a, [de]
+ bit POKEGEAR_RADIO_CARD_F, a
+ call nz, .PlaceRadioIcon
+ hlcoord 0, 0
+ ld a, $46
+ call .PlacePokegearCardIcon
+ ret
+
+.PlaceMapIcon:
+ hlcoord 2, 0
+ ld a, $40
+ jr .PlacePokegearCardIcon
+
+.PlacePhoneIcon:
+ hlcoord 4, 0
+ ld a, $44
+ jr .PlacePokegearCardIcon
+
+.PlaceRadioIcon:
+ hlcoord 6, 0
+ ld a, $42
+.PlacePokegearCardIcon:
+ ld [hli], a
+ inc a
+ ld [hld], a
+ ld bc, $14
+ add hl, bc
+ add $f
+ ld [hli], a
+ inc a
+ ld [hld], a
+ ret
+
+PokegearJumptable:
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.Jumptable:
+; entries correspond to POKEGEARSTATE_* constants
+ dw PokegearClock_Init
+ dw PokegearClock_Joypad
+ dw PokegearMap_CheckRegion
+ dw PokegearMap_Init
+ dw PokegearMap_JohtoMap
+ dw PokegearMap_Init
+ dw PokegearMap_KantoMap
+ dw PokegearPhone_Init
+ dw PokegearPhone_Joypad
+ dw PokegearPhone_MakePhoneCall
+ dw PokegearPhone_FinishPhoneCall
+ dw PokegearRadio_Init
+ dw PokegearRadio_Joypad
+
+PokegearClock_Init:
+ call InitPokegearTilemap
+ ld hl, PokegearPressButtonText
+ call PrintText
+ ld hl, wJumptableIndex
+ inc [hl]
+ call ExitPokegearRadio_HandleMusic
+ ret
+
+PokegearClock_Joypad:
+ call .UpdateClock
+ ld hl, hJoyLast
+ ld a, [hl]
+ and A_BUTTON | B_BUTTON | START | SELECT
+ jr nz, .quit
+ ld a, [hl]
+ and D_RIGHT
+ ret z
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_MAP_CARD_F, a
+ jr z, .no_map_card
+ ld c, POKEGEARSTATE_MAPCHECKREGION
+ ld b, POKEGEARCARD_MAP
+ jr .done
+
+.no_map_card
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_PHONE_CARD_F, a
+ jr z, .no_phone_card
+ ld c, POKEGEARSTATE_PHONEINIT
+ ld b, POKEGEARCARD_PHONE
+ jr .done
+
+.no_phone_card
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_RADIO_CARD_F, a
+ ret z
+ ld c, POKEGEARSTATE_RADIOINIT
+ ld b, POKEGEARCARD_RADIO
+.done
+ call Pokegear_SwitchPage
+ ret
+
+.quit
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.UpdateClock:
+ xor a
+ ldh [hBGMapMode], a
+ call Pokegear_UpdateClock
+ ld a, $1
+ ldh [hBGMapMode], a
+ ret
+
+Pokegear_UpdateClock:
+ hlcoord 3, 5
+ lb bc, 5, 14
+ call ClearBox
+ ldh a, [hHours]
+ ld b, a
+ ldh a, [hMinutes]
+ ld c, a
+ decoord 6, 8
+ farcall PrintHoursMins
+ ld hl, .GearTodayText
+ bccoord 6, 6
+ call PlaceHLTextAtBC
+ ret
+
+ db "ごぜん@"
+ db "ごご@"
+
+.GearTodayText:
+ text_far _GearTodayText
+ text_end
+
+PokegearMap_CheckRegion:
+ ld a, [wPokegearMapPlayerIconLandmark]
+ cp LANDMARK_FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+.johto
+ ld a, POKEGEARSTATE_JOHTOMAPINIT
+ jr .done
+ ret
+
+.kanto
+ ld a, POKEGEARSTATE_KANTOMAPINIT
+.done
+ ld [wJumptableIndex], a
+ call ExitPokegearRadio_HandleMusic
+ ret
+
+PokegearMap_Init:
+ call InitPokegearTilemap
+ ld a, [wPokegearMapPlayerIconLandmark]
+ call PokegearMap_InitPlayerIcon
+ ld a, [wPokegearMapCursorLandmark]
+ call PokegearMap_InitCursor
+ ld a, c
+ ld [wPokegearMapCursorObjectPointer], a
+ ld a, b
+ ld [wPokegearMapCursorObjectPointer + 1], a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+PokegearMap_KantoMap:
+ call TownMap_GetKantoLandmarkLimits
+ jr PokegearMap_ContinueMap
+
+PokegearMap_JohtoMap:
+ ld d, LANDMARK_SILVER_CAVE
+ ld e, LANDMARK_NEW_BARK_TOWN
+PokegearMap_ContinueMap:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .cancel
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ call .DPad
+ ret
+
+.right
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_PHONE_CARD_F, a
+ jr z, .no_phone
+ ld c, POKEGEARSTATE_PHONEINIT
+ ld b, POKEGEARCARD_PHONE
+ jr .done
+
+.no_phone
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_RADIO_CARD_F, a
+ ret z
+ ld c, POKEGEARSTATE_RADIOINIT
+ ld b, POKEGEARCARD_RADIO
+ jr .done
+
+.left
+ ld c, POKEGEARSTATE_CLOCKINIT
+ ld b, POKEGEARCARD_CLOCK
+.done
+ call Pokegear_SwitchPage
+ ret
+
+.cancel
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.DPad:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ret
+
+.up
+ ld hl, wPokegearMapCursorLandmark
+ ld a, [hl]
+ cp d
+ jr c, .wrap_around_up
+ ld a, e
+ dec a
+ ld [hl], a
+.wrap_around_up
+ inc [hl]
+ jr .done_dpad
+
+.down
+ ld hl, wPokegearMapCursorLandmark
+ ld a, [hl]
+ cp e
+ jr nz, .wrap_around_down
+ ld a, d
+ inc a
+ ld [hl], a
+.wrap_around_down
+ dec [hl]
+.done_dpad
+ ld a, [wPokegearMapCursorLandmark]
+ call PokegearMap_UpdateLandmarkName
+ ld a, [wPokegearMapCursorObjectPointer]
+ ld c, a
+ ld a, [wPokegearMapCursorObjectPointer + 1]
+ ld b, a
+ ld a, [wPokegearMapCursorLandmark]
+ call PokegearMap_UpdateCursorPosition
+ ret
+
+PokegearMap_InitPlayerIcon:
+ push af
+ depixel 0, 0
+ ld a, SPRITE_ANIM_INDEX_RED_WALK
+ call InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_TILE_ID
+ add hl, bc
+ ld [hl], $10
+ pop af
+ ld e, a
+ push bc
+ farcall GetLandmarkCoords
+ pop bc
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], e
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], d
+ ret
+
+PokegearMap_InitCursor:
+ push af
+ depixel 0, 0
+ ld a, SPRITE_ANIM_INDEX_POKEGEAR_ARROW
+ call InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_TILE_ID
+ add hl, bc
+ ld [hl], $04
+ ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
+ add hl, bc
+ ld [hl], SPRITE_ANIM_SEQ_NULL
+ pop af
+ push bc
+ call PokegearMap_UpdateCursorPosition
+ pop bc
+ ret
+
+PokegearMap_UpdateLandmarkName:
+ push af
+ hlcoord 8, 0
+ lb bc, 2, 12
+ call ClearBox
+ pop af
+ ld e, a
+ push de
+ farcall GetLandmarkName
+ pop de
+ farcall TownMap_ConvertLineBreakCharacters
+ hlcoord 8, 0
+ ld [hl], $34
+ ret
+
+PokegearMap_UpdateCursorPosition:
+ push bc
+ ld e, a
+ farcall GetLandmarkCoords
+ pop bc
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], e
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], d
+ ret
+
+TownMap_GetKantoLandmarkLimits:
+ ld a, [wStatusFlags]
+ bit STATUSFLAGS_HALL_OF_FAME_F, a
+ jr z, .not_hof
+ ld d, LANDMARK_ROUTE_28
+ ld e, LANDMARK_PALLET_TOWN
+ ret
+
+.not_hof
+ ld d, LANDMARK_ROUTE_28
+ ld e, LANDMARK_VICTORY_ROAD
+ ret
+
+PokegearRadio_Init:
+ call InitPokegearTilemap
+ depixel 4, 10, 4, 4
+ ld a, SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
+ call InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_TILE_ID
+ add hl, bc
+ ld [hl], $08
+ call _UpdateRadioStation
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+PokegearRadio_Joypad:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .cancel
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [wPokegearRadioChannelAddr]
+ ld l, a
+ ld a, [wPokegearRadioChannelAddr + 1]
+ ld h, a
+ ld a, [wPokegearRadioChannelBank]
+ and a
+ ret z
+ rst FarCall
+ ret
+
+.left
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_PHONE_CARD_F, a
+ jr z, .no_phone
+ ld c, POKEGEARSTATE_PHONEINIT
+ ld b, POKEGEARCARD_PHONE
+ jr .switch_page
+
+.no_phone
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_MAP_CARD_F, a
+ jr z, .no_map
+ ld c, POKEGEARSTATE_MAPCHECKREGION
+ ld b, POKEGEARCARD_MAP
+ jr .switch_page
+
+.no_map
+ ld c, POKEGEARSTATE_CLOCKINIT
+ ld b, POKEGEARCARD_CLOCK
+.switch_page
+ call Pokegear_SwitchPage
+ ret
+
+.cancel
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+PokegearPhone_Init:
+ ld hl, wJumptableIndex
+ inc [hl]
+ xor a
+ ld [wPokegearPhoneScrollPosition], a
+ ld [wPokegearPhoneCursorPosition], a
+ ld [wPokegearPhoneSelectedPerson], a
+ call InitPokegearTilemap
+ call ExitPokegearRadio_HandleMusic
+ ld hl, PokegearAskWhoCallText
+ call PrintText
+ ret
+
+PokegearPhone_Joypad:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ call PokegearPhone_GetDPad
+ ret
+
+.left
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_MAP_CARD_F, a
+ jr z, .no_map
+ ld c, POKEGEARSTATE_MAPCHECKREGION
+ ld b, POKEGEARCARD_MAP
+ jr .switch_page
+
+.no_map
+ ld c, POKEGEARSTATE_CLOCKINIT
+ ld b, POKEGEARCARD_CLOCK
+ jr .switch_page
+
+.right
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_RADIO_CARD_F, a
+ ret z
+ ld c, POKEGEARSTATE_RADIOINIT
+ ld b, POKEGEARCARD_RADIO
+.switch_page
+ call Pokegear_SwitchPage
+ ret
+
+.b
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.a
+ ld hl, wPhoneList
+ ld a, [wPokegearPhoneScrollPosition]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [wPokegearPhoneCursorPosition]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+ and a
+ ret z
+ ld [wPokegearPhoneSelectedPerson], a
+ hlcoord 1, 4
+ ld a, [wPokegearPhoneCursorPosition]
+ ld bc, SCREEN_WIDTH * 2
+ call AddNTimes
+ ld [hl], "▷"
+ call PokegearPhoneContactSubmenu
+ jr c, .quit_submenu
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+.quit_submenu
+ ld a, POKEGEARSTATE_PHONEJOYPAD
+ ld [wJumptableIndex], a
+ ret
+
+PokegearPhone_MakePhoneCall:
+ call GetMapPhoneService
+ and a
+ jr nz, .no_service
+ ld hl, wOptions
+ res NO_TEXT_SCROLL, [hl]
+ xor a
+ ldh [hInMenu], a
+ ld de, SFX_CALL
+ call PlaySFX
+ ld hl, .GearEllipseText
+ call PrintText
+ call WaitSFX
+ ld de, SFX_CALL
+ call PlaySFX
+ ld hl, .GearEllipseText
+ call PrintText
+ call WaitSFX
+ ld a, [wPokegearPhoneSelectedPerson]
+ ld b, a
+ call Function90199
+ ld c, 10
+ call DelayFrames
+ ld hl, wOptions
+ set NO_TEXT_SCROLL, [hl]
+ ld a, $1
+ ldh [hInMenu], a
+ call PokegearPhone_UpdateCursor
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+.no_service
+ farcall Phone_NoSignal
+ ld hl, .GearOutOfServiceText
+ call PrintText
+ ld a, POKEGEARSTATE_PHONEJOYPAD
+ ld [wJumptableIndex], a
+ ld hl, PokegearAskWhoCallText
+ call PrintText
+ ret
+
+.GearEllipseText:
+ text_far _GearEllipseText
+ text_end
+
+.GearOutOfServiceText:
+ text_far _GearOutOfServiceText
+ text_end
+
+PokegearPhone_FinishPhoneCall:
+ ldh a, [hJoyPressed]
+ and A_BUTTON | B_BUTTON
+ ret z
+ farcall HangUp
+ ld a, POKEGEARSTATE_PHONEJOYPAD
+ ld [wJumptableIndex], a
+ ld hl, PokegearAskWhoCallText
+ call PrintText
+ ret
+
+PokegearPhone_GetDPad:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ret
+
+.up
+ ld hl, wPokegearPhoneCursorPosition
+ ld a, [hl]
+ and a
+ jr z, .scroll_page_up
+ dec [hl]
+ jr .done_joypad_same_page
+
+.scroll_page_up
+ ld hl, wPokegearPhoneScrollPosition
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ jr .done_joypad_update_page
+
+.down
+ ld hl, wPokegearPhoneCursorPosition
+ ld a, [hl]
+ cp PHONE_DISPLAY_HEIGHT - 1
+ jr nc, .scroll_page_down
+ inc [hl]
+ jr .done_joypad_same_page
+
+.scroll_page_down
+ ld hl, wPokegearPhoneScrollPosition
+ ld a, [hl]
+ cp CONTACT_LIST_SIZE - PHONE_DISPLAY_HEIGHT
+ ret nc
+ inc [hl]
+ jr .done_joypad_update_page
+
+.done_joypad_same_page
+ xor a
+ ldh [hBGMapMode], a
+ call PokegearPhone_UpdateCursor
+ call WaitBGMap
+ ret
+
+.done_joypad_update_page
+ xor a
+ ldh [hBGMapMode], a
+ call PokegearPhone_UpdateDisplayList
+ call WaitBGMap
+ ret
+
+PokegearPhone_UpdateCursor:
+ ld a, " "
+x = 4
+rept PHONE_DISPLAY_HEIGHT
+ hlcoord 1, x
+ ld [hl], a
+x = x + 2
+endr
+ hlcoord 1, 4
+ ld a, [wPokegearPhoneCursorPosition]
+ ld bc, 2 * SCREEN_WIDTH
+ call AddNTimes
+ ld [hl], "▶"
+ ret
+
+PokegearPhone_UpdateDisplayList:
+ hlcoord 1, 3
+ ld b, PHONE_DISPLAY_HEIGHT * 2 + 1
+ ld a, " "
+.row
+ ld c, SCREEN_WIDTH - 2
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ inc hl
+ inc hl
+ dec b
+ jr nz, .row
+ ld a, [wPokegearPhoneScrollPosition]
+ ld e, a
+ ld d, 0
+ ld hl, wPhoneList
+ add hl, de
+ xor a
+ ld [wPokegearPhoneLoadNameBuffer], a
+.loop
+ ld a, [hli]
+ push hl
+ push af
+ hlcoord 2, 4
+ ld a, [wPokegearPhoneLoadNameBuffer]
+ ld bc, 2 * SCREEN_WIDTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ pop af
+ ld b, a
+ call Function90380
+ pop hl
+ ld a, [wPokegearPhoneLoadNameBuffer]
+ inc a
+ ld [wPokegearPhoneLoadNameBuffer], a
+ cp PHONE_DISPLAY_HEIGHT
+ jr c, .loop
+ call PokegearPhone_UpdateCursor
+ ret
+
+PokegearPhone_DeletePhoneNumber:
+ ld hl, wPhoneList
+ ld a, [wPokegearPhoneScrollPosition]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [wPokegearPhoneCursorPosition]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld [hl], 0
+ ld hl, wPhoneList
+ ld c, CONTACT_LIST_SIZE
+.loop
+ ld a, [hli]
+ and a
+ jr nz, .skip
+ ld a, [hld]
+ ld [hli], a
+ ld [hl], 0
+.skip
+ dec c
+ jr nz, .loop
+ ret
+
+PokegearPhoneContactSubmenu:
+ ld hl, wPhoneList
+ ld a, [wPokegearPhoneScrollPosition]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [wPokegearPhoneCursorPosition]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld c, [hl]
+ farcall CheckCanDeletePhoneNumber
+ ld a, c
+ and a
+ jr z, .cant_delete
+ ld hl, .CallDeleteCancelJumptable
+ ld de, .CallDeleteCancelStrings
+ jr .got_menu_data
+
+.cant_delete
+ ld hl, .CallCancelJumptable
+ ld de, .CallCancelStrings
+.got_menu_data
+ xor a
+ ldh [hBGMapMode], a
+ push hl
+ push de
+ ld a, [de]
+ ld l, a
+ inc de
+ ld a, [de]
+ ld h, a
+ inc de
+ push hl
+ bccoord -1, -2, 0
+ add hl, bc
+ ld a, [de]
+ inc de
+ sla a
+ ld b, a
+ ld c, 8
+ push de
+ call Textbox
+ pop de
+ pop hl
+ inc hl
+ call PlaceString
+ pop de
+ xor a
+ ld [wPokegearPhoneSubmenuCursor], a
+ call .UpdateCursor
+ call WaitBGMap
+.loop
+ push de
+ call JoyTextDelay
+ pop de
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and D_UP
+ jr nz, .d_up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .d_down
+ ld a, [hl]
+ and A_BUTTON | B_BUTTON
+ jr nz, .a_b
+ call DelayFrame
+ jr .loop
+
+.d_up
+ ld hl, wPokegearPhoneSubmenuCursor
+ ld a, [hl]
+ and a
+ jr z, .loop
+ dec [hl]
+ call .UpdateCursor
+ jr .loop
+
+.d_down
+ ld hl, 2
+ add hl, de
+ ld a, [wPokegearPhoneSubmenuCursor]
+ inc a
+ cp [hl]
+ jr nc, .loop
+ ld [wPokegearPhoneSubmenuCursor], a
+ call .UpdateCursor
+ jr .loop
+
+.a_b
+ xor a
+ ldh [hBGMapMode], a
+ call PokegearPhone_UpdateDisplayList
+ ld a, $1
+ ldh [hBGMapMode], a
+ pop hl
+ ldh a, [hJoyPressed]
+ and B_BUTTON
+ jr nz, .Cancel
+ ld a, [wPokegearPhoneSubmenuCursor]
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.Cancel:
+ ld hl, PokegearAskWhoCallText
+ call PrintText
+ scf
+ ret
+
+.Delete:
+ ld hl, PokegearAskDeleteText
+ call MenuTextbox
+ call YesNoBox
+ call ExitMenu
+ jr c, .CancelDelete
+ call PokegearPhone_DeletePhoneNumber
+ xor a
+ ldh [hBGMapMode], a
+ call PokegearPhone_UpdateDisplayList
+ ld hl, PokegearAskWhoCallText
+ call PrintText
+ call WaitBGMap
+.CancelDelete:
+ scf
+ ret
+
+.Call:
+ and a
+ ret
+
+.UpdateCursor:
+ push de
+ ld a, [de]
+ inc de
+ ld l, a
+ ld a, [de]
+ inc de
+ ld h, a
+ ld a, [de]
+ ld c, a
+ push hl
+ ld a, " "
+ ld de, SCREEN_WIDTH * 2
+.clear_column
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .clear_column
+ pop hl
+ ld a, [wPokegearPhoneSubmenuCursor]
+ ld bc, SCREEN_WIDTH * 2
+ call AddNTimes
+ ld [hl], "▶"
+ pop de
+ ret
+
+.CallDeleteCancelStrings:
+ dwcoord 10, 6
+ db 3
+ db "CALL"
+ next "DELETE"
+ next "CANCEL"
+ db "@"
+
+.CallDeleteCancelJumptable:
+ dw .Call
+ dw .Delete
+ dw .Cancel
+
+.CallCancelStrings:
+ dwcoord 10, 8
+ db 2
+ db "CALL"
+ next "CANCEL"
+ db "@"
+
+.CallCancelJumptable:
+ dw .Call
+ dw .Cancel
+
+; unused
+ ldh a, [hHours]
+ cp 12
+ jr c, .am
+ sub 12
+ ld [wTempByteValue], a
+ scf
+ ret
+
+.am
+ ld [wTempByteValue], a
+ and a
+ ret
+
+Pokegear_SwitchPage:
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ ld a, c
+ ld [wJumptableIndex], a
+ ld a, b
+ ld [wPokegearCard], a
+ call DeleteSpriteAnimStruct2ToEnd
+ ret
+
+ExitPokegearRadio_HandleMusic:
+ ld a, [wPokegearRadioMusicPlaying]
+ cp RESTART_MAP_MUSIC
+ jr z, .restart_map_music
+ cp ENTER_MAP_MUSIC
+ call z, PlayMapMusicBike
+ xor a
+ ld [wPokegearRadioMusicPlaying], a
+ ret
+
+.restart_map_music
+ call RestartMapMusic
+ xor a
+ ld [wPokegearRadioMusicPlaying], a
+ ret
+
+DeleteSpriteAnimStruct2ToEnd:
+ ld hl, wSpriteAnim2
+ ld bc, wSpriteAnimationStructsEnd - wSpriteAnim2
+ xor a
+ call ByteFill
+ ld a, 2
+ ld [wSpriteAnimCount], a
+ ret
+
+Pokegear_LoadTilemapRLE:
+ ; Format: repeat count, tile ID
+ ; Terminated with -1
+ hlcoord 0, 0
+.loop
+ ld a, [de]
+ cp -1
+ ret z
+ ld b, a
+ inc de
+ ld a, [de]
+ ld c, a
+ inc de
+ ld a, b
+.load
+ ld [hli], a
+ dec c
+ jr nz, .load
+ jr .loop
+
+PokegearAskWhoCallText:
+ text_far _PokegearAskWhoCallText
+ text_end
+
+PokegearPressButtonText:
+ text_far _PokegearPressButtonText
+ text_end
+
+PokegearAskDeleteText:
+ text_far _PokegearAskDeleteText
+ text_end
+
+PokegearSpritesGFX:
+INCBIN "gfx/pokegear/pokegear_sprites.2bpp.lz"
+
+RadioTilemapRLE:
+INCBIN "gfx/pokegear/radio.tilemap.rle"
+PhoneTilemapRLE:
+INCBIN "gfx/pokegear/phone.tilemap.rle"
+ClockTilemapRLE:
+INCBIN "gfx/pokegear/clock.tilemap.rle"
+
+_UpdateRadioStation:
+ jr UpdateRadioStation
+
+; called from engine/sprite_anims.asm
+
+AnimateTuningKnob:
+ push bc
+ call .TuningKnob
+ pop bc
+ ld a, [wRadioTuningKnob]
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.TuningKnob:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ret
+
+.down
+ ld hl, wRadioTuningKnob
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ dec [hl]
+ jr .update
+
+.up
+ ld hl, wRadioTuningKnob
+ ld a, [hl]
+ cp 80
+ ret nc
+ inc [hl]
+ inc [hl]
+.update
+UpdateRadioStation:
+ ld hl, wRadioTuningKnob
+ ld d, [hl]
+ ld hl, RadioChannels
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .nostation
+ cp d
+ jr z, .foundstation
+ inc hl
+ inc hl
+ jr .loop
+
+.nostation
+ call NoRadioStation
+ ret
+
+.foundstation
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .returnafterstation
+ push de
+ jp hl
+
+.returnafterstation
+ ld a, [wPokegearRadioChannelBank]
+ and a
+ ret z
+ xor a
+ ldh [hBGMapMode], a
+ hlcoord 2, 9
+ call PlaceString
+ ld a, $1
+ ldh [hBGMapMode], a
+ ret
+
+; unused
+ ld [wPokegearRadioChannelBank], a
+ ld a, [hli]
+ ld [wPokegearRadioChannelAddr], a
+ ld a, [hli]
+ ld [wPokegearRadioChannelAddr + 1], a
+ ret
+
+RadioChannels:
+; entries correspond to constants/radio_constants.asm
+
+; frequency value given here = 4 × ingame_frequency − 2
+ dbw 16, .PKMNTalkAndPokedexShow ; 04.5
+ dbw 28, .PokemonMusic ; 07.5
+ dbw 32, .LuckyChannel ; 08.5
+ dbw 52, .RuinsOfAlphRadio ; 13.5
+ dbw 64, .PlacesAndPeople ; 16.5
+ dbw 72, .LetsAllSing ; 18.5
+ dbw 78, .PokeFluteRadio ; 20.0
+ dbw 80, .EvolutionRadio ; 20.5
+ db -1
+
+.PKMNTalkAndPokedexShow:
+; Pokédex Show in the morning
+
+; Oak's Pokémon Talk in the afternoon and evening
+ call .InJohto
+ jr nc, .NoSignal
+ ld a, [wTimeOfDay]
+ and a
+ jp z, LoadStation_PokedexShow
+ jp LoadStation_OaksPokemonTalk
+
+.PokemonMusic:
+ call .InJohto
+ jr nc, .NoSignal
+ jp LoadStation_PokemonMusic
+
+.LuckyChannel:
+ call .InJohto
+ jr nc, .NoSignal
+ jp LoadStation_LuckyChannel
+
+.RuinsOfAlphRadio:
+ ld a, [wPokegearMapPlayerIconLandmark]
+ cp LANDMARK_RUINS_OF_ALPH
+ jr nz, .NoSignal
+ jp LoadStation_UnownRadio
+
+.PlacesAndPeople:
+ call .InJohto
+ jr c, .NoSignal
+ jp LoadStation_PlacesAndPeople
+
+.LetsAllSing:
+ call .InJohto
+ jr c, .NoSignal
+ jp LoadStation_LetsAllSing
+
+.PokeFluteRadio:
+ call .InJohto
+ jr c, .NoSignal
+ ld a, [wPokegearFlags]
+ bit POKEGEAR_EXPN_CARD_F, a
+ jr z, .NoSignal
+ jp LoadStation_PokeFluteRadio
+
+.EvolutionRadio:
+; This station airs in the Lake of Rage area when Team Rocket is still in Mahogany.
+ ld a, [wStatusFlags]
+ bit STATUSFLAGS_ROCKET_SIGNAL_F, a
+ jr z, .NoSignal
+ ld a, [wPokegearMapPlayerIconLandmark]
+ cp LANDMARK_MAHOGANY_TOWN
+ jr z, .ok
+ cp LANDMARK_ROUTE_43
+ jr z, .ok
+ cp LANDMARK_LAKE_OF_RAGE
+ jr nz, .NoSignal
+.ok
+ jp LoadStation_EvolutionRadio
+
+.NoSignal:
+ call NoRadioStation
+ ret
+
+.InJohto:
+; if in Johto or on the S.S. Aqua, set carry
+
+; otherwise clear carry
+ ld a, [wPokegearMapPlayerIconLandmark]
+ cp LANDMARK_FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr c, .johto
+.kanto
+ and a
+ ret
+
+.johto
+ scf
+ ret
+
+LoadStation_OaksPokemonTalk:
+ xor a ; OAKS_POKEMON_TALK
+ ld [wCurRadioLine], a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, OaksPKMNTalkName
+ ret
+
+LoadStation_PokedexShow:
+ ld a, POKEDEX_SHOW
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, PokedexShowName
+ ret
+
+LoadStation_PokemonMusic:
+ ld a, POKEMON_MUSIC
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, PokemonMusicName
+ ret
+
+LoadStation_LuckyChannel:
+ ld a, LUCKY_CHANNEL
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, LuckyChannelName
+ ret
+
+LoadStation_UnownRadio:
+ ld a, UNOWN_RADIO
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, UnownStationName
+ ret
+
+LoadStation_PlacesAndPeople:
+ ld a, PLACES_AND_PEOPLE
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, PlacesAndPeopleName
+ ret
+
+LoadStation_LetsAllSing:
+ ld a, LETS_ALL_SING
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, LetsAllSingName
+ ret
+
+LoadStation_RocketRadio:
+ ld a, ROCKET_RADIO
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, LetsAllSingName
+ ret
+
+LoadStation_PokeFluteRadio:
+ ld a, POKE_FLUTE_RADIO
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, PokeFluteStationName
+ ret
+
+LoadStation_EvolutionRadio:
+ ld a, EVOLUTION_RADIO
+ ld [wCurRadioLine], a
+ xor a
+ ld [wNumRadioLinesPrinted], a
+ ld a, BANK(PlayRadioShow)
+ ld hl, PlayRadioShow
+ call Radio_BackUpFarCallParams
+ ld de, UnownStationName
+ ret
+
+Unreferenced_LoadStation:
+ ret
+
+RadioMusicRestartDE:
+ push de
+ ld a, e
+ ld [wPokegearRadioMusicPlaying], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ pop de
+ ld a, e
+ ld [wMapMusic], a
+ call PlayMusic
+ ret
+
+RadioMusicRestartPokemonChannel:
+ push de
+ ld a, RESTART_MAP_MUSIC
+ ld [wPokegearRadioMusicPlaying], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ pop de
+ ld de, MUSIC_POKEMON_CHANNEL
+ call PlayMusic
+ ret
+
+Radio_BackUpFarCallParams:
+ ld [wPokegearRadioChannelBank], a
+ ld a, l
+ ld [wPokegearRadioChannelAddr], a
+ ld a, h
+ ld [wPokegearRadioChannelAddr + 1], a
+ ret
+
+NoRadioStation:
+; no radio music
+ ld de, MUSIC_NONE
+ call PlayMusic
+ ld a, ENTER_MAP_MUSIC
+ ld [wPokegearRadioMusicPlaying], a
+; no radio name
+ xor a
+ ldh [hBGMapMode], a
+ hlcoord 1, 8
+ lb bc, 3, 18
+ call ClearBox
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call Textbox
+; no radio channel
+ xor a
+ ld [wPokegearRadioChannelBank], a
+ ld [wPokegearRadioChannelAddr], a
+ ld [wPokegearRadioChannelAddr + 1], a
+ ld a, $1
+ ldh [hBGMapMode], a
+ ret
+
+OaksPKMNTalkName: db "OAK's <PK><MN> Talk@"
+PokedexShowName: db "#DEX Show@"
+PokemonMusicName: db "#MON Music@"
+LuckyChannelName: db "Lucky Channel@"
+UnownStationName: db "?????@"
+
+PlacesAndPeopleName: db "Places & People@"
+LetsAllSingName: db "Let's All Sing!@"
+PokeFluteStationName: db "# FLUTE@"
+
+_TownMap:
+ ld hl, wOptions
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+
+ ldh a, [hInMenu]
+ push af
+ ld a, $1
+ ldh [hInMenu], a
+
+ ld a, [wVramState]
+ push af
+ xor a
+ ld [wVramState], a
+
+ call ClearBGPalettes
+ call ClearTilemap
+ call ClearSprites
+ call DisableLCD
+ call Pokegear_LoadGFX
+ farcall ClearSpriteAnims
+ ld a, 8
+ call SkipMusic
+ ld a, LCDC_DEFAULT
+ ldh [rLCDC], a
+ call TownMap_GetCurrentLandmark
+ ld [wTownMapPlayerIconLandmark], a
+ ld [wTownMapCursorLandmark], a
+ xor a
+ ldh [hBGMapMode], a
+ call .InitTilemap
+ call WaitBGMap2
+ ld a, [wTownMapPlayerIconLandmark]
+ call PokegearMap_InitPlayerIcon
+ ld a, [wTownMapCursorLandmark]
+ call PokegearMap_InitCursor
+ ld a, c
+ ld [wTownMapCursorObjectPointer], a
+ ld a, b
+ ld [wTownMapCursorObjectPointer + 1], a
+ ld b, SCGB_POKEGEAR_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ldh a, [hCGB]
+ and a
+ jr z, .dmg
+ ld a, %11100100
+ call DmgToCgbObjPal0
+ call DelayFrame
+
+.dmg
+ ld a, [wTownMapPlayerIconLandmark]
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+ ld d, KANTO_LANDMARK - 1
+ ld e, 1
+ call .loop
+ jr .resume
+
+.kanto
+ call TownMap_GetKantoLandmarkLimits
+ call .loop
+
+.resume
+ pop af
+ ld [wVramState], a
+ pop af
+ ldh [hInMenu], a
+ pop af
+ ld [wOptions], a
+ call ClearBGPalettes
+ ret
+
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ ret nz
+
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .pressed_up
+
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .pressed_down
+.loop2
+ push de
+ farcall PlaySpriteAnimations
+ pop de
+ call DelayFrame
+ jr .loop
+
+.pressed_up
+ ld hl, wTownMapCursorLandmark
+ ld a, [hl]
+ cp d
+ jr c, .okay
+ ld a, e
+ dec a
+ ld [hl], a
+
+.okay
+ inc [hl]
+ jr .next
+
+.pressed_down
+ ld hl, wTownMapCursorLandmark
+ ld a, [hl]
+ cp e
+ jr nz, .okay2
+ ld a, d
+ inc a
+ ld [hl], a
+
+.okay2
+ dec [hl]
+
+.next
+ push de
+ ld a, [wTownMapCursorLandmark]
+ call PokegearMap_UpdateLandmarkName
+ ld a, [wTownMapCursorObjectPointer]
+ ld c, a
+ ld a, [wTownMapCursorObjectPointer + 1]
+ ld b, a
+ ld a, [wTownMapCursorLandmark]
+ call PokegearMap_UpdateCursorPosition
+ pop de
+ jr .loop2
+
+.InitTilemap:
+ ld a, [wTownMapPlayerIconLandmark]
+ cp KANTO_LANDMARK
+ jr nc, .kanto2
+ ld e, JOHTO_REGION
+ jr .okay_tilemap
+
+.kanto2
+ ld e, KANTO_REGION
+.okay_tilemap
+ farcall PokegearMap
+ ld a, $07
+ ld bc, 6
+ hlcoord 1, 0
+ call ByteFill
+ hlcoord 0, 0
+ ld [hl], $06
+ hlcoord 7, 0
+ ld [hl], $17
+ hlcoord 7, 1
+ ld [hl], $16
+ hlcoord 7, 2
+ ld [hl], $26
+ ld a, $07
+ ld bc, NAME_LENGTH
+ hlcoord 8, 2
+ call ByteFill
+ hlcoord 19, 2
+ ld [hl], $17
+ ld a, [wTownMapCursorLandmark]
+ call PokegearMap_UpdateLandmarkName
+ farcall TownMapPals
+ ret
+
+PlayRadio:
+ ld hl, wOptions
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call .PlayStation
+ ld c, 100
+ call DelayFrames
+.loop
+ call JoyTextDelay
+ ldh a, [hJoyPressed]
+ and A_BUTTON | B_BUTTON
+ jr nz, .stop
+ ld a, [wPokegearRadioChannelAddr]
+ ld l, a
+ ld a, [wPokegearRadioChannelAddr + 1]
+ ld h, a
+ ld a, [wPokegearRadioChannelBank]
+ and a
+ jr z, .zero
+ rst FarCall
+.zero
+ call DelayFrame
+ jr .loop
+
+.stop
+ pop af
+ ld [wOptions], a
+ call ExitPokegearRadio_HandleMusic
+ ret
+
+.PlayStation:
+ ld a, ENTER_MAP_MUSIC
+ ld [wPokegearRadioMusicPlaying], a
+ ld hl, .StationPointers
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .jump_return
+ push de
+ jp hl
+
+.jump_return
+ push de
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call Textbox
+ hlcoord 1, 14
+ ld [hl], "“"
+ pop de
+ hlcoord 2, 14
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld [hl], "”"
+ call WaitBGMap
+ ret
+
+.StationPointers:
+; entries correspond to MAPRADIO_* constants
+ dw .OakOrPnP
+ dw LoadStation_OaksPokemonTalk
+ dw LoadStation_PokedexShow
+ dw LoadStation_PokemonMusic
+ dw LoadStation_LuckyChannel
+ dw LoadStation_UnownRadio
+ dw LoadStation_PlacesAndPeople
+ dw LoadStation_LetsAllSing
+ dw LoadStation_RocketRadio
+
+.OakOrPnP:
+ call IsInJohto
+ and a
+ jr nz, .kanto
+ call UpdateTime
+ ld a, [wTimeOfDay]
+ and a
+ jp z, LoadStation_PokedexShow
+ jp LoadStation_OaksPokemonTalk
+
+.kanto
+ jp LoadStation_PlacesAndPeople
+
+PokegearMap:
+ ld a, e
+ and a
+ jr nz, .kanto
+ call LoadTownMapGFX
+ call FillJohtoMap
+ ret
+
+.kanto
+ call LoadTownMapGFX
+ call FillKantoMap
+ ret
+
+_FlyMap:
+ call ClearBGPalettes
+ call ClearTilemap
+ call ClearSprites
+ ld hl, hInMenu
+ ld a, [hl]
+ push af
+ ld [hl], $1
+ xor a
+ ldh [hBGMapMode], a
+ farcall ClearSpriteAnims
+ call LoadTownMapGFX
+ ld de, FlyMapLabelBorderGFX
+ ld hl, vTiles2 tile $30
+ lb bc, BANK(FlyMapLabelBorderGFX), 6
+ call Request1bpp
+ call FlyMap
+ call ret_91c8f
+ ld b, SCGB_POKEGEAR_PALS
+ call GetSGBLayout
+ call SetPalettes
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .pressedB
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .pressedA
+ call FlyMapScroll
+ call GetMapCursorCoordinates
+ farcall PlaySpriteAnimations
+ call DelayFrame
+ jr .loop
+
+.pressedB
+ ld a, -1
+ jr .exit
+
+.pressedA
+ ld a, [wTownMapPlayerIconLandmark]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints + 1
+ add hl, de
+ ld a, [hl]
+.exit
+ ld [wTownMapPlayerIconLandmark], a
+ pop af
+ ldh [hInMenu], a
+ call ClearBGPalettes
+ ld a, $90
+ ldh [hWY], a
+ xor a ; LOW(vBGMap0)
+ ldh [hBGMapAddress], a
+ ld a, HIGH(vBGMap0)
+ ldh [hBGMapAddress + 1], a
+ ld a, [wTownMapPlayerIconLandmark]
+ ld e, a
+ ret
+
+FlyMapScroll:
+ ld a, [wStartFlypoint]
+ ld e, a
+ ld a, [wEndFlypoint]
+ ld d, a
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .ScrollNext
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .ScrollPrev
+ ret
+
+.ScrollNext:
+ ld hl, wTownMapPlayerIconLandmark
+ ld a, [hl]
+ cp d
+ jr nz, .NotAtEndYet
+ ld a, e
+ dec a
+ ld [hl], a
+.NotAtEndYet:
+ inc [hl]
+ call CheckIfVisitedFlypoint
+ jr z, .ScrollNext
+ jr .Finally
+
+.ScrollPrev:
+ ld hl, wTownMapPlayerIconLandmark
+ ld a, [hl]
+ cp e
+ jr nz, .NotAtStartYet
+ ld a, d
+ inc a
+ ld [hl], a
+.NotAtStartYet:
+ dec [hl]
+ call CheckIfVisitedFlypoint
+ jr z, .ScrollPrev
+.Finally:
+ call TownMapBubble
+ call WaitBGMap
+ xor a
+ ldh [hBGMapMode], a
+ ret
+
+TownMapBubble:
+; Draw the bubble containing the location text in the town map HUD
+
+; Top-left corner
+ hlcoord 1, 0
+ ld a, $30
+ ld [hli], a
+; Top row
+ ld bc, 16
+ ld a, " "
+ call ByteFill
+; Top-right corner
+ ld a, $31
+ ld [hl], a
+ hlcoord 1, 1
+
+; Middle row
+ ld bc, SCREEN_WIDTH - 2
+ ld a, " "
+ call ByteFill
+
+; Bottom-left corner
+ hlcoord 1, 2
+ ld a, $32
+ ld [hli], a
+; Bottom row
+ ld bc, 16
+ ld a, " "
+ call ByteFill
+; Bottom-right corner
+ ld a, $33
+ ld [hl], a
+
+; Print "Where?"
+ hlcoord 2, 0
+ ld de, .Where
+ call PlaceString
+; Print the name of the default flypoint
+ call .Name
+; Up/down arrows
+ hlcoord 18, 1
+ ld [hl], $34
+ ret
+
+.Where:
+ db "Where?@"
+
+.Name:
+; We need the map location of the default flypoint
+ ld a, [wTownMapPlayerIconLandmark]
+ ld l, a
+ ld h, 0
+ add hl, hl ; two bytes per flypoint
+ ld de, Flypoints
+ add hl, de
+ ld e, [hl]
+ farcall GetLandmarkName
+ hlcoord 2, 1
+ ld de, wStringBuffer1
+ call PlaceString
+ ret
+
+GetMapCursorCoordinates:
+ ld a, [wTownMapPlayerIconLandmark]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints
+ add hl, de
+ ld e, [hl]
+ farcall GetLandmarkCoords
+ ld a, [wTownMapCursorCoordinates]
+ ld c, a
+ ld a, [wTownMapCursorCoordinates + 1]
+ ld b, a
+ ld hl, 4
+ add hl, bc
+ ld [hl], e
+ ld hl, 5
+ add hl, bc
+ ld [hl], d
+ ret
+
+CheckIfVisitedFlypoint:
+; Check if the flypoint loaded in [hl] has been visited yet.
+ push bc
+ push de
+ push hl
+ ld l, [hl]
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints + 1
+ add hl, de
+ ld c, [hl]
+ call HasVisitedSpawn
+ pop hl
+ pop de
+ pop bc
+ and a
+ ret
+
+HasVisitedSpawn:
+; Check if spawn point c has been visited.
+ ld hl, wVisitedSpawns
+ ld b, CHECK_FLAG
+ ld d, 0
+ predef SmallFarFlagAction
+ ld a, c
+ ret
+
+INCLUDE "data/maps/flypoints.asm"
+
+ret_91c8f:
+ ret
+
+FlyMap:
+ ld a, [wMapGroup]
+ ld b, a
+ ld a, [wMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+; If we're not in a valid location, i.e. Pokecenter floor 2F,
+; the backup map information is used.
+ cp LANDMARK_SPECIAL
+ jr nz, .CheckRegion
+ ld a, [wBackupMapGroup]
+ ld b, a
+ ld a, [wBackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+.CheckRegion:
+; The first 46 locations are part of Johto. The rest are in Kanto.
+ cp KANTO_LANDMARK
+ jr nc, .KantoFlyMap
+.JohtoFlyMap:
+; Note that .NoKanto should be modified in tandem with this branch
+ push af
+; Start from New Bark Town
+ ld a, FLY_NEW_BARK
+ ld [wTownMapPlayerIconLandmark], a
+; Flypoints begin at New Bark Town...
+ ld [wStartFlypoint], a
+; ..and end at Silver Cave.
+ ld a, FLY_MT_SILVER
+ ld [wEndFlypoint], a
+; Fill out the map
+ call FillJohtoMap
+ call .MapHud
+ pop af
+ call TownMapPlayerIcon
+ ret
+
+.KantoFlyMap:
+; The event that there are no flypoints enabled in a map is not
+; accounted for. As a result, if you attempt to select a flypoint
+; when there are none enabled, the game will crash. Additionally,
+; the flypoint selection has a default starting point that
+; can be flown to even if none are enabled.
+; To prevent both of these things from happening when the player
+; enters Kanto, fly access is restricted until Indigo Plateau is
+; visited and its flypoint enabled.
+ push af
+ ld c, SPAWN_INDIGO
+ call HasVisitedSpawn
+ and a
+ jr z, .NoKanto
+; Kanto's map is only loaded if we've visited Indigo Plateau
+
+; Flypoints begin at Pallet Town...
+ ld a, FLY_PALLET
+ ld [wStartFlypoint], a
+; ...and end at Indigo Plateau
+ ld a, FLY_INDIGO
+ ld [wEndFlypoint], a
+; Because Indigo Plateau is the first flypoint the player
+; visits, it's made the default flypoint.
+ ld [wTownMapPlayerIconLandmark], a
+; Fill out the map
+ call FillKantoMap
+ call .MapHud
+ pop af
+ call TownMapPlayerIcon
+ ret
+
+.NoKanto:
+; If Indigo Plateau hasn't been visited, we use Johto's map instead
+
+; Start from New Bark Town
+ ld a, FLY_NEW_BARK
+ ld [wTownMapPlayerIconLandmark], a
+; Flypoints begin at New Bark Town...
+ ld [wStartFlypoint], a
+; ..and end at Silver Cave
+ ld a, FLY_MT_SILVER
+ ld [wEndFlypoint], a
+ call FillJohtoMap
+ pop af
+.MapHud:
+ call TownMapBubble
+ call TownMapPals
+ hlbgcoord 0, 0 ; BG Map 0
+ call TownMapBGUpdate
+ call TownMapMon
+ ld a, c
+ ld [wTownMapCursorCoordinates], a
+ ld a, b
+ ld [wTownMapCursorCoordinates + 1], a
+ ret
+
+Pokedex_GetArea:
+; e: Current landmark
+ ld a, [wTownMapPlayerIconLandmark]
+ push af
+ ld a, [wTownMapCursorLandmark]
+ push af
+ ld a, e
+ ld [wTownMapPlayerIconLandmark], a
+ call ClearSprites
+ xor a
+ ldh [hBGMapMode], a
+ ld a, $1
+ ldh [hInMenu], a
+ ld de, PokedexNestIconGFX
+ ld hl, vTiles0 tile $7f
+ lb bc, BANK(PokedexNestIconGFX), 1
+ call Request2bpp
+ call .GetPlayerOrFastShipIcon
+ ld hl, vTiles0 tile $78
+ ld c, 4
+ call Request2bpp
+ call LoadTownMapGFX
+ call FillKantoMap
+ call .PlaceString_MonsNest
+ call TownMapPals
+ hlbgcoord 0, 0, vBGMap1
+ call TownMapBGUpdate
+ call FillJohtoMap
+ call .PlaceString_MonsNest
+ call TownMapPals
+ hlbgcoord 0, 0
+ call TownMapBGUpdate
+ ld b, SCGB_POKEGEAR_PALS
+ call GetSGBLayout
+ call SetPalettes
+ xor a
+ ldh [hBGMapMode], a
+ xor a ; JOHTO_REGION
+ call .GetAndPlaceNest
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and A_BUTTON | B_BUTTON
+ jr nz, .a_b
+ ldh a, [hJoypadDown]
+ and SELECT
+ jr nz, .select
+ call .LeftRightInput
+ call .BlinkNestIcons
+ jr .next
+
+.select
+ call .HideNestsShowPlayer
+.next
+ call DelayFrame
+ jr .loop
+
+.a_b
+ call ClearSprites
+ pop af
+ ld [wTownMapCursorLandmark], a
+ pop af
+ ld [wTownMapPlayerIconLandmark], a
+ ret
+
+.LeftRightInput:
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ ret
+
+.left
+ ldh a, [hWY]
+ cp $90
+ ret z
+ call ClearSprites
+ ld a, $90
+ ldh [hWY], a
+ xor a ; JOHTO_REGION
+ call .GetAndPlaceNest
+ ret
+
+.right
+ ld a, [wStatusFlags]
+ bit STATUSFLAGS_HALL_OF_FAME_F, a
+ ret z
+ ldh a, [hWY]
+ and a
+ ret z
+ call ClearSprites
+ xor a
+ ldh [hWY], a
+ ld a, KANTO_REGION
+ call .GetAndPlaceNest
+ ret
+
+.BlinkNestIcons:
+ ldh a, [hVBlankCounter]
+ ld e, a
+ and $f
+ ret nz
+ ld a, e
+ and $10
+ jr nz, .copy_sprites
+ call ClearSprites
+ ret
+
+.copy_sprites
+ hlcoord 0, 0
+ ld de, wVirtualOAM
+ ld bc, wVirtualOAMEnd - wVirtualOAM
+ call CopyBytes
+ ret
+
+.PlaceString_MonsNest:
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 1
+ ld a, $06
+ ld [hli], a
+ ld bc, SCREEN_WIDTH - 2
+ ld a, $07
+ call ByteFill
+ ld [hl], $17
+ call GetPokemonName
+ hlcoord 2, 0
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, .String_SNest
+ call PlaceString
+ ret
+
+.String_SNest:
+ db "'S NEST@"
+
+.GetAndPlaceNest:
+ ld [wTownMapCursorLandmark], a
+ ld e, a
+ farcall FindNest ; load nest landmarks into wTilemap[0,0]
+ decoord 0, 0
+ ld hl, wVirtualOAMSprite00
+.nestloop
+ ld a, [de]
+ and a
+ jr z, .done_nest
+ push de
+ ld e, a
+ push hl
+ farcall GetLandmarkCoords
+ pop hl
+ ; load into OAM
+ ld a, d
+ sub 4
+ ld [hli], a ; y
+ ld a, e
+ sub 4
+ ld [hli], a ; x
+ ld a, $7f ; nest icon
+ ld [hli], a ; tile id
+ xor a
+ ld [hli], a ; attributes
+ ; next
+ pop de
+ inc de
+ jr .nestloop
+
+.done_nest
+ ld hl, wVirtualOAM
+ decoord 0, 0
+ ld bc, wVirtualOAMEnd - wVirtualOAM
+ call CopyBytes
+ ret
+
+.HideNestsShowPlayer:
+ call .CheckPlayerLocation
+ ret c
+ ld a, [wTownMapPlayerIconLandmark]
+ ld e, a
+ farcall GetLandmarkCoords
+ ld c, e
+ ld b, d
+ ld de, .PlayerOAM
+ ld hl, wVirtualOAMSprite00
+.ShowPlayerLoop:
+ ld a, [de]
+ cp $80
+ jr z, .clear_oam
+ add b
+ ld [hli], a ; y
+ inc de
+ ld a, [de]
+ add c
+ ld [hli], a ; x
+ inc de
+ ld a, [de]
+ add $78 ; where the player's sprite is loaded
+ ld [hli], a ; tile id
+ inc de
+ xor a ; PAL_OW_RED
+ ld [hli], a ; attributes
+ jr .ShowPlayerLoop
+
+.clear_oam
+ ld hl, wVirtualOAMSprite04
+ ld bc, wVirtualOAMEnd - wVirtualOAMSprite04
+ xor a
+ call ByteFill
+ ret
+
+.PlayerOAM:
+ ; y pxl, x pxl, tile offset
+ db -1 * 8, -1 * 8, 0 ; top left
+ db -1 * 8, 0 * 8, 1 ; top right
+ db 0 * 8, -1 * 8, 2 ; bottom left
+ db 0 * 8, 0 * 8, 3 ; bottom right
+ db $80 ; terminator
+
+.CheckPlayerLocation:
+; Don't show the player's sprite if you're
+; not in the same region as what's currently
+; on the screen.
+ ld a, [wTownMapPlayerIconLandmark]
+ cp LANDMARK_FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr c, .johto
+.kanto
+ ld a, [wTownMapCursorLandmark]
+ and a
+ jr z, .clear
+ jr .ok
+
+.johto
+ ld a, [wTownMapCursorLandmark]
+ and a
+ jr nz, .clear
+.ok
+ and a
+ ret
+
+.clear
+ ld hl, wVirtualOAM
+ ld bc, wVirtualOAMEnd - wVirtualOAM
+ xor a
+ call ByteFill
+ scf
+ ret
+
+.GetPlayerOrFastShipIcon:
+ ld a, [wTownMapPlayerIconLandmark]
+ cp LANDMARK_FAST_SHIP
+ jr z, .FastShip
+ ld de, ChrisSpriteGFX
+ ld b, BANK(ChrisSpriteGFX)
+ ret
+
+.FastShip:
+ ld de, FastShipGFX
+ ld b, BANK(FastShipGFX)
+ ret
+
+TownMapBGUpdate:
+; Update BG Map tiles and attributes
+
+; BG Map address
+ ld a, l
+ ldh [hBGMapAddress], a
+ ld a, h
+ ldh [hBGMapAddress + 1], a
+; Only update palettes on CGB
+ ldh a, [hCGB]
+ and a
+ jr z, .tiles
+; BG Map mode 2 (palettes)
+ ld a, 2
+ ldh [hBGMapMode], a
+; The BG Map is updated in thirds, so we wait
+
+; 3 frames to update the whole screen's palettes.
+ ld c, 3
+ call DelayFrames
+.tiles
+; Update BG Map tiles
+ call WaitBGMap
+; Turn off BG Map update
+ xor a
+ ldh [hBGMapMode], a
+ ret
+
+FillJohtoMap:
+ ld de, JohtoMap
+ jr FillTownMap
+
+FillKantoMap:
+ ld de, KantoMap
+FillTownMap:
+ hlcoord 0, 0
+.loop
+ ld a, [de]
+ cp -1
+ ret z
+ ld a, [de]
+ ld [hli], a
+ inc de
+ jr .loop
+
+TownMapPals:
+; Assign palettes based on tile ids
+ hlcoord 0, 0
+ decoord 0, 0, wAttrmap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+.loop
+; Current tile
+ ld a, [hli]
+ push hl
+; The palette map covers tiles $00 to $5f; $60 and above use palette 0
+ cp $60
+ jr nc, .pal0
+
+; The palette data is condensed to nybbles, least-significant first.
+ ld hl, .PalMap
+ srl a
+ jr c, .odd
+; Even-numbered tile ids take the bottom nybble...
+ add l
+ ld l, a
+ ld a, h
+ adc 0
+ ld h, a
+ ld a, [hl]
+ and PALETTE_MASK
+ jr .update
+
+.odd
+; ...and odd ids take the top.
+ add l
+ ld l, a
+ ld a, h
+ adc 0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and PALETTE_MASK
+ jr .update
+
+.pal0
+ xor a
+.update
+ pop hl
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+
+.PalMap:
+INCLUDE "gfx/pokegear/town_map_palette_map.asm"
+
+TownMapMon:
+; Draw the FlyMon icon at town map location
+
+; Get FlyMon species
+ ld a, [wCurPartyMon]
+ ld hl, wPartySpecies
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ld [wTempIconSpecies], a
+; Get FlyMon icon
+ ld e, $08 ; starting tile in VRAM
+ farcall GetSpeciesIcon
+; Animation/palette
+ depixel 0, 0
+ ld a, SPRITE_ANIM_INDEX_PARTY_MON
+ call InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_TILE_ID
+ add hl, bc
+ ld [hl], $08
+ ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
+ add hl, bc
+ ld [hl], SPRITE_ANIM_SEQ_NULL
+ ret
+
+TownMapPlayerIcon:
+; Draw the player icon at town map location in a
+ push af
+ ld de, ChrisSpriteGFX
+; Standing icon
+ ld hl, vTiles0 tile $10
+ lb bc, BANK(ChrisSpriteGFX), 4
+ call Request2bpp
+; Walking icon
+ ld de, ChrisSpriteGFX + 12 tiles
+ ld hl, vTiles0 tile $14
+ lb bc, BANK(ChrisSpriteGFX), 4
+ ld a, BANK(ChrisSpriteGFX) ; does nothing
+ call Request2bpp
+; Animation/palette
+ depixel 0, 0
+ ld a, SPRITE_ANIM_INDEX_RED_WALK
+ call InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_TILE_ID
+ add hl, bc
+ ld [hl], $10
+ pop af
+ ld e, a
+ push bc
+ farcall GetLandmarkCoords
+ pop bc
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], e
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], d
+ ret
+
+LoadTownMapGFX:
+ ld hl, TownMapGFX
+ ld de, vTiles2
+ lb bc, BANK(TownMapGFX), 48
+ call DecompressRequest2bpp
+ ret
+
+JohtoMap:
+INCBIN "gfx/pokegear/johto.bin"
+
+KantoMap:
+INCBIN "gfx/pokegear/kanto.bin"
+
+PokedexNestIconGFX:
+INCBIN "gfx/pokegear/dexmap_nest_icon.2bpp"
+FlyMapLabelBorderGFX:
+INCBIN "gfx/pokegear/flymap_label_border.1bpp"
+
+Unreferenced_Function92311:
+ xor a
+ ld [wTownMapPlayerIconLandmark], a
+ call ClearBGPalettes
+ call ClearTilemap
+ call ClearSprites
+ ld hl, hInMenu
+ ld a, [hl]
+ push af
+ ld [hl], $1
+ xor a
+ ldh [hBGMapMode], a
+ farcall ClearSpriteAnims
+ call LoadTownMapGFX
+ ld de, FlyMapLabelBorderGFX
+ ld hl, vTiles2 tile $30
+ lb bc, BANK(FlyMapLabelBorderGFX), 6
+ call Request1bpp
+ call FillKantoMap
+ call TownMapBubble
+ call TownMapPals
+ hlbgcoord 0, 0, vBGMap1
+ call TownMapBGUpdate
+ call FillJohtoMap
+ call TownMapBubble
+ call TownMapPals
+ hlbgcoord 0, 0
+ call TownMapBGUpdate
+ call TownMapMon
+ ld a, c
+ ld [wTownMapCursorCoordinates], a
+ ld a, b
+ ld [wTownMapCursorCoordinates + 1], a
+ ld b, SCGB_POKEGEAR_PALS
+ call GetSGBLayout
+ call SetPalettes
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .pressedB
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .pressedA
+ call .HandleDPad
+ call GetMapCursorCoordinates
+ farcall PlaySpriteAnimations
+ call DelayFrame
+ jr .loop
+
+.pressedB
+ ld a, -1
+ jr .finished_a_b
+
+.pressedA
+ ld a, [wTownMapPlayerIconLandmark]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints + 1
+ add hl, de
+ ld a, [hl]
+.finished_a_b
+ ld [wTownMapPlayerIconLandmark], a
+ pop af
+ ldh [hInMenu], a
+ call ClearBGPalettes
+ ld a, $90
+ ldh [hWY], a
+ xor a ; LOW(vBGMap0)
+ ldh [hBGMapAddress], a
+ ld a, HIGH(vBGMap0)
+ ldh [hBGMapAddress + 1], a
+ ld a, [wTownMapPlayerIconLandmark]
+ ld e, a
+ ret
+
+.HandleDPad:
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_DOWN | D_RIGHT
+ jr nz, .down_right
+ ld a, [hl]
+ and D_UP | D_LEFT
+ jr nz, .up_left
+ ret
+
+.down_right
+ ld hl, wTownMapPlayerIconLandmark
+ ld a, [hl]
+ cp FLY_INDIGO
+ jr c, .okay_dr
+ ld [hl], -1
+.okay_dr
+ inc [hl]
+ jr .continue
+
+.up_left
+ ld hl, wTownMapPlayerIconLandmark
+ ld a, [hl]
+ and a
+ jr nz, .okay_ul
+ ld [hl], FLY_INDIGO + 1
+.okay_ul
+ dec [hl]
+.continue
+ ld a, [wTownMapPlayerIconLandmark]
+ cp KANTO_FLYPOINT
+ jr c, .johto
+ call FillKantoMap
+ xor a
+ ld b, $9c
+ jr .finish
+
+.johto
+ call FillJohtoMap
+ ld a, $90
+ ld b, $98
+.finish
+ ldh [hWY], a
+ ld a, b
+ ldh [hBGMapAddress + 1], a
+ call TownMapBubble
+ call WaitBGMap
+ xor a
+ ldh [hBGMapMode], a
+ ret
diff --git a/gfx/pokegear/clock.tilemap.rle b/gfx/pokegear/clock.tilemap.rle
new file mode 100644
index 00000000..ff8a50fa
--- /dev/null
+++ b/gfx/pokegear/clock.tilemap.rle
@@ -0,0 +1 @@
+OO01OOO 23OOOOOOOOOOOOOO&'OO \ No newline at end of file
diff --git a/gfx/pokegear/dexmap_nest_icon.2bpp b/gfx/pokegear/dexmap_nest_icon.2bpp
new file mode 100644
index 00000000..48a4938e
--- /dev/null
+++ b/gfx/pokegear/dexmap_nest_icon.2bpp
@@ -0,0 +1 @@
+BBffZZ$$ \ No newline at end of file
diff --git a/gfx/pokegear/fast_ship.2bpp b/gfx/pokegear/fast_ship.2bpp
new file mode 100644
index 00000000..e4a5525b
--- /dev/null
+++ b/gfx/pokegear/fast_ship.2bpp
Binary files differ
diff --git a/gfx/pokegear/flymap_label_border.1bpp b/gfx/pokegear/flymap_label_border.1bpp
new file mode 100644
index 00000000..671aab1d
--- /dev/null
+++ b/gfx/pokegear/flymap_label_border.1bpp
Binary files differ
diff --git a/gfx/pokegear/johto.bin b/gfx/pokegear/johto.bin
new file mode 100644
index 00000000..faa5efe7
--- /dev/null
+++ b/gfx/pokegear/johto.bin
Binary files differ
diff --git a/gfx/pokegear/kanto.bin b/gfx/pokegear/kanto.bin
new file mode 100644
index 00000000..8a08cd82
--- /dev/null
+++ b/gfx/pokegear/kanto.bin
Binary files differ
diff --git a/gfx/pokegear/phone.tilemap.rle b/gfx/pokegear/phone.tilemap.rle
new file mode 100644
index 00000000..4dffbc4c
--- /dev/null
+++ b/gfx/pokegear/phone.tilemap.rle
@@ -0,0 +1,4 @@
+O
+OO
+'O
+ \ No newline at end of file
diff --git a/gfx/pokegear/pokegear_sprites.2bpp.lz b/gfx/pokegear/pokegear_sprites.2bpp.lz
new file mode 100644
index 00000000..b5af62d2
--- /dev/null
+++ b/gfx/pokegear/pokegear_sprites.2bpp.lz
Binary files differ
diff --git a/gfx/pokegear/radio.tilemap.rle b/gfx/pokegear/radio.tilemap.rle
new file mode 100644
index 00000000..b181ed75
--- /dev/null
+++ b/gfx/pokegear/radio.tilemap.rle
@@ -0,0 +1,5 @@
+O
+OO7O89O:OHJ;
+LNO
+LN6XYZ[\]5LN&
+'LNMLNMLMLMLMLNM \ No newline at end of file
diff --git a/gfx/pokegear/town_map_palette_map.asm b/gfx/pokegear/town_map_palette_map.asm
new file mode 100644
index 00000000..3224ec35
--- /dev/null
+++ b/gfx/pokegear/town_map_palette_map.asm
@@ -0,0 +1,29 @@
+ const_def
+ const PAL_TOWNMAP_BORDER ; 0
+ const PAL_TOWNMAP_EARTH ; 1
+ const PAL_TOWNMAP_MOUNTAIN ; 2
+ const PAL_TOWNMAP_CITY ; 3
+ const PAL_TOWNMAP_POI ; 4
+ const PAL_TOWNMAP_POI_MTN ; 5
+
+townmappals: MACRO
+rept _NARG / 2
+ dn PAL_TOWNMAP_\2, PAL_TOWNMAP_\1
+ shift 2
+endr
+ENDM
+
+; gfx/pokegear/town_map.png
+ townmappals EARTH, EARTH, EARTH, MOUNTAIN, MOUNTAIN, MOUNTAIN, BORDER, BORDER
+ townmappals EARTH, EARTH, CITY, EARTH, POI, POI_MTN, POI, POI_MTN
+ townmappals EARTH, EARTH, EARTH, MOUNTAIN, MOUNTAIN, MOUNTAIN, BORDER, BORDER
+ townmappals EARTH, EARTH, BORDER, EARTH, EARTH, BORDER, BORDER, BORDER
+ townmappals EARTH, EARTH, EARTH, MOUNTAIN, MOUNTAIN, MOUNTAIN, BORDER, BORDER
+ townmappals BORDER, BORDER, BORDER, BORDER, BORDER, BORDER, BORDER, BORDER
+; gfx/pokegear/pokegear.png
+ townmappals BORDER, BORDER, BORDER, BORDER, POI, POI, POI, BORDER
+ townmappals BORDER, BORDER, BORDER, BORDER, BORDER, BORDER, BORDER, BORDER
+ townmappals CITY, CITY, CITY, CITY, CITY, CITY, CITY, CITY
+ townmappals CITY, CITY, CITY, CITY, CITY, CITY, CITY, BORDER
+ townmappals CITY, CITY, CITY, CITY, CITY, CITY, CITY, CITY
+ townmappals BORDER, BORDER, BORDER, BORDER, BORDER, BORDER, BORDER, BORDER
diff --git a/home/region.asm b/home/region.asm
index 71c19662..ee781759 100755
--- a/home/region.asm
+++ b/home/region.asm
@@ -7,10 +7,10 @@ IsInJohto::
ld c, a
call GetWorldMapLocation
- cp FAST_SHIP
+ cp LANDMARK_FAST_SHIP
jr z, .Johto
- cp SPECIAL_MAP
+ cp LANDMARK_SPECIAL
jr nz, .CheckRegion
ld a, [wBackupMapGroup]
diff --git a/main.asm b/main.asm
index 000d96f2..5a04b02d 100644
--- a/main.asm
+++ b/main.asm
@@ -557,7 +557,9 @@ ClearSpriteAnims2::
LoadOverworldMonIcon::
dr $8e78b, $8e79f
LoadMenuMonIcon::
- dr $8e79f, $8e8fb
+ dr $8e79f, $8e88f
+GetSpeciesIcon::
+ dr $8e88f, $8e8fb
FreezeMonIcons::
dr $8e8fb, $8e922
UnfreezeMonIcons::
@@ -574,7 +576,9 @@ ClearSpriteAnims2::
LoadOverworldMonIcon::
dr $8e771, $8e785
LoadMenuMonIcon::
- dr $8e785, $8e8e1
+ dr $8e785, $8e875
+GetSpeciesIcon::
+ dr $8e875, $8e8e1
FreezeMonIcons::
dr $8e8e1, $8e908
UnfreezeMonIcons::
@@ -588,24 +592,10 @@ SECTION "bank24", ROMX
INCLUDE "engine/phone/phone.asm"
INCLUDE "engine/rtc/timeset.asm"
-PokeGear::
- dr $90b5e, $917ca
-
-RadioMusicRestartDE::
- dr $917ca, $917de
-RadioMusicRestartPokemonChannel::
- dr $917de, $9188a
-_TownMap::
- dr $9188a, $919c1
-PlayRadio::
- dr $919c1, $91a4f
-PokegearMap::
- dr $91a4f, $91a61
-_FlyMap::
- dr $91a61, $91c7f
-Pokedex_GetArea::
- dr $91c7f, $92364
+INCLUDE "engine/pokegear/pokegear.asm"
+GetLandmarkCoords::
+ dr $92355, $92364
GetLandmarkName::
dr $92364, $9297a
Fish::
@@ -800,7 +790,9 @@ EnemyHPBarBorderGFX::
HPExpBarBorderGFX::
dr $f8bd2, $f8c02
ExpBarGFX::
- dr $f8c02, $fb4be
+ dr $f8c02, $f8c92
+TownMapGFX::
+ dr $f8c92, $fb4be
TileCollisionTable::
dr $fb4be, $fb5be
@@ -1082,7 +1074,11 @@ _DudeAutoInput_A::
_DudeAutoInput_RightA::
dr $1c0dee, $1c0df3
_DudeAutoInput_DownA::
- dr $1c0df3, $1c168b
+ dr $1c0df3, $1c0e24
+TownMap_ConvertLineBreakCharacters::
+ dr $1c0e24, $1c0e43
+PokegearGFX::
+ dr $1c0e43, $1c168b
IF DEF(_SILVER)
dr $1c168b, $1c168c
diff --git a/wram.asm b/wram.asm
index bc32c283..ae1ebeba 100644
--- a/wram.asm
+++ b/wram.asm
@@ -315,7 +315,7 @@ wSpriteAnim9:: sprite_anim_struct wSpriteAnim9
wSpriteAnim10:: sprite_anim_struct wSpriteAnim10
wSpriteAnimationStructsEnd::
-wAnimatedObjectStructCount:: ds 1 ; c5bc
+wSpriteAnimCount:: ds 1 ; c5bc
wCurrSpriteOAMAddr:: ds 1 ; c5bd
wCurIcon:: ; c5be
@@ -343,6 +343,7 @@ wc5cd:: ds 1 ; c5cd
wc5ce:: ds 1 ; c5ce
wc5cf:: ds 1 ; c5cf
+UNION ; c5d0
; naming screen
wNamingScreenDestinationPointer:: dw ; c5d0
wNamingScreenCurNameLength:: db ; c5d2
@@ -352,7 +353,23 @@ wNamingScreenCursorObjectPointer:: dw ; c5d5
wNamingScreenLastCharacter:: db ; c5d7
wNamingScreenStringEntryCoord:: dw ; c5d8
- ds 40
+NEXTU ; c5d0
+; pokegear
+wPokegearPhoneLoadNameBuffer:: db ; c5d0
+wPokegearPhoneCursorPosition:: db ; c5d1
+wPokegearPhoneScrollPosition:: db ; c5d2
+wPokegearPhoneSelectedPerson:: db ; cd3
+wPokegearPhoneSubmenuCursor:: db ; c5d4
+wPokegearMapCursorObjectPointer:: dw ; c5d5
+wPokegearMapCursorLandmark:: db ; c5d7
+wPokegearMapPlayerIconLandmark:: db ; c5d8
+wPokegearRadioChannelBank:: db ; c5d9
+wPokegearRadioChannelAddr:: dw ; c5da
+wPokegearRadioMusicPlaying:: db ; c5dc
+
+ENDU ; c5dc
+
+ ds 37
; engine/gfx/color.asm ?
wc602:: ds 1 ; c602
@@ -1051,6 +1068,12 @@ wPrevDexEntryBackup::
wPokedexStatus:: db
NEXTU ; ce64
+; pokegear
+wPokegearCard:: db
+wPokegearMapRegion:: db
+wPokegearCE66:: db
+
+NEXTU ; ce64
; pack
wPackJumptableIndex:: db
wCurPocket:: db
@@ -1272,6 +1295,16 @@ wMartItem9BCD:: ds 3
wMartItem10BCD:: ds 3
NEXTU ; ceed
+; town map data
+wTownMapPlayerIconLandmark:: db
+UNION
+wTownMapCursorLandmark:: db
+wTownMapCursorObjectPointer:: dw
+NEXTU
+wTownMapCursorCoordinates:: dw
+ENDU
+
+NEXTU ; ceed
; phone call data
wPhoneScriptBank:: db
wPhoneCaller:: dw
@@ -1308,6 +1341,9 @@ wEarthquakeMovementDataBuffer:: ds 5
NEXTU ; ceed
; miscellaneous
wTempDayOfWeek:: db
+ ds 2
+wStartFlypoint:: db
+wEndFlypoint:: db
NEXTU ; ceed
; unidentified