summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/wram_constants.asm25
-rw-r--r--main.asm29
-rw-r--r--maps/BluesHouse.asm157
-rw-r--r--maps/OaksLab.asm288
-rw-r--r--maps/PokemonFanClub.asm316
-rw-r--r--maps/RedsHouse1F.asm91
-rw-r--r--maps/RedsHouse2F.asm38
-rw-r--r--maps/Route6SaffronGate.asm72
-rw-r--r--maps/Route6UndergroundPathEntrance.asm18
-rw-r--r--maps/VermilionDiglettsCaveSpeechHouse.asm33
-rw-r--r--maps/VermilionFishingSpeechHouse.asm62
-rw-r--r--maps/VermilionGym.asm294
-rw-r--r--maps/VermilionMagnetTrainSpeechHouse.asm49
-rw-r--r--maps/VermilionMart.asm51
-rw-r--r--maps/VermilionPokecenter1F.asm93
-rw-r--r--maps/VermilionPokecenter2FBeta.asm16
16 files changed, 1617 insertions, 15 deletions
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
index 8f996cfb..c8eca267 100644
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -78,6 +78,31 @@ NUM_OBJECTS EQU $10
; InputType: ; c2c7
AUTO_INPUT EQU $ff
+; wJohtoBadges: ; d57c
+ const_def
+ const ZEPHYRBADGE
+ const HIVEBADGE
+ const PLAINBADGE
+ const FOGBADGE
+ const MINERALBADGE
+ const STORMBADGE
+ const GLACIERBADGE
+ const RISINGBADGE
+NUM_JOHTO_BADGES EQU const_value
+
+; wKantoBadges:: ds 1 ; d57d
+ const_def
+ const BOULDERBADGE
+ const CASCADEBADGE
+ const THUNDERBADGE
+ const RAINBOWBADGE
+ const SOULBADGE
+ const MARSHBADGE
+ const VOLCANOBADGE
+ const EARTHBADGE
+NUM_KANTO_BADGES EQU const_value
+NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
+
; WhichRegisteredItem: ; d95b
REGISTERED_POCKET EQU %11000000
REGISTERED_NUMBER EQU %00111111
diff --git a/main.asm b/main.asm
index b263b583..f90da0b0 100644
--- a/main.asm
+++ b/main.asm
@@ -1820,21 +1820,20 @@ INCLUDE "maps/Route34IlexForestGate.asm"
INCLUDE "maps/DayCare.asm"
SECTION "bank59", ROMX, BANK[$59]
-;INCLUDE "maps/VermilionFishingSpeechHouse.asm"
-;INCLUDE "maps/VermilionPokecenter1F.asm"
-;INCLUDE "maps/VermilionPokecenter2FBeta.asm"
-;INCLUDE "maps/PokemonFanClub.asm"
-;INCLUDE "maps/VermilionMagnetTrainSpeechHouse.asm"
-;INCLUDE "maps/VermilionMart.asm"
-;INCLUDE "maps/VermilionDiglettsCaveSpeechHouse.asm"
-;INCLUDE "maps/VermilionGym.asm"
-;INCLUDE "maps/Route6SaffronGate.asm"
-;INCLUDE "maps/Route6UndergroundPathEntrance.asm"
-;INCLUDE "maps/RedsHouse1F.asm"
-;INCLUDE "maps/RedsHouse2F.asm"
-;INCLUDE "maps/BluesHouse.asm"
-;INCLUDE "maps/OaksLab.asm"
- dr $164000, $168000
+INCLUDE "maps/VermilionFishingSpeechHouse.asm"
+INCLUDE "maps/VermilionPokecenter1F.asm"
+INCLUDE "maps/VermilionPokecenter2FBeta.asm"
+INCLUDE "maps/PokemonFanClub.asm"
+INCLUDE "maps/VermilionMagnetTrainSpeechHouse.asm"
+INCLUDE "maps/VermilionMart.asm"
+INCLUDE "maps/VermilionDiglettsCaveSpeechHouse.asm"
+INCLUDE "maps/VermilionGym.asm"
+INCLUDE "maps/Route6SaffronGate.asm"
+INCLUDE "maps/Route6UndergroundPathEntrance.asm"
+INCLUDE "maps/RedsHouse1F.asm"
+INCLUDE "maps/RedsHouse2F.asm"
+INCLUDE "maps/BluesHouse.asm"
+INCLUDE "maps/OaksLab.asm"
SECTION "bank5a", ROMX, BANK[$5a]
;INCLUDE "maps/PewterNidoranSpeechHouse.asm"
diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm
new file mode 100644
index 00000000..e402d0c9
--- /dev/null
+++ b/maps/BluesHouse.asm
@@ -0,0 +1,157 @@
+ const_def 2 ; object constants
+ const BLUESHOUSE_DAISY
+
+BluesHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+DaisyScript:
+ faceplayer
+ opentext
+ checkcode VAR_HOUR
+ ifequal 15, .ThreePM
+ writetext DaisyHelloText
+ waitbutton
+ closetext
+ end
+
+.ThreePM:
+ checkflag ENGINE_DAISYS_GROOMING
+ iftrue .AlreadyGroomedMon
+ writetext DaisyOfferGroomingText
+ yesorno
+ iffalse .Refused
+ writetext DaisyWhichMonText
+ waitbutton
+ special DaisysGrooming
+ ifequal $0, .Refused
+ ifequal $1, .CantGroomEgg
+ setflag ENGINE_DAISYS_GROOMING
+ writetext DaisyAlrightText
+ waitbutton
+ closetext
+ special FadeOutPalettes
+ playmusic MUSIC_HEAL
+ pause 60
+ special FadeInPalettes
+ special RestartMapMusic
+ opentext
+ writetext GroomedMonLooksContentText
+ special PlayCurMonCry
+ buttonsound
+ writetext DaisyAllDoneText
+ waitbutton
+ closetext
+ end
+
+.AlreadyGroomedMon:
+ writetext DaisyAlreadyGroomedText
+ waitbutton
+ closetext
+ end
+
+.Refused:
+ writetext DaisyRefusedText
+ waitbutton
+ closetext
+ end
+
+.CantGroomEgg:
+ writetext DaisyCantGroomEggText
+ waitbutton
+ closetext
+ end
+
+DaisyHelloText:
+ text "DAISY: Hi! My kid"
+ line "brother is the GYM"
+
+ para "LEADER in VIRIDIAN"
+ line "CITY."
+
+ para "But he goes out"
+ line "of town so often,"
+
+ para "it causes problems"
+ line "for the trainers."
+ done
+
+DaisyOfferGroomingText:
+ text "DAISY: Hi! Good"
+ line "timing. I'm about"
+ cont "to have some tea."
+
+ para "Would you like to"
+ line "join me?"
+
+ para "Oh, your #MON"
+ line "are a bit dirty."
+
+ para "Would you like me"
+ line "to groom one?"
+ done
+
+DaisyWhichMonText:
+ text "DAISY: Which one"
+ line "should I groom?"
+ done
+
+DaisyAlrightText:
+ text "DAISY: OK, I'll"
+ line "get it looking"
+ cont "nice in no time."
+ done
+
+GroomedMonLooksContentText:
+ text_from_ram wStringBuffer3
+ text " looks"
+ line "content."
+ done
+
+DaisyAllDoneText:
+ text "DAISY: There you"
+ line "go! All done."
+
+ para "See? Doesn't it"
+ line "look nice?"
+
+ para "It's such a cute"
+ line "#MON."
+ done
+
+DaisyAlreadyGroomedText:
+ text "DAISY: I always"
+ line "have tea around"
+
+ para "this time. Come"
+ line "join me."
+ done
+
+DaisyRefusedText:
+ text "DAISY: You don't"
+ line "want to have one"
+
+ para "groomed? OK, we'll"
+ line "just have tea."
+ done
+
+DaisyCantGroomEggText:
+ text "DAISY: Oh, sorry."
+ line "I honestly can't"
+ cont "groom an EGG."
+ done
+
+BluesHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, PALLET_TOWN, 2
+ warp_event 3, 7, PALLET_TOWN, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 2, 3, SPRITE_DAISY, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, DaisyScript, -1
diff --git a/maps/OaksLab.asm b/maps/OaksLab.asm
new file mode 100644
index 00000000..9e909a83
--- /dev/null
+++ b/maps/OaksLab.asm
@@ -0,0 +1,288 @@
+ const_def 2 ; object constants
+ const OAKSLAB_OAK
+ const OAKSLAB_SCIENTIST1
+ const OAKSLAB_SCIENTIST2
+ const OAKSLAB_SCIENTIST3
+
+OaksLab_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+.DummyScene:
+ end
+
+Oak:
+ faceplayer
+ opentext
+ checkevent EVENT_OPENED_MT_SILVER
+ iftrue .CheckPokedex
+ checkevent EVENT_TALKED_TO_OAK_IN_KANTO
+ iftrue .CheckBadges
+ writetext OakWelcomeKantoText
+ buttonsound
+ setevent EVENT_TALKED_TO_OAK_IN_KANTO
+.CheckBadges:
+ checkcode VAR_BADGES
+ ifequal NUM_BADGES, .OpenMtSilver
+ ifequal NUM_JOHTO_BADGES, .Complain
+ jump .AhGood
+
+.CheckPokedex:
+ writetext OakLabDexCheckText
+ waitbutton
+ special ProfOaksPCBoot
+ writetext OakLabGoodbyeText
+ waitbutton
+ closetext
+ end
+
+.OpenMtSilver:
+ writetext OakOpenMtSilverText
+ buttonsound
+ setevent EVENT_OPENED_MT_SILVER
+ jump .CheckPokedex
+
+.Complain:
+ writetext OakNoKantoBadgesText
+ buttonsound
+ jump .CheckPokedex
+
+.AhGood:
+ writetext OakYesKantoBadgesText
+ buttonsound
+ jump .CheckPokedex
+
+OaksAssistant1Script:
+ jumptextfaceplayer OaksAssistant1Text
+
+OaksAssistant2Script:
+ jumptextfaceplayer OaksAssistant2Text
+
+OaksAssistant3Script:
+ jumptextfaceplayer OaksAssistant3Text
+
+OaksLabBookshelf:
+ jumpstd difficultbookshelf
+
+OaksLabPoster1:
+ jumptext OaksLabPoster1Text
+
+OaksLabPoster2:
+ jumptext OaksLabPoster2Text
+
+OaksLabTrashcan:
+ jumptext OaksLabTrashcanText
+
+OaksLabPC:
+ jumptext OaksLabPCText
+
+OakWelcomeKantoText:
+ text "OAK: Ah, <PLAYER>!"
+ line "It's good of you"
+
+ para "to come all this"
+ line "way to KANTO."
+
+ para "What do you think"
+ line "of the trainers"
+
+ para "out here?"
+ line "Pretty tough, huh?"
+ done
+
+OakLabDexCheckText:
+ text "How is your #-"
+ line "DEX coming?"
+
+ para "Let's see…"
+ done
+
+OakLabGoodbyeText:
+ text "If you're in the"
+ line "area, I hope you"
+ cont "come visit again."
+ done
+
+OakOpenMtSilverText:
+ text "OAK: Wow! That's"
+ line "excellent!"
+
+ para "You collected the"
+ line "BADGES of GYMS in"
+ cont "KANTO. Well done!"
+
+ para "I was right in my"
+ line "assessment of you."
+
+ para "Tell you what,"
+ line "<PLAYER>. I'll make"
+
+ para "arrangements so"
+ line "that you can go to"
+ cont "MT.SILVER."
+
+ para "MT.SILVER is a big"
+ line "mountain that is"
+
+ para "home to many wild"
+ line "#MON."
+
+ para "It's too dangerous"
+ line "for your average"
+
+ para "trainer, so it's"
+ line "off limits. But"
+
+ para "we can make an"
+ line "exception in your"
+ cont "case, <PLAYER>."
+
+ para "Go up to INDIGO"
+ line "PLATEAU. You can"
+
+ para "reach MT.SILVER"
+ line "from there."
+ done
+
+OakNoKantoBadgesText:
+ text "OAK: Hmm? You're"
+ line "not collecting"
+ cont "KANTO GYM BADGES?"
+
+ para "The GYM LEADERS in"
+ line "KANTO are as tough"
+
+ para "as any you battled"
+ line "in JOHTO."
+
+ para "I recommend that"
+ line "you challenge"
+ cont "them."
+ done
+
+OakYesKantoBadgesText:
+ text "OAK: Ah, you're"
+ line "collecting KANTO"
+ cont "GYM BADGES."
+
+ para "I imagine that"
+ line "it's hard, but the"
+
+ para "experience is sure"
+ line "to help you."
+
+ para "Come see me when"
+ line "you get them all."
+
+ para "I'll have a gift"
+ line "for you."
+
+ para "Keep trying hard,"
+ line "<PLAYER>!"
+ done
+
+OaksAssistant1Text:
+ text "The PROF's #MON"
+ line "TALK radio program"
+
+ para "isn't aired here"
+ line "in KANTO."
+
+ para "It's a shame--I'd"
+ line "like to hear it."
+ done
+
+OaksAssistant2Text:
+ text "Thanks to your"
+ line "work on the #-"
+ cont "DEX, the PROF's"
+
+ para "research is coming"
+ line "along great."
+ done
+
+OaksAssistant3Text:
+ text "Don't tell anyone,"
+ line "but PROF.OAK'S"
+
+ para "#MON TALK isn't"
+ line "a live broadcast."
+ done
+
+OaksLabPoster1Text:
+ text "Press START to"
+ line "open the MENU."
+ done
+
+OaksLabPoster2Text:
+ text "The SAVE option is"
+ line "on the MENU."
+
+ para "Use it in a timely"
+ line "manner."
+ done
+
+OaksLabTrashcanText:
+ text "There's nothing in"
+ line "here…"
+ done
+
+OaksLabPCText:
+ text "There's an e-mail"
+ line "message on the PC."
+
+ para "…"
+
+ para "PROF.OAK, how is"
+ line "your research"
+ cont "coming along?"
+
+ para "I'm still plugging"
+ line "away."
+
+ para "I heard rumors"
+ line "that <PLAYER> is"
+
+ para "making quite a"
+ line "name for himself."
+
+ para "I'm delighted to"
+ line "hear that."
+
+ para "ELM in NEW BARK"
+ line "TOWN 8-)"
+ done
+
+OaksLab_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 4, 11, PALLET_TOWN, 3
+ warp_event 5, 11, PALLET_TOWN, 3
+
+ db 0 ; coord events
+
+ db 16 ; bg events
+ bg_event 6, 1, BGEVENT_READ, OaksLabBookshelf
+ bg_event 7, 1, BGEVENT_READ, OaksLabBookshelf
+ bg_event 8, 1, BGEVENT_READ, OaksLabBookshelf
+ bg_event 9, 1, BGEVENT_READ, OaksLabBookshelf
+ bg_event 0, 7, BGEVENT_READ, OaksLabBookshelf
+ bg_event 1, 7, BGEVENT_READ, OaksLabBookshelf
+ bg_event 2, 7, BGEVENT_READ, OaksLabBookshelf
+ bg_event 3, 7, BGEVENT_READ, OaksLabBookshelf
+ bg_event 6, 7, BGEVENT_READ, OaksLabBookshelf
+ bg_event 7, 7, BGEVENT_READ, OaksLabBookshelf
+ bg_event 8, 7, BGEVENT_READ, OaksLabBookshelf
+ bg_event 9, 7, BGEVENT_READ, OaksLabBookshelf
+ bg_event 4, 0, BGEVENT_READ, OaksLabPoster1
+ bg_event 5, 0, BGEVENT_READ, OaksLabPoster2
+ bg_event 9, 3, BGEVENT_READ, OaksLabTrashcan
+ bg_event 0, 1, BGEVENT_READ, OaksLabPC
+
+ db 4 ; object events
+ object_event 4, 2, SPRITE_OAK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, Oak, -1
+ object_event 1, 8, SPRITE_SCIENTIST, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, OaksAssistant1Script, -1
+ object_event 8, 9, SPRITE_SCIENTIST, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, OaksAssistant2Script, -1
+ object_event 1, 4, SPRITE_SCIENTIST, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, OaksAssistant3Script, -1
diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm
new file mode 100644
index 00000000..75f9e321
--- /dev/null
+++ b/maps/PokemonFanClub.asm
@@ -0,0 +1,316 @@
+ const_def 2 ; object constants
+ const POKEMONFANCLUB_GENTLEMAN
+ const POKEMONFANCLUB_RECEPTIONIST
+ const POKEMONFANCLUB_FISHER
+ const POKEMONFANCLUB_TEACHER
+ const POKEMONFANCLUB_FAIRY
+ const POKEMONFANCLUB_ODDISH
+
+PokemonFanClub_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+PokemonFanClubPresidentScript:
+ faceplayer
+ opentext
+ checkevent EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT
+ iftrue .HeardSpeech
+ checkevent EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT_BUT_BAG_WAS_FULL
+ iftrue .HeardSpeechButBagFull
+ writetext UnknownText_0x191881
+ yesorno
+ iffalse .NotListening
+ writetext UnknownText_0x191911
+ buttonsound
+.HeardSpeechButBagFull:
+ writetext UnknownText_0x191a3d
+ buttonsound
+ verbosegiveitem RARE_CANDY
+ iffalse .BagFull
+ setevent EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT
+ writetext UnknownText_0x191a72
+ waitbutton
+ closetext
+ end
+
+.HeardSpeech:
+ writetext UnknownText_0x191ae0
+ waitbutton
+ closetext
+ end
+
+.NotListening:
+ writetext UnknownText_0x191b38
+ waitbutton
+.BagFull:
+ closetext
+ end
+
+PokemonFanClubReceptionistScript:
+ jumptextfaceplayer PokemonFanClubReceptionistText
+
+PokemonFanClubClefairyGuyScript:
+ faceplayer
+ opentext
+ checkevent EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB
+ iftrue .GotLostItem
+ checkevent EVENT_RETURNED_MACHINE_PART
+ iftrue .FoundClefairyDoll
+ writetext UnknownText_0x191ba0
+ waitbutton
+ closetext
+ end
+
+.FoundClefairyDoll:
+ writetext UnknownText_0x191bff
+ checkevent EVENT_MET_COPYCAT_FOUND_OUT_ABOUT_LOST_ITEM
+ iftrue .MetCopycat
+ waitbutton
+ closetext
+ end
+
+.MetCopycat:
+ buttonsound
+ writetext UnknownText_0x191c5a
+ buttonsound
+ waitsfx
+ giveitem LOST_ITEM
+ iffalse .NoRoom
+ disappear POKEMONFANCLUB_FAIRY
+ writetext UnknownText_0x191d0a
+ playsound SFX_KEY_ITEM
+ waitsfx
+ itemnotify
+ setevent EVENT_GOT_LOST_ITEM_FROM_FAN_CLUB
+ closetext
+ end
+
+.GotLostItem:
+ writetext UnknownText_0x191d1e
+ waitbutton
+ closetext
+ end
+
+.NoRoom:
+ writetext UnknownText_0x191d58
+ waitbutton
+ closetext
+ end
+
+PokemonFanClubTeacherScript:
+ jumptextfaceplayer PokemonFanClubTeacherText
+
+PokemonFanClubClefairyDollScript:
+ jumptext ClefairyDollText
+
+PokemonFanClubBayleefScript:
+ opentext
+ writetext FanClubBayleefText
+ cry BAYLEEF
+ waitbutton
+ closetext
+ end
+
+PokemonFanClubListenSign:
+ jumptext PokemonFanClubListenSignText
+
+PokemonFanClubBraggingSign:
+ jumptext PokemonFanClubBraggingSignText
+
+UnknownText_0x191881:
+ text "I'm the CHAIRMAN"
+ line "of the #MON FAN"
+ cont "CLUB."
+
+ para "I've raised over"
+ line "150 #MON."
+
+ para "I'm very fussy"
+ line "when it comes to"
+ cont "#MON."
+
+ para "Did you visit just"
+ line "to hear about my"
+ cont "#MON?"
+ done
+
+UnknownText_0x191911:
+ text "Good!"
+ line "Then listen up!"
+
+ para "So… my favorite"
+ line "RAPIDASH…"
+
+ para "It… cute… lovely…"
+ line "smart… unbearably…"
+ cont "plus… amazing… oh…"
+ cont "you think so?…"
+ cont "Too much… wild…"
+ cont "beautiful… kindly…"
+ cont "love it!"
+
+ para "Hug it… when…"
+ line "sleeping… warm and"
+ cont "cuddly… Oh, and…"
+ cont "spectacular…"
+ cont "ravishing… simply"
+ cont "divine…"
+ cont "Oops! Look at the"
+ cont "time! I've kept"
+ cont "you too long!"
+ done
+
+UnknownText_0x191a3d:
+ text "Thanks for hearing"
+ line "me out. I want you"
+ cont "to have this!"
+ done
+
+UnknownText_0x191a72:
+ text "It's a RARE CANDY"
+ line "that makes #MON"
+ cont "stronger."
+
+ para "I prefer making my"
+ line "#MON stronger"
+
+ para "by battling, so"
+ line "you can have it."
+ done
+
+UnknownText_0x191ae0:
+ text "Hello, <PLAYER>!"
+
+ para "Did you come see"
+ line "me about my #-"
+ cont "MON again?"
+
+ para "No? Oh… I had more"
+ line "tales to tell…"
+ done
+
+UnknownText_0x191b38:
+ text "How disappointing…"
+
+ para "Come back if you"
+ line "want to listen."
+ done
+
+PokemonFanClubReceptionistText:
+ text "Our CHAIRMAN is"
+ line "very vocal when it"
+ cont "comes to #MON…"
+ done
+
+UnknownText_0x191ba0:
+ text "I love the way"
+ line "CLEFAIRY waggles"
+
+ para "its finger when"
+ line "it's trying to use"
+
+ para "METRONOME."
+ line "It's so adorable!"
+ done
+
+UnknownText_0x191bff:
+ text "I love CLEFAIRY,"
+ line "but I could never"
+
+ para "catch one. So I'm"
+ line "making do with a"
+
+ para "# DOLL that I"
+ line "found."
+ done
+
+UnknownText_0x191c5a:
+ text "Oh, I see now. The"
+ line "girl who lost this"
+
+ para "# DOLL is sad…"
+
+ para "OK. Could you take"
+ line "this # DOLL"
+
+ para "back to that poor"
+ line "little girl?"
+
+ para "I'll befriend a"
+ line "real CLEFAIRY on"
+
+ para "my own one day."
+ line "No worries!"
+ done
+
+UnknownText_0x191d0a:
+ text "<PLAYER> received"
+ line "# DOLL."
+ done
+
+UnknownText_0x191d1e:
+ text "You watch. I'm"
+ line "going to get a"
+
+ para "real CLEFAIRY as"
+ line "my friend."
+ done
+
+UnknownText_0x191d58:
+ text "Your PACK is"
+ line "jammed full."
+ done
+
+PokemonFanClubTeacherText:
+ text "Look at my darling"
+ line "BAYLEEF!"
+
+ para "The leaf on its"
+ line "head is so cute!"
+ done
+
+ClefairyDollText:
+ text "It's a CLEFAIRY!"
+ line "Huh?"
+
+ para "Oh, right. It's a"
+ line "CLEFAIRY #"
+ cont "DOLL."
+ done
+
+FanClubBayleefText:
+ text "BAYLEEF: Li liif!"
+ done
+
+PokemonFanClubListenSignText:
+ text "Let's all listen"
+ line "politely to other"
+ cont "trainers."
+ done
+
+PokemonFanClubBraggingSignText:
+ text "If someone brags,"
+ line "brag right back!"
+ done
+
+PokemonFanClub_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, VERMILION_CITY, 3
+ warp_event 3, 7, VERMILION_CITY, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 7, 0, BGEVENT_READ, PokemonFanClubListenSign
+ bg_event 9, 0, BGEVENT_READ, PokemonFanClubBraggingSign
+
+ db 6 ; object events
+ object_event 3, 1, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, PokemonFanClubPresidentScript, -1
+ object_event 4, 1, SPRITE_RECEPTIONIST, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, PokemonFanClubReceptionistScript, -1
+ object_event 2, 3, SPRITE_FISHER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, PokemonFanClubClefairyGuyScript, -1
+ object_event 7, 2, SPRITE_TEACHER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, PokemonFanClubTeacherScript, -1
+ object_event 2, 4, SPRITE_FAIRY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, PokemonFanClubClefairyDollScript, EVENT_VERMILION_FAN_CLUB_DOLL
+ object_event 7, 3, SPRITE_ODDISH, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, PokemonFanClubBayleefScript, -1
diff --git a/maps/RedsHouse1F.asm b/maps/RedsHouse1F.asm
new file mode 100644
index 00000000..a07b231a
--- /dev/null
+++ b/maps/RedsHouse1F.asm
@@ -0,0 +1,91 @@
+ const_def 2 ; object constants
+ const REDSHOUSE1F_REDS_MOM
+
+RedsHouse1F_MapScripts:
+ db 1 ; scene scripts
+ scene_script .DummyScene
+
+ db 0 ; callbacks
+
+.DummyScene:
+ end
+
+RedsMom:
+ faceplayer
+ opentext
+ checkevent EVENT_MET_REDS_MOM
+ iftrue .MetAlready
+ writetext RedsMomText1
+ waitbutton
+ closetext
+ setevent EVENT_MET_REDS_MOM
+ end
+.MetAlready:
+ writetext RedsMomText2
+ waitbutton
+ closetext
+ end
+
+RedsHouse1FTV:
+ jumptext RedsHouse1FTVText
+
+RedsHouse1FBookshelf:
+ jumpstd picturebookshelf
+
+RedsMomText1:
+ text "Hi!"
+
+ para "RED's been away"
+ line "for a long time."
+
+ para "He hasn't called"
+ line "either, so I have"
+
+ para "no idea where he"
+ line "is or what he's"
+ cont "been doing."
+
+ para "They say that no"
+ line "word is proof that"
+
+ para "he's doing fine,"
+ line "but I do worry"
+ cont "about him."
+ done
+
+RedsMomText2:
+ text "I worry about RED"
+ line "getting hurt or"
+
+ para "sick, but he's a"
+ line "boy. I'm proud"
+
+ para "that he is doing"
+ line "what he wants to"
+
+ para "do."
+ done
+
+RedsHouse1FTVText:
+ text "They have programs"
+ line "that aren't shown"
+ cont "in JOHTO…"
+ done
+
+RedsHouse1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 2, 7, PALLET_TOWN, 1
+ warp_event 3, 7, PALLET_TOWN, 1
+ warp_event 7, 0, REDS_HOUSE_2F, 1
+
+ db 0 ; coord events
+
+ db 3 ; bg events
+ bg_event 0, 1, BGEVENT_READ, RedsHouse1FBookshelf
+ bg_event 1, 1, BGEVENT_READ, RedsHouse1FBookshelf
+ bg_event 2, 1, BGEVENT_READ, RedsHouse1FTV
+
+ db 1 ; object events
+ object_event 5, 3, SPRITE_REDS_MOM, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, RedsMom, -1
diff --git a/maps/RedsHouse2F.asm b/maps/RedsHouse2F.asm
new file mode 100644
index 00000000..6ff76ec8
--- /dev/null
+++ b/maps/RedsHouse2F.asm
@@ -0,0 +1,38 @@
+RedsHouse2F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+RedsHouse2FN64Script:
+ jumptext RedsHouse2FN64Text
+
+RedsHouse2FPCScript:
+ jumptext RedsHouse2FPCText
+
+RedsHouse2FN64Text:
+ text "<PLAYER> played the"
+ line "N64."
+
+ para "Better get going--"
+ line "no time to lose!"
+ done
+
+RedsHouse2FPCText:
+ text "It looks like it"
+ line "hasn't been used"
+ cont "in a long time…"
+ done
+
+RedsHouse2F_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 7, 0, REDS_HOUSE_1F, 3
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 3, 5, BGEVENT_READ, RedsHouse2FN64Script
+ bg_event 0, 1, BGEVENT_READ, RedsHouse2FPCScript
+
+ db 0 ; object events
diff --git a/maps/Route6SaffronGate.asm b/maps/Route6SaffronGate.asm
new file mode 100644
index 00000000..c0de7ff5
--- /dev/null
+++ b/maps/Route6SaffronGate.asm
@@ -0,0 +1,72 @@
+ const_def 2 ; object constants
+ const ROUTE6SAFFRONGATE_OFFICER
+
+Route6SaffronGate_MapScripts:
+ db 1 ; scene scripts
+ scene_script .DummyScene
+
+ db 0 ; callbacks
+
+.DummyScene:
+ end
+
+Route6SaffronGuardScript:
+ faceplayer
+ opentext
+ checkevent EVENT_RETURNED_MACHINE_PART
+ iftrue .ReturnedPart
+ writetext Route6SaffronGuardWelcomeText
+ waitbutton
+ closetext
+ end
+
+.ReturnedPart:
+ writetext Route6SaffronGuardMagnetTrainText
+ waitbutton
+ closetext
+ end
+
+Route6SaffronGuardWelcomeText:
+ text "Welcome to SAFFRON"
+ line "CITY, home of the"
+ cont "MAGNET TRAIN!"
+
+ para "…That's what I'd"
+ line "normally say, but"
+
+ para "the MAGNET TRAIN"
+ line "isn't running now."
+
+ para "It's not getting"
+ line "any electricity"
+
+ para "because there's"
+ line "something wrong"
+
+ para "with the POWER"
+ line "PLANT."
+ done
+
+Route6SaffronGuardMagnetTrainText:
+ text "The MAGNET TRAIN"
+ line "is the most famous"
+
+ para "thing about SAF-"
+ line "FRON."
+ done
+
+Route6SaffronGate_MapEvents:
+ db 0, 0 ; filler
+
+ db 4 ; warp events
+ warp_event 4, 0, SAFFRON_CITY, 12
+ warp_event 5, 0, SAFFRON_CITY, 13
+ warp_event 4, 7, ROUTE_6, 2
+ warp_event 5, 7, ROUTE_6, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 0, 4, SPRITE_OFFICER, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, Route6SaffronGuardScript, -1
diff --git a/maps/Route6UndergroundPathEntrance.asm b/maps/Route6UndergroundPathEntrance.asm
new file mode 100644
index 00000000..7e04b3fb
--- /dev/null
+++ b/maps/Route6UndergroundPathEntrance.asm
@@ -0,0 +1,18 @@
+Route6UndergroundPathEntrance_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+Route6UndergroundPathEntrance_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 3, 7, ROUTE_6, 1
+ warp_event 4, 7, ROUTE_6, 1
+ warp_event 4, 3, UNDERGROUND_PATH, 2
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events
diff --git a/maps/VermilionDiglettsCaveSpeechHouse.asm b/maps/VermilionDiglettsCaveSpeechHouse.asm
new file mode 100644
index 00000000..e6225afa
--- /dev/null
+++ b/maps/VermilionDiglettsCaveSpeechHouse.asm
@@ -0,0 +1,33 @@
+ const_def 2 ; object constants
+ const VERMILIONDIGLETTSCAVESPEECHHOUSE_GENTLEMAN
+
+VermilionDiglettsCaveSpeechHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+VermilionDiglettsCaveSpeechHouseGentlemanScript:
+ jumptextfaceplayer VermilionDiglettsCaveSpeechHouseGentlemanText
+
+VermilionDiglettsCaveSpeechHouseGentlemanText:
+ text "Over many years,"
+ line "DIGLETT dug a"
+ cont "large tunnel."
+
+ para "That tunnel goes"
+ line "to a distant town."
+ done
+
+VermilionDiglettsCaveSpeechHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, VERMILION_CITY, 6
+ warp_event 3, 7, VERMILION_CITY, 6
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 1 ; object events
+ object_event 1, 3, SPRITE_GENTLEMAN, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, VermilionDiglettsCaveSpeechHouseGentlemanScript, -1
diff --git a/maps/VermilionFishingSpeechHouse.asm b/maps/VermilionFishingSpeechHouse.asm
new file mode 100644
index 00000000..d69319d6
--- /dev/null
+++ b/maps/VermilionFishingSpeechHouse.asm
@@ -0,0 +1,62 @@
+ const_def 2 ; object constants
+ const VERMILIONFISHINGSPEECHHOUSE_FISHING_GURU
+
+VermilionFishingSpeechHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+FishingDude:
+ jumptextfaceplayer FishingDudeText
+
+FishingDudesHousePhoto:
+ jumptext FishingDudesHousePhotoText
+
+FishingDudesHouseBookshelf:
+; unused
+ jumpstd picturebookshelf
+
+FishingDudeText:
+ text "I am the FISHING"
+ line "GURU, the elder of"
+ cont "the FISHING BROS."
+
+ para "Do you happen to"
+ line "know FISHERMAN"
+
+ para "WILTON? He fishes"
+ line "on ROUTE 44."
+
+ para "He came through"
+ line "with an amazing"
+ cont "tip on the phone."
+
+ para "Thanks to him, I"
+ line "caught a whole lot"
+
+ para "of a rare #MON."
+ line "What a day it was!"
+ done
+
+FishingDudesHousePhotoText:
+ text "It's a photo of"
+ line "people fishing…"
+
+ para "They're having a"
+ line "great time…"
+ done
+
+VermilionFishingSpeechHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, VERMILION_CITY, 1
+ warp_event 3, 7, VERMILION_CITY, 1
+
+ db 0 ; coord events
+
+ db 1 ; bg events
+ bg_event 3, 0, BGEVENT_READ, FishingDudesHousePhoto
+
+ db 1 ; object events
+ object_event 2, 4, SPRITE_FISHING_GURU, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, FishingDude, -1
diff --git a/maps/VermilionGym.asm b/maps/VermilionGym.asm
new file mode 100644
index 00000000..7fce0c31
--- /dev/null
+++ b/maps/VermilionGym.asm
@@ -0,0 +1,294 @@
+ const_def 2 ; object constants
+ const VERMILIONGYM_SURGE
+ const VERMILIONGYM_GENTLEMAN
+ const VERMILIONGYM_ROCKER
+ const VERMILIONGYM_SUPER_NERD
+ const VERMILIONGYM_GYM_GUY
+
+VermilionGym_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+VermilionGymSurgeScript:
+ faceplayer
+ opentext
+ checkflag ENGINE_THUNDERBADGE
+ iftrue .FightDone
+ writetext LtSurgeIntroText
+ waitbutton
+ closetext
+ winlosstext LtSurgeWinLossText, 0
+ loadtrainer LT_SURGE, LT_SURGE1
+ startbattle
+ reloadmapafterbattle
+ setevent EVENT_BEAT_LTSURGE
+ setevent EVENT_BEAT_GENTLEMAN_GREGORY
+ setevent EVENT_BEAT_GUITARIST_VINCENT
+ setevent EVENT_BEAT_JUGGLER_HORTON
+ opentext
+ writetext ReceivedThunderBadgeText
+ playsound SFX_GET_BADGE
+ waitsfx
+ setflag ENGINE_THUNDERBADGE
+ writetext LtSurgeThunderBadgeText
+ waitbutton
+ closetext
+ end
+
+.FightDone:
+ writetext LtSurgeFightDoneText
+ waitbutton
+ closetext
+ end
+
+TrainerGentlemanGregory:
+ trainer GENTLEMAN, GREGORY, EVENT_BEAT_GENTLEMAN_GREGORY, GentlemanGregorySeenText, GentlemanGregoryBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GentlemanGregoryAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerGuitaristVincent:
+ trainer GUITARIST, VINCENT, EVENT_BEAT_GUITARIST_VINCENT, GuitaristVincentSeenText, GuitaristVincentBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext GuitaristVincentAfterBattleText
+ waitbutton
+ closetext
+ end
+
+TrainerJugglerHorton:
+ trainer JUGGLER, HORTON, EVENT_BEAT_JUGGLER_HORTON, JugglerHortonSeenText, JugglerHortonBeatenText, 0, .Script
+
+.Script:
+ endifjustbattled
+ opentext
+ writetext JugglerHortonAfterBattleText
+ waitbutton
+ closetext
+ end
+
+VermilionGymGuyScript:
+ faceplayer
+ opentext
+ checkevent EVENT_BEAT_LTSURGE
+ iftrue .VermilionGymGuyWinScript
+ writetext VermilionGymGuyText
+ waitbutton
+ closetext
+ end
+
+.VermilionGymGuyWinScript:
+ writetext VermilionGymGuyWinText
+ waitbutton
+ closetext
+ end
+
+VermilionGymTrashCan:
+ jumptext VermilionGymTrashCanText
+
+VermilionGymStatue:
+ checkflag ENGINE_THUNDERBADGE
+ iftrue .Beaten
+ jumpstd gymstatue1
+.Beaten:
+ trainertotext LT_SURGE, LT_SURGE1, MEM_BUFFER_1
+ jumpstd gymstatue2
+
+LtSurgeIntroText:
+ text "SURGE: Hey, little"
+ line "boy!"
+
+ para "I have to hand it"
+ line "to you. It may not"
+
+ para "be very smart to"
+ line "challenge me, but"
+ cont "it takes guts!"
+
+ para "When it comes to"
+ line "electric #MON,"
+ cont "I'm number one!"
+
+ para "I've never lost on"
+ line "the battlefield."
+
+ para "I'll zap you just"
+ line "like I did my"
+ cont "enemies in war!"
+ done
+
+LtSurgeWinLossText:
+ text "SURGE: Arrrgh!"
+ line "You are strong!"
+
+ para "OK, boy. You get"
+ line "THUNDERBADGE!"
+ done
+
+ReceivedThunderBadgeText:
+ text "<PLAYER> received"
+ line "THUNDERBADGE."
+ done
+
+LtSurgeThunderBadgeText:
+ text "SURGE: THUNDER-"
+ line "BADGE increases"
+ cont "#MON's speed. "
+
+ para "Consider it proof"
+ line "that you defeated"
+
+ para "me. You wear it"
+ line "proudly, hear?"
+ done
+
+LtSurgeFightDoneText:
+ text "SURGE: Hey, boy!"
+ line "Still slugging and"
+ cont "chugging away?"
+
+ para "My #MON and I"
+ line "are still at it!"
+ done
+
+GentlemanGregorySeenText:
+ text "You're here to"
+ line "defeat LT.SURGE?"
+
+ para "Not if I can help"
+ line "it!"
+ done
+
+GentlemanGregoryBeatenText:
+ text "Sorry I failed"
+ line "you, LT.SURGE,"
+ cont "sir!"
+ done
+
+GentlemanGregoryAfterBattleText:
+ text "When I was still"
+ line "in the army, LT."
+
+ para "SURGE saved my"
+ line "life."
+ done
+
+GuitaristVincentSeenText:
+ text "LT.SURGE recog-"
+ line "nized my potential"
+
+ para "with electric"
+ line "#MON."
+
+ para "Think you can beat"
+ line "me?"
+ done
+
+GuitaristVincentBeatenText:
+ text "Ooh, how shocking!"
+ done
+
+GuitaristVincentAfterBattleText:
+ text "If the GYM's traps"
+ line "were working, you"
+
+ para "would have been"
+ line "toast…"
+ done
+
+JugglerHortonSeenText:
+ text "I'm going to take"
+ line "you down! Prepare"
+ cont "to be shocked!"
+ done
+
+JugglerHortonBeatenText:
+ text "Gwaaah!"
+ line "I was overpowered…"
+ done
+
+JugglerHortonAfterBattleText:
+ text "Don't get too com-"
+ line "fortable about"
+
+ para "beating me…"
+ line "LT.SURGE is tough."
+ done
+
+VermilionGymGuyText:
+ text "Yo! CHAMP in"
+ line "making!"
+
+ para "You lucked out"
+ line "this time."
+
+ para "LT.SURGE is very"
+ line "cautious. He has"
+
+ para "traps set all over"
+ line "the GYM."
+
+ para "But--he-heh--the"
+ line "traps aren't"
+ cont "active right now."
+
+ para "You'll have no"
+ line "problem getting to"
+ cont "LT.SURGE."
+ done
+
+VermilionGymGuyWinText:
+ text "Whew! That was an"
+ line "electrifying bout!"
+
+ para "It sure made me"
+ line "nervous."
+ done
+
+VermilionGymTrashCanText:
+ text "Nope! Nothing here"
+ line "but trash."
+ done
+
+VermilionGym_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 4, 17, VERMILION_CITY, 7
+ warp_event 5, 17, VERMILION_CITY, 7
+
+ db 0 ; coord events
+
+ db 17 ; bg events
+ bg_event 1, 7, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 3, 7, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 5, 7, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 7, 7, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 9, 7, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 1, 9, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 3, 9, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 5, 9, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 7, 9, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 9, 9, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 1, 11, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 3, 11, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 5, 11, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 7, 11, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 9, 11, BGEVENT_READ, VermilionGymTrashCan
+ bg_event 3, 15, BGEVENT_READ, VermilionGymStatue
+ bg_event 6, 15, BGEVENT_READ, VermilionGymStatue
+
+ db 5 ; object events
+ object_event 5, 2, SPRITE_SURGE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_SCRIPT, 0, VermilionGymSurgeScript, -1
+ object_event 8, 8, SPRITE_GENTLEMAN, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 4, TrainerGentlemanGregory, -1
+ object_event 4, 7, SPRITE_ROCKER, SPRITEMOVEDATA_STANDING_DOWN, 3, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_TRAINER, 3, TrainerGuitaristVincent, -1
+ object_event 0, 10, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_TRAINER, 4, TrainerJugglerHorton, -1
+ object_event 7, 15, SPRITE_GYM_GUY, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 1, VermilionGymGuyScript, -1
diff --git a/maps/VermilionMagnetTrainSpeechHouse.asm b/maps/VermilionMagnetTrainSpeechHouse.asm
new file mode 100644
index 00000000..db7f34db
--- /dev/null
+++ b/maps/VermilionMagnetTrainSpeechHouse.asm
@@ -0,0 +1,49 @@
+ const_def 2 ; object constants
+ const VERMILIONMAGNETTRAINSPEECHHOUSE_POKEFAN_F
+ const VERMILIONMAGNETTRAINSPEECHHOUSE_YOUNGSTER
+
+VermilionMagnetTrainSpeechHouse_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+VermilionMagnetTrainSpeechHousePokefanFScript:
+ jumptextfaceplayer VermilionMagnetTrainSpeechHousePokefanFText
+
+VermilionMagnetTrainSpeechHouseYoungsterScript:
+ jumptextfaceplayer VermilionMagnetTrainSpeechHouseYoungsterText
+
+VermilionMagnetTrainSpeechHouseBookshelf:
+ jumpstd picturebookshelf
+
+VermilionMagnetTrainSpeechHousePokefanFText:
+ text "Do you know about"
+ line "the MAGNET TRAIN?"
+
+ para "It's a railway"
+ line "that goes to GOL-"
+ cont "DENROD in JOHTO."
+ done
+
+VermilionMagnetTrainSpeechHouseYoungsterText:
+ text "I want to go to"
+ line "SAFFRON to see"
+ cont "the MAGNET TRAIN."
+ done
+
+VermilionMagnetTrainSpeechHouse_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, VERMILION_CITY, 4
+ warp_event 3, 7, VERMILION_CITY, 4
+
+ db 0 ; coord events
+
+ db 2 ; bg events
+ bg_event 0, 1, BGEVENT_READ, VermilionMagnetTrainSpeechHouseBookshelf
+ bg_event 1, 1, BGEVENT_READ, VermilionMagnetTrainSpeechHouseBookshelf
+
+ db 2 ; object events
+ object_event 2, 3, SPRITE_POKEFAN_F, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VermilionMagnetTrainSpeechHousePokefanFScript, -1
+ object_event 0, 3, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, VermilionMagnetTrainSpeechHouseYoungsterScript, -1
diff --git a/maps/VermilionMart.asm b/maps/VermilionMart.asm
new file mode 100644
index 00000000..a258df7b
--- /dev/null
+++ b/maps/VermilionMart.asm
@@ -0,0 +1,51 @@
+ const_def 2 ; object constants
+ const VERMILIONMART_CLERK
+ const VERMILIONMART_SUPER_NERD
+ const VERMILIONMART_BUENA
+
+VermilionMart_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+VermilionMartClerkScript:
+ opentext
+ pokemart MARTTYPE_STANDARD, MART_VERMILION
+ closetext
+ end
+
+VermilionMartSuperNerdScript:
+ jumptextfaceplayer VermilionMartSuperNerdText
+
+VermilionMartBuenaScript:
+ jumptextfaceplayer VermilionMartBuenaText
+
+VermilionMartSuperNerdText:
+ text "TEAM ROCKET is no"
+ line "longer in KANTO."
+
+ para "That alone makes"
+ line "me happy."
+ done
+
+VermilionMartBuenaText:
+ text "I'm thinking about"
+ line "going shopping in"
+ cont "SAFFRON."
+ done
+
+VermilionMart_MapEvents:
+ db 0, 0 ; filler
+
+ db 2 ; warp events
+ warp_event 2, 7, VERMILION_CITY, 5
+ warp_event 3, 7, VERMILION_CITY, 5
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 3 ; object events
+ object_event 1, 3, SPRITE_CLERK, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VermilionMartClerkScript, -1
+ object_event 5, 2, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, VermilionMartSuperNerdScript, -1
+ object_event 8, 6, SPRITE_BUENA, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 1, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, VermilionMartBuenaScript, -1
diff --git a/maps/VermilionPokecenter1F.asm b/maps/VermilionPokecenter1F.asm
new file mode 100644
index 00000000..c5ab46c3
--- /dev/null
+++ b/maps/VermilionPokecenter1F.asm
@@ -0,0 +1,93 @@
+ const_def 2 ; object constants
+ const VERMILIONPOKECENTER1F_NURSE
+ const VERMILIONPOKECENTER1F_FISHING_GURU
+ const VERMILIONPOKECENTER1F_SAILOR
+ const VERMILIONPOKECENTER1F_BUG_CATCHER
+
+VermilionPokecenter1F_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+VermilionPokecenter1FNurseScript:
+ jumpstd pokecenternurse
+
+VermilionPokecenter1FFishingGuruScript:
+ faceplayer
+ opentext
+ checkevent EVENT_FOUGHT_SNORLAX
+ iftrue .FoughtSnorlax
+ writetext VermilionPokecenter1FFishingGuruText
+ waitbutton
+ closetext
+ end
+
+.FoughtSnorlax:
+ writetext VermilionPokecenter1FFishingGuruText_FoughtSnorlax
+ waitbutton
+ closetext
+ end
+
+VermilionPokecenter1FSailorScript:
+ jumptextfaceplayer VermilionPokecenter1FSailorText
+
+VermilionPokecenter1FBugCatcherScript:
+ jumptextfaceplayer VermilionPokecenter1FBugCatcherText
+
+VermilionPokecenter1FFishingGuruText:
+ text "A sleeping #MON"
+ line "is lying in front"
+ cont "of DIGLETT'S CAVE."
+
+ para "It's a fantastic"
+ line "opportunity to get"
+
+ para "it, but how do you"
+ line "wake it up?"
+ done
+
+VermilionPokecenter1FFishingGuruText_FoughtSnorlax:
+ text "There used to be a"
+ line "sleeping #MON"
+
+ para "lying in front of"
+ line "DIGLETT'S CAVE."
+
+ para "But it seems to"
+ line "have disappeared."
+ done
+
+VermilionPokecenter1FSailorText:
+ text "The FAST SHIP is a"
+ line "great place to"
+
+ para "meet and battle"
+ line "trainers."
+ done
+
+VermilionPokecenter1FBugCatcherText:
+ text "Oh? You have some"
+ line "BADGES I've never"
+ cont "seen before."
+
+ para "Oh, I get it. You"
+ line "got them in JOHTO."
+ done
+
+VermilionPokecenter1F_MapEvents:
+ db 0, 0 ; filler
+
+ db 3 ; warp events
+ warp_event 3, 7, VERMILION_CITY, 2
+ warp_event 4, 7, VERMILION_CITY, 2
+ warp_event 0, 7, POKECENTER_2F, 1
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 4 ; object events
+ object_event 3, 1, SPRITE_NURSE, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, VermilionPokecenter1FNurseScript, -1
+ object_event 7, 2, SPRITE_FISHING_GURU, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, VermilionPokecenter1FFishingGuruScript, -1
+ object_event 6, 5, SPRITE_SAILOR, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT, 0, VermilionPokecenter1FSailorScript, -1
+ object_event 1, 5, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, VermilionPokecenter1FBugCatcherScript, -1
diff --git a/maps/VermilionPokecenter2FBeta.asm b/maps/VermilionPokecenter2FBeta.asm
new file mode 100644
index 00000000..6bca09fd
--- /dev/null
+++ b/maps/VermilionPokecenter2FBeta.asm
@@ -0,0 +1,16 @@
+VermilionPokecenter2FBeta_MapScripts:
+ db 0 ; scene scripts
+
+ db 0 ; callbacks
+
+VermilionPokecenter2FBeta_MapEvents:
+ db 0, 0 ; filler
+
+ db 1 ; warp events
+ warp_event 0, 7, VERMILION_POKECENTER_1F, 3
+
+ db 0 ; coord events
+
+ db 0 ; bg events
+
+ db 0 ; object events