summaryrefslogtreecommitdiff
path: root/data/maps
diff options
context:
space:
mode:
Diffstat (limited to 'data/maps')
-rw-r--r--data/maps/landmarks.asm208
-rw-r--r--data/maps/map_scenes.asm89
-rw-r--r--data/maps/mapgroup_roofs.asm31
-rw-r--r--data/maps/outdoor_sprites.asm696
-rw-r--r--data/maps/spawn_points.asm41
5 files changed, 1065 insertions, 0 deletions
diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm
new file mode 100644
index 000000000..0b927aaf6
--- /dev/null
+++ b/data/maps/landmarks.asm
@@ -0,0 +1,208 @@
+landmark: MACRO
+; x, y, name
+ db \1, \2
+ dw \3
+ENDM
+
+Landmarks: ; 0x1ca8c3
+; entries correspond to constants/landmark_constants.asm
+ landmark 0, 0, SpecialMapName
+ landmark 148, 116, NewBarkTownName
+ landmark 136, 116, Route29Name
+ landmark 108, 116, CherrygroveCityName
+ landmark 108, 96, Route30Name
+ landmark 104, 76, Route31Name
+ landmark 92, 76, VioletCityName
+ landmark 93, 74, SproutTowerName
+ landmark 92, 108, Route32Name
+ landmark 84, 92, RuinsOfAlphName
+ landmark 92, 140, UnionCaveName
+ landmark 90, 140, Route33Name
+ landmark 76, 140, AzaleaTownName
+ landmark 78, 138, SlowpokeWellName
+ landmark 60, 136, IlexForestName
+ landmark 60, 128, Route34Name
+ landmark 60, 108, GoldenrodCityName
+ landmark 58, 108, RadioTowerName
+ landmark 60, 92, Route35Name
+ landmark 60, 76, NationalParkName
+ landmark 72, 76, Route36Name
+ landmark 76, 68, Route37Name
+ landmark 76, 60, EcruteakCityName
+ landmark 78, 58, TinTowerName
+ landmark 74, 58, BurnedTowerName
+ landmark 60, 60, Route38Name
+ landmark 44, 64, Route39Name
+ landmark 44, 76, OlivineCityName
+ landmark 46, 78, LighthouseName
+ landmark 36, 72, BattleTowerName
+ landmark 36, 80, Route40Name
+ landmark 36, 108, WhirlIslandsName
+ landmark 36, 116, Route41Name
+ landmark 28, 116, CianwoodCityName
+ landmark 100, 60, Route42Name
+ landmark 92, 60, MtMortarName
+ landmark 116, 60, MahoganyTownName
+ landmark 116, 52, Route43Name
+ landmark 116, 44, LakeOfRageName
+ landmark 128, 60, Route44Name
+ landmark 138, 54, IcePathName
+ landmark 140, 60, BlackthornCityName
+ landmark 140, 52, DragonsDenName
+ landmark 140, 80, Route45Name
+ landmark 120, 88, DarkCaveName
+ landmark 132, 104, Route46Name
+ landmark 156, 84, SilverCaveName
+ landmark 60, 124, PalletTownName
+ landmark 60, 108, Route1Name
+ landmark 60, 92, ViridianCityName
+ landmark 60, 80, Route2Name
+ landmark 60, 68, PewterCityName
+ landmark 72, 68, Route3Name
+ landmark 84, 68, MtMoonName
+ landmark 96, 68, Route4Name
+ landmark 108, 68, CeruleanCityName
+ landmark 108, 60, Route24Name
+ landmark 116, 52, Route25Name
+ landmark 108, 76, Route5Name
+ landmark 116, 92, UndergroundName
+ landmark 108, 92, Route6Name
+ landmark 108, 100, VermilionCityName
+ landmark 96, 76, DiglettsCaveName
+ landmark 96, 84, Route7Name
+ landmark 124, 84, Route8Name
+ landmark 124, 68, Route9Name
+ landmark 140, 68, RockTunnelName
+ landmark 140, 72, Route10Name
+ landmark 140, 76, PowerPlantName
+ landmark 140, 84, LavenderTownName
+ landmark 148, 84, LavRadioTowerName
+ landmark 84, 84, CeladonCityName
+ landmark 108, 84, SaffronCityName
+ landmark 124, 100, Route11Name
+ landmark 140, 96, Route12Name
+ landmark 132, 116, Route13Name
+ landmark 124, 128, Route14Name
+ landmark 112, 132, Route15Name
+ landmark 76, 84, Route16Name
+ landmark 76, 108, Route17Name
+ landmark 88, 132, Route18Name
+ landmark 100, 132, FuchsiaCityName
+ landmark 100, 144, Route19Name
+ landmark 84, 148, Route20Name
+ landmark 76, 148, SeafoamIslandsName
+ landmark 60, 148, CinnabarIslandName
+ landmark 60, 136, Route21Name
+ landmark 44, 84, Route22Name
+ landmark 36, 68, VictoryRoadName
+ landmark 36, 60, Route23Name
+ landmark 36, 52, IndigoPlateauName
+ landmark 36, 108, Route26Name
+ landmark 28, 116, Route27Name
+ landmark 20, 116, TohjoFallsName
+ landmark 28, 84, Route28Name
+ landmark 148, 132, FastShipName
+; 0x1caa43
+
+NewBarkTownName: db "NEW BARK¯TOWN@"
+CherrygroveCityName: db "CHERRYGROVE¯CITY@"
+VioletCityName: db "VIOLET CITY@"
+AzaleaTownName: db "AZALEA TOWN@"
+GoldenrodCityName: db "GOLDENROD¯CITY@"
+EcruteakCityName: db "ECRUTEAK¯CITY@"
+OlivineCityName: db "OLIVINE¯CITY@"
+CianwoodCityName: db "CIANWOOD¯CITY@"
+MahoganyTownName: db "MAHOGANY¯TOWN@"
+BlackthornCityName: db "BLACKTHORN¯CITY@"
+LakeOfRageName: db "LAKE OF¯RAGE@"
+SilverCaveName: db "SILVER CAVE@"
+SproutTowerName: db "SPROUT¯TOWER@"
+RuinsOfAlphName: db "RUINS¯OF ALPH@"
+UnionCaveName: db "UNION CAVE@"
+SlowpokeWellName: db "SLOWPOKE¯WELL@"
+RadioTowerName: db "RADIO TOWER@"
+PowerPlantName: db "POWER PLANT@"
+NationalParkName: db "NATIONAL¯PARK@"
+TinTowerName: db "TIN TOWER@"
+LighthouseName: db "LIGHTHOUSE@"
+WhirlIslandsName: db "WHIRL¯ISLANDS@"
+MtMortarName: db "MT.MORTAR@"
+DragonsDenName: db "DRAGON'S¯DEN@"
+IcePathName: db "ICE PATH@"
+NotApplicableName: db "N/A@"
+PalletTownName: db "PALLET TOWN@"
+ViridianCityName: db "VIRIDIAN¯CITY@"
+PewterCityName: db "PEWTER CITY@"
+CeruleanCityName: db "CERULEAN¯CITY@"
+LavenderTownName: db "LAVENDER¯TOWN@"
+VermilionCityName: db "VERMILION¯CITY@"
+CeladonCityName: db "CELADON¯CITY@"
+SaffronCityName: db "SAFFRON¯CITY@"
+FuchsiaCityName: db "FUCHSIA¯CITY@"
+CinnabarIslandName: db "CINNABAR¯ISLAND@"
+IndigoPlateauName: db "INDIGO¯PLATEAU@"
+VictoryRoadName: db "VICTORY¯ROAD@"
+MtMoonName: db "MT.MOON@"
+RockTunnelName: db "ROCK TUNNEL@"
+LavRadioTowerName: db "LAV¯RADIO TOWER@"
+SilphCoName: db "SILPH CO.@"
+SafariZoneName: db "SAFARI ZONE@"
+SeafoamIslandsName: db "SEAFOAM¯ISLANDS@"
+PokemonMansionName: db "#MON¯MANSION@"
+CeruleanCaveName: db "CERULEAN¯CAVE@"
+Route1Name: db "ROUTE 1@"
+Route2Name: db "ROUTE 2@"
+Route3Name: db "ROUTE 3@"
+Route4Name: db "ROUTE 4@"
+Route5Name: db "ROUTE 5@"
+Route6Name: db "ROUTE 6@"
+Route7Name: db "ROUTE 7@"
+Route8Name: db "ROUTE 8@"
+Route9Name: db "ROUTE 9@"
+Route10Name: db "ROUTE 10@"
+Route11Name: db "ROUTE 11@"
+Route12Name: db "ROUTE 12@"
+Route13Name: db "ROUTE 13@"
+Route14Name: db "ROUTE 14@"
+Route15Name: db "ROUTE 15@"
+Route16Name: db "ROUTE 16@"
+Route17Name: db "ROUTE 17@"
+Route18Name: db "ROUTE 18@"
+Route19Name: db "ROUTE 19@"
+Route20Name: db "ROUTE 20@"
+Route21Name: db "ROUTE 21@"
+Route22Name: db "ROUTE 22@"
+Route23Name: db "ROUTE 23@"
+Route24Name: db "ROUTE 24@"
+Route25Name: db "ROUTE 25@"
+Route26Name: db "ROUTE 26@"
+Route27Name: db "ROUTE 27@"
+Route28Name: db "ROUTE 28@"
+Route29Name: db "ROUTE 29@"
+Route30Name: db "ROUTE 30@"
+Route31Name: db "ROUTE 31@"
+Route32Name: db "ROUTE 32@"
+Route33Name: db "ROUTE 33@"
+Route34Name: db "ROUTE 34@"
+Route35Name: db "ROUTE 35@"
+Route36Name: db "ROUTE 36@"
+Route37Name: db "ROUTE 37@"
+Route38Name: db "ROUTE 38@"
+Route39Name: db "ROUTE 39@"
+Route40Name: db "ROUTE 40@"
+Route41Name: db "ROUTE 41@"
+Route42Name: db "ROUTE 42@"
+Route43Name: db "ROUTE 43@"
+Route44Name: db "ROUTE 44@"
+Route45Name: db "ROUTE 45@"
+Route46Name: db "ROUTE 46@"
+DarkCaveName: db "DARK CAVE@"
+IlexForestName: db "ILEX¯FOREST@"
+BurnedTowerName: db "BURNED¯TOWER@"
+FastShipName: db "FAST SHIP@"
+ViridianForestName: db "VIRIDIAN¯FOREST@"
+DiglettsCaveName: db "DIGLETT'S¯CAVE@"
+TohjoFallsName: db "TOHJO FALLS@"
+UndergroundName: db "UNDERGROUND@"
+BattleTowerName: db "BATTLE¯TOWER@"
+SpecialMapName: db "SPECIAL@"
diff --git a/data/maps/map_scenes.asm b/data/maps/map_scenes.asm
new file mode 100644
index 000000000..3d9600407
--- /dev/null
+++ b/data/maps/map_scenes.asm
@@ -0,0 +1,89 @@
+scene_def: MACRO
+; db group, map
+; dw address
+ map \1
+ dw \2
+ENDM
+
+MapScenes:: ; 4d01e
+ scene_def POKECENTER_2F, wPokecenter2FSceneID
+ scene_def TRADE_CENTER, wTradeCenterSceneID
+ scene_def COLOSSEUM, wColosseumSceneID
+ scene_def TIME_CAPSULE, wTimeCapsuleSceneID
+ scene_def POWER_PLANT, wPowerPlantSceneID
+ scene_def CERULEAN_GYM, wCeruleanGymSceneID
+ scene_def ROUTE_25, wRoute25SceneID
+ scene_def TRAINER_HOUSE_B1F, wTrainerHouseB1FSceneID
+ scene_def VICTORY_ROAD_GATE, wVictoryRoadGateSceneID
+ scene_def SAFFRON_TRAIN_STATION, wSaffronTrainStationSceneID
+ scene_def ROUTE_16_GATE, wRoute16GateSceneID
+ scene_def ROUTE_17_18_GATE, wRoute1718GateSceneID
+ scene_def INDIGO_PLATEAU_POKECENTER_1F, wIndigoPlateauPokecenter1FSceneID
+ scene_def WILLS_ROOM, wWillsRoomSceneID
+ scene_def KOGAS_ROOM, wKogasRoomSceneID
+ scene_def BRUNOS_ROOM, wBrunosRoomSceneID
+ scene_def KARENS_ROOM, wKarensRoomSceneID
+ scene_def LANCES_ROOM, wLancesRoomSceneID
+ scene_def HALL_OF_FAME, wHallOfFameSceneID
+ scene_def ROUTE_27, wRoute27SceneID
+ scene_def NEW_BARK_TOWN, wNewBarkTownSceneID
+ scene_def ELMS_LAB, wElmsLabSceneID
+ scene_def KRISS_HOUSE_1F, wKrissHouse1FSceneID
+ scene_def ROUTE_29, wRoute29SceneID
+ scene_def CHERRYGROVE_CITY, wCherrygroveCitySceneID
+ scene_def MR_POKEMONS_HOUSE, wMrPokemonsHouseSceneID
+ scene_def ROUTE_32, wRoute32SceneID
+ scene_def ROUTE_35_NATIONAL_PARK_GATE, wRoute35NationalParkGateSceneID
+ scene_def ROUTE_36, wRoute36SceneID
+ scene_def ROUTE_36_NATIONAL_PARK_GATE, wRoute36NationalParkGateSceneID
+ scene_def AZALEA_TOWN, wAzaleaTownSceneID
+ scene_def GOLDENROD_GYM, wGoldenrodGymSceneID
+ scene_def GOLDENROD_MAGNET_TRAIN_STATION, wGoldenrodMagnetTrainStationSceneID
+ scene_def GOLDENROD_POKECENTER_1F, wGoldenrodPokecenter1FSceneID
+ scene_def OLIVINE_CITY, wOlivineCitySceneID
+ scene_def ROUTE_34, wRoute34SceneID
+ scene_def ROUTE_34_ILEX_FOREST_GATE, wRoute34IlexForestGateSceneID
+ scene_def ECRUTEAK_HOUSE, wEcruteakHouseSceneID
+ scene_def WISE_TRIOS_ROOM, wWiseTriosRoomSceneID
+ scene_def ECRUTEAK_POKECENTER_1F, wEcruteakPokecenter1FSceneID
+ scene_def ECRUTEAK_GYM, wEcruteakGymSceneID
+ scene_def MAHOGANY_TOWN, wMahoganyTownSceneID
+ scene_def ROUTE_42, wRoute42SceneID
+ scene_def CIANWOOD_CITY, wCianwoodCitySceneID
+ scene_def BATTLE_TOWER_1F, wBattleTower1FSceneID
+ scene_def BATTLE_TOWER_BATTLE_ROOM, wBattleTowerBattleRoomSceneID
+ scene_def BATTLE_TOWER_ELEVATOR, wBattleTowerElevatorSceneID
+ scene_def BATTLE_TOWER_HALLWAY, wBattleTowerHallwaySceneID
+ scene_def BATTLE_TOWER_OUTSIDE, wBattleTowerOutsideSceneID
+ scene_def ROUTE_43_GATE, wRoute43GateSceneID
+ scene_def MOUNT_MOON, wMountMoonSceneID
+ scene_def SPROUT_TOWER_3F, wSproutTower3FSceneID
+ scene_def TIN_TOWER_1F, wTinTower1FSceneID
+ scene_def BURNED_TOWER_1F, wBurnedTower1FSceneID
+ scene_def BURNED_TOWER_B1F, wBurnedTowerB1FSceneID
+ scene_def RADIO_TOWER_5F, wRadioTower5FSceneID
+ scene_def RUINS_OF_ALPH_OUTSIDE, wRuinsOfAlphOutsideSceneID
+ scene_def RUINS_OF_ALPH_RESEARCH_CENTER, wRuinsOfAlphResearchCenterSceneID
+ scene_def RUINS_OF_ALPH_HO_OH_CHAMBER, wRuinsOfAlphHoOhChamberSceneID
+ scene_def RUINS_OF_ALPH_KABUTO_CHAMBER, wRuinsOfAlphKabutoChamberSceneID
+ scene_def RUINS_OF_ALPH_OMANYTE_CHAMBER, wRuinsOfAlphOmanyteChamberSceneID
+ scene_def RUINS_OF_ALPH_AERODACTYL_CHAMBER, wRuinsOfAlphAerodactylChamberSceneID
+ scene_def RUINS_OF_ALPH_INNER_CHAMBER, wRuinsOfAlphInnerChamberSceneID
+ scene_def MAHOGANY_MART_1F, wMahoganyMart1FSceneID
+ scene_def TEAM_ROCKET_BASE_B1F, wTeamRocketBaseB1FSceneID
+ scene_def TEAM_ROCKET_BASE_B2F, wTeamRocketBaseB2FSceneID
+ scene_def TEAM_ROCKET_BASE_B3F, wTeamRocketBaseB3FSceneID
+ scene_def GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, wGoldenrodUndergroundSwitchRoomEntrancesSceneID
+ scene_def SILVER_CAVE_ROOM_3, wSilverCaveRoom3SceneID
+ scene_def VICTORY_ROAD, wVictoryRoadSceneID
+ scene_def DRAGONS_DEN_B1F, wDragonsDenB1FSceneID
+ scene_def DRAGON_SHRINE, wDragonShrineSceneID
+ scene_def OLIVINE_PORT, wOlivinePortSceneID
+ scene_def VERMILION_PORT, wVermilionPortSceneID
+ scene_def FAST_SHIP_1F, wFastShip1FSceneID
+ scene_def FAST_SHIP_B1F, wFastShipB1FSceneID
+ scene_def MOUNT_MOON_SQUARE, wMountMoonSquareSceneID
+ scene_def MOBILE_TRADE_ROOM_MOBILE, wMobileTradeRoomMobileSceneID
+ scene_def MOBILE_BATTLE_ROOM, wMobileBattleRoomSceneID
+ db -1
+; 4d15b
diff --git a/data/maps/mapgroup_roofs.asm b/data/maps/mapgroup_roofs.asm
new file mode 100644
index 000000000..0cad8a0e3
--- /dev/null
+++ b/data/maps/mapgroup_roofs.asm
@@ -0,0 +1,31 @@
+; valid roofs: 0, 1, 2, 3, 4, or -1 for none
+
+MapGroupRoofs: ; 1c021i
+ db -1 ; group 0 (unused)
+ db 3 ; group 1 (Olivine)
+ db 2 ; group 2 (Mahogany)
+ db -1 ; group 3
+ db 1 ; group 4 (Ecruteak)
+ db 2 ; group 5 (Blackthorn)
+ db -1 ; group 6
+ db -1 ; group 7
+ db 2 ; group 8 (Azalea)
+ db 2 ; group 9 (Lake of Rage)
+ db 1 ; group 10 (Violet)
+ db 4 ; group 11 (Goldenrod)
+ db -1 ; group 12
+ db -1 ; group 13
+ db -1 ; group 14
+ db -1 ; group 15
+ db -1 ; group 16
+ db -1 ; group 17
+ db -1 ; group 18
+ db 0 ; group 19 (Silver Cave)
+ db -1 ; group 20
+ db -1 ; group 21
+ db 3 ; group 22 (Cianwood)
+ db -1 ; group 23
+ db 0 ; group 24 (New Bark)
+ db -1 ; group 25
+ db 0 ; group 26 (Cherrygrove)
+; 1c03c
diff --git a/data/maps/outdoor_sprites.asm b/data/maps/outdoor_sprites.asm
new file mode 100644
index 000000000..8064a63e9
--- /dev/null
+++ b/data/maps/outdoor_sprites.asm
@@ -0,0 +1,696 @@
+; Valid sprite IDs for each map group.
+; Maps with environment ROUTE or TOWN can only use these sprites.
+
+OutdoorSprites: ; 144b8
+ dw OlivineGroupSprites
+ dw MahoganyGroupSprites
+ dw DungeonsGroupSprites
+ dw EcruteakGroupSprites
+ dw BlackthornGroupSprites
+ dw CinnabarGroupSprites
+ dw CeruleanGroupSprites
+ dw AzaleaGroupSprites
+ dw LakeOfRageGroupSprites
+ dw VioletGroupSprites
+ dw GoldenrodGroupSprites
+ dw VermilionGroupSprites
+ dw PalletGroupSprites
+ dw PewterGroupSprites
+ dw FastShipGroupSprites
+ dw IndigoGroupSprites
+ dw FuchsiaGroupSprites
+ dw LavenderGroupSprites
+ dw SilverGroupSprites
+ dw CableClubGroupSprites
+ dw CeladonGroupSprites
+ dw CianwoodGroupSprites
+ dw ViridianGroupSprites
+ dw NewBarkGroupSprites
+ dw SaffronGroupSprites
+ dw CherrygroveGroupSprites
+; 144ec
+
+
+PalletGroupSprites: ; 144ec
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14503
+
+ViridianGroupSprites: ; 14503
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1451a
+
+PewterGroupSprites: ; 1451a
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14531
+
+CinnabarGroupSprites: ; 14531
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14548
+
+CeruleanGroupSprites: ; 14548
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKET
+ db SPRITE_MISTY
+ db SPRITE_POKE_BALL
+ db SPRITE_SLOWPOKE
+; 1455f
+
+SaffronGroupSprites: ; 1455f
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKET
+ db SPRITE_MISTY
+ db SPRITE_POKE_BALL
+ db SPRITE_SLOWPOKE
+; 14576
+
+CeladonGroupSprites: ; 14576
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_POLIWAG
+ db SPRITE_TEACHER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_BIKER
+ db SPRITE_SILVER
+ db SPRITE_BLUE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1458d
+
+LavenderGroupSprites: ; 1458d
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145a4
+
+VermilionGroupSprites: ; 145a4
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145bb
+
+FuchsiaGroupSprites: ; 145bb
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145d2
+
+IndigoGroupSprites: ; 145d2
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_BUENA
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_MACHOP
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_BOULDER
+; 145e9
+
+NewBarkGroupSprites: ; 145e9
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14600
+
+CherrygroveGroupSprites: ; 14600
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14617
+
+SilverGroupSprites: ; 14617
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1462e
+
+VioletGroupSprites: ; 1462e
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_LASS
+ db SPRITE_OFFICER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_BUG_CATCHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_WEIRD_TREE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14645
+
+EcruteakGroupSprites: ; 14645
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_LASS
+ db SPRITE_OFFICER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_BUG_CATCHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_WEIRD_TREE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1465c
+
+AzaleaGroupSprites: ; 1465c
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_KURT_OUTSIDE
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_OFFICER
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_TEACHER
+ db SPRITE_AZALEA_ROCKET
+ db SPRITE_LASS
+ db SPRITE_SILVER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_SLOWPOKE
+; 14673
+
+GoldenrodGroupSprites: ; 14673
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_POKE_BALL
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_OFFICER
+ db SPRITE_POKEFAN_M
+ db SPRITE_DAY_CARE_MON_1
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_ROCKET
+ db SPRITE_LASS
+ db SPRITE_DAY_CARE_MON_2
+ db SPRITE_FRUIT_TREE
+ db SPRITE_SLOWPOKE
+; 1468a
+
+CianwoodGroupSprites: ; 1468a
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_STANDING_YOUNGSTER
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_OLIVINE_RIVAL
+ db SPRITE_POKEFAN_M
+ db SPRITE_LASS
+ db SPRITE_BUENA
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SAILOR
+ db SPRITE_POKEFAN_F
+ db SPRITE_SUPER_NERD
+ db SPRITE_TAUROS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_ROCK
+; 146a1
+
+OlivineGroupSprites: ; 146a1
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_STANDING_YOUNGSTER
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_OLIVINE_RIVAL
+ db SPRITE_POKEFAN_M
+ db SPRITE_LASS
+ db SPRITE_BUENA
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SAILOR
+ db SPRITE_POKEFAN_F
+ db SPRITE_SUPER_NERD
+ db SPRITE_TAUROS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_ROCK
+; 146b8
+
+LakeOfRageGroupSprites: ; 146b8
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_LANCE
+ db SPRITE_GRAMPS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_LASS
+ db SPRITE_YOUNGSTER
+ db SPRITE_GYARADOS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146cf
+
+MahoganyGroupSprites: ; 146cf
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146e6
+
+BlackthornGroupSprites: ; 146e6
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146fd
+
+DungeonsGroupSprites: ; 146fd
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_GAMEBOY_KID
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_F
+ db SPRITE_TEACHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_GROWLITHE
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKER
+ db SPRITE_FISHER
+ db SPRITE_SCIENTIST
+ db SPRITE_POKE_BALL
+ db SPRITE_BOULDER
+; 14714
+
+FastShipGroupSprites: ; 14714
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SAILOR
+ db SPRITE_FISHING_GURU
+ db SPRITE_GENTLEMAN
+ db SPRITE_SUPER_NERD
+ db SPRITE_HO_OH
+ db SPRITE_TEACHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_YOUNGSTER
+ db SPRITE_FAIRY
+ db SPRITE_POKE_BALL
+ db SPRITE_ROCK
+; 1472b
+
+CableClubGroupSprites: ; 1472b
+ db SPRITE_OAK
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_TWIN
+ db SPRITE_POKEFAN_M
+ db SPRITE_GRAMPS
+ db SPRITE_FAIRY
+ db SPRITE_SILVER
+ db SPRITE_FISHING_GURU
+ db SPRITE_POKE_BALL
+ db SPRITE_POKEDEX
+; 14736
diff --git a/data/maps/spawn_points.asm b/data/maps/spawn_points.asm
new file mode 100644
index 000000000..49ba362d7
--- /dev/null
+++ b/data/maps/spawn_points.asm
@@ -0,0 +1,41 @@
+spawn: MACRO
+; map, y, x
+ map \1
+ db \2, \3
+ENDM
+
+SpawnPoints: ; 0x152ab
+; entries correspond to SPAWN_* constants
+
+ spawn KRISS_HOUSE_2F, 3, 3
+ spawn VIRIDIAN_POKECENTER_1F, 5, 3
+
+ spawn PALLET_TOWN, 5, 6
+ spawn VIRIDIAN_CITY, 23, 26
+ spawn PEWTER_CITY, 13, 26
+ spawn CERULEAN_CITY, 19, 22
+ spawn ROUTE_10_NORTH, 11, 2
+ spawn VERMILION_CITY, 9, 6
+ spawn LAVENDER_TOWN, 5, 6
+ spawn SAFFRON_CITY, 9, 30
+ spawn CELADON_CITY, 29, 10
+ spawn FUCHSIA_CITY, 19, 28
+ spawn CINNABAR_ISLAND, 11, 12
+ spawn ROUTE_23, 9, 6
+
+ spawn NEW_BARK_TOWN, 13, 6
+ spawn CHERRYGROVE_CITY, 29, 4
+ spawn VIOLET_CITY, 31, 26
+ spawn ROUTE_32, 11, 74
+ spawn AZALEA_TOWN, 15, 10
+ spawn CIANWOOD_CITY, 23, 44
+ spawn GOLDENROD_CITY, 15, 28
+ spawn OLIVINE_CITY, 13, 22
+ spawn ECRUTEAK_CITY, 23, 28
+ spawn MAHOGANY_TOWN, 15, 14
+ spawn LAKE_OF_RAGE, 21, 29
+ spawn BLACKTHORN_CITY, 21, 30
+ spawn SILVER_CAVE_OUTSIDE, 23, 20
+ spawn FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
+ spawn N_A, -1, -1
+; 1531f