Blue's Lab Groundwork

So the scenes are massively unfinished and need some bug fixes, namely;
- Make the Silent Hills scene load properly.
- Finish the interior scene; have the player walk into the map.
- Make the scene loading in the second Blue's Lab room load properly (same issue as Silent Hills)

Main issues come from the events not working like RBY:
- You cannot be walked directly into a warp!
- Coord events don't seem to trigger scenes on their own and I'm just kind of perplexed by it.

If anyone more experienced wants to take a stab at it, by all means! This is looking really good!
This commit is contained in:
Llinos Evans 2024-07-19 23:42:49 +01:00
parent 6816e6bd8e
commit 30e57c9e38
29 changed files with 1075 additions and 72 deletions

View file

@ -1508,7 +1508,15 @@
const EVENT_WINNERS_PATH_ITEM1
const EVENT_WINNERS_PATH_ITEM2
const EVENT_WINNERS_PATH_SWITCH_PRESSED
; Unused: next 47 events
const EVENT_DRAGGED_BY_BLUE
const EVENT_GOT_POKEMON_FROM_BLUE
const EVENT_GOT_PALSSIO_FROM_BLUE
const EVENT_GOT_CUBBURN_FROM_BLUE
const EVENT_CUBBURN_POKEBALL_IN_BLUES_LAB ; to hide
const EVENT_PALSSIO_POKEBALL_IN_BLUES_LAB ; to hide
const EVENT_GONE_THROUGH_STARTER_DOOR
const EVENT_BRIEFED_BY_BLUE
; Unused: next 40 events
const_next 2048
DEF NUM_EVENTS EQU const_value ; 800

View file

@ -631,6 +631,7 @@ ENDM
map_const SINJOH_RUINS_EXTERIOR, 10, 10 ; 13
map_const SINJOH_RUINS_INTERIOR, 10, 10 ; 14
map_const ROUTE_49_OLD_CITY_GATE, 5, 4 ; 15
map_const BLUE_LAB, 12, 10 ; 16
endgroup
newgroup BLUE_FOREST ; 36

View file

@ -8,7 +8,7 @@
const PHONE_SCHOOLBOY_JACK
const PHONE_POKEFAN_BEVERLY
const PHONE_SAILOR_HUEY
const_skip
const PHONE_BLUE
const_skip
const_skip
const PHONE_COOLTRAINERM_GAVEN

View file

@ -47,6 +47,7 @@
const TILESET_NIHON_SOUTH ; 2D
const TILESET_NIHON_WEST ; 2E
const TILESET_LAVENDER_CRYPT ; 2F
const TILESET_BLUE_LAB ; 30
DEF NUM_TILESETS EQU const_value - 1
; wTileset struct size

View file

@ -25,6 +25,7 @@ DEF CHRIS EQU __trainer_class__
const PHONECONTACT_BILL
const PHONECONTACT_ELM
const PHONECONTACT_BUENA
const PHONECONTACT_BLUE
DEF NUM_NONTRAINER_PHONECONTACTS EQU const_value - 1
DEF KRIS EQU __trainer_class__

View file

@ -816,6 +816,7 @@ ENDM
connection west, SilentHills, SILENT_HILLS, 0
map_attributes BlueForest, BLUE_FOREST, $00, 0 ; this is on its own for now. add connections later.
map_attributes BlueLab, BLUE_LAB, $00, 0
map_attributes QuietCave, QUIET_CAVE, $76, 0
map_attributes SilentHillsPokecenter1F, SILENT_HILLS_POKECENTER_1F, $00, 0
map_attributes SilversHouse, SILVERS_HOUSE, $00, 0

View file

@ -1207,3 +1207,6 @@ WinnersPathOutside_Blocks:
UnnumberedRoute_Blocks:
INCBIN "maps/UnnumberedRoute.ablk"
BlueLab_Blocks:
INCBIN "maps/BlueLab.ablk"

View file

@ -688,6 +688,7 @@ MapGroup_SilentHills:
map SinjohRuinsExterior, TILESET_CAVE, CAVE, LANDMARK_SILENT_HILLS, MUSIC_SINJOH_RUINS, TRUE, PALETTE_DAY, FISHGROUP_NONE
map SinjohRuinsInterior, TILESET_CAVE, CAVE, LANDMARK_SILENT_HILLS, MUSIC_SINJOH_RUINS, TRUE, PALETTE_DAY, FISHGROUP_NONE
map Route49OldCityGate, TILESET_GATE, GATE, LANDMARK_ROUTE_49, MUSIC_ROUTE_30, FALSE, PALETTE_DAY, FISHGROUP_NONE
map BlueLab, TILESET_BLUE_LAB, INDOOR, LANDMARK_SILENT_HILLS, MUSIC_POKEMON_TALK, FALSE, PALETTE_DAY, FISHGROUP_NONE
assert_table_length NUM_SILENT_HILLS_MAPS
MapGroup_BlueForest:

View file

@ -86,4 +86,6 @@ MapScenes::
scene_var MOBILE_BATTLE_ROOM, wMobileBattleRoomSceneID
scene_var CERULEAN_CAVE_1F, wCeruleanCave1FSceneID
scene_var PEWTER_MUSEUM_OF_SCIENCE_1F, wPewterMuseum1FSceneID
scene_var SILENT_HILLS, wSilentHillsSceneID
scene_var BLUE_LAB, wBlueLabSceneID
db -1 ; end

View file

@ -494,13 +494,13 @@ INCLUDE "maps/CeruleanCave1F.asm"
INCLUDE "maps/CeruleanCave2F.asm"
INCLUDE "maps/CeruleanCaveB1F.asm"
INCLUDE "maps/SilentHills.asm"
SECTION "Map Scripts 26", ROMX
INCLUDE "maps/LakeOfRageTraderHouse.asm"
INCLUDE "maps/LakeOfRagePokecenter1F.asm"
INCLUDE "maps/LakeOfRageMart.asm"
INCLUDE "maps/LakeOfRagePrycesHouse.asm"
SECTION "Map Scripts 26", ROMX
INCLUDE "maps/DebugRoom.asm"
INCLUDE "maps/CliffCave.asm"
INCLUDE "maps/Route49.asm"
@ -514,6 +514,8 @@ INCLUDE "maps/KantoPokecenter2F.asm"
INCLUDE "maps/CalsHouse1F.asm"
INCLUDE "maps/CalsHouse2F.asm"
INCLUDE "maps/CliffEdgeGate.asm"
SECTION "Map Scripts 27", ROMX
INCLUDE "maps/EmbeddedTower.asm"
INCLUDE "maps/Route48.asm"
INCLUDE "maps/JohtoSafariZoneGate.asm"
@ -521,8 +523,6 @@ INCLUDE "maps/JohtoSafariZone.asm"
INCLUDE "maps/LavenderCrypt.asm"
INCLUDE "maps/UnderwaterTunnel.asm"
INCLUDE "maps/BillsGarden.asm"
SECTION "Map Scripts 27", ROMX
INCLUDE "maps/CeladonUniversityOutside.asm"
INCLUDE "maps/CeladonUniversityInside.asm"
INCLUDE "maps/MtMoonCrater.asm"
@ -544,6 +544,8 @@ INCLUDE "maps/MtEmberHiddenPath.asm"
INCLUDE "maps/TwoIsland.asm"
INCLUDE "maps/CapeBrink.asm"
INCLUDE "maps/Route47.asm"
SECTION "Map Scripts 28", ROMX
INCLUDE "maps/ThreeIsland.asm"
INCLUDE "maps/BondBridge.asm"
INCLUDE "maps/BerryForest.asm"
@ -553,8 +555,6 @@ INCLUDE "maps/IcefallCave1F.asm"
INCLUDE "maps/IcefallCaveB1F.asm"
INCLUDE "maps/IcefallCaveBack.asm"
INCLUDE "maps/FiveIsland.asm"
SECTION "Map Scripts 28", ROMX
INCLUDE "maps/FiveIslandMeadow.asm"
INCLUDE "maps/MemorialPillar.asm"
INCLUDE "maps/WaterLabyrinth.asm"
@ -570,6 +570,15 @@ INCLUDE "maps/OutcastIsland.asm"
INCLUDE "maps/SevenIsland.asm"
INCLUDE "maps/CanyonEntrance.asm"
INCLUDE "maps/SevaultCanyon.asm"
SECTION "Map Scripts 29", ROMX
INCLUDE "maps/Route49OldCityGate.asm"
INCLUDE "maps/WinnersPath.asm"
INCLUDE "maps/WinnersPathOutside.asm"
INCLUDE "maps/UnnumberedRoute.asm"
INCLUDE "maps/BlueLab.asm"
SECTION "Map Scripts 30", ROMX
INCLUDE "maps/TanobyRuins.asm"
INCLUDE "maps/TanobyChambers.asm"
INCLUDE "maps/NavalRockExterior.asm"
@ -589,9 +598,3 @@ INCLUDE "maps/ThreeIslandPort.asm"
INCLUDE "maps/AlteringCave.asm"
INCLUDE "maps/SinjohRuinsExterior.asm"
INCLUDE "maps/SinjohRuinsInterior.asm"
SECTION "Map Scripts 29", ROMX
INCLUDE "maps/Route49OldCityGate.asm"
INCLUDE "maps/WinnersPath.asm"
INCLUDE "maps/WinnersPathOutside.asm"
INCLUDE "maps/UnnumberedRoute.asm"

View file

@ -7,6 +7,7 @@ NonTrainerCallerNames:
dw .bill
dw .elm
dw .buena
dw .blue
assert_table_length NUM_NONTRAINER_PHONECONTACTS + 1
.none: db "----------@"
@ -15,3 +16,4 @@ NonTrainerCallerNames:
.elm: db "PROF.ELM:@"
.bikeshop: db "BIKE SHOP:@"
.buena: db "BUENA:<LF> DISC JOCKEY@"
.blue: db "BILL:@"

View file

@ -1,4 +1,5 @@
PermanentNumbers:
db PHONECONTACT_MOM
db PHONECONTACT_ELM
db PHONECONTACT_BLUE
db -1 ; end

View file

@ -19,7 +19,7 @@ PhoneContacts:
phone SCHOOLBOY, JACK1, NATIONAL_PARK, ANYTIME, JackPhoneCalleeScript, ANYTIME, JackPhoneCallerScript
phone POKEFANF, BEVERLY1, NATIONAL_PARK, ANYTIME, BeverlyPhoneCalleeScript, ANYTIME, BeverlyPhoneCallerScript
phone SAILOR, HUEY1, OLIVINE_LIGHTHOUSE_2F, ANYTIME, HueyPhoneCalleeScript, ANYTIME, HueyPhoneCallerScript
phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript
phone TRAINER_NONE, PHONECONTACT_BLUE, BLUE_LAB, ANYTIME, BluePhoneCalleeScript, 0, UnusedPhoneScript
phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript
phone TRAINER_NONE, PHONE_00, N_A, 0, UnusedPhoneScript, 0, UnusedPhoneScript
phone COOLTRAINERM, GAVEN3, ROUTE_26, ANYTIME, GavenPhoneCalleeScript, ANYTIME, GavenPhoneCallerScript

View file

@ -0,0 +1,17 @@
; This'll serve as a story progression-ator, like Elm in Johto.
BlueAnswerPhoneRegularText:
text "Yes? @"
text_ram wStringBuffer3
text " here…"
para "Ah, <PLAYER>."
para "Nope, no updates"
line "on gramps yet."
para "I'll let you know"
line "if I turn up any"
cont "clues!"
done

View file

@ -59,4 +59,5 @@ Tilesets::
tileset TilesetNihonSouth
tileset TilesetNihonWest
tileset TilesetLavenderCrypt
tileset TilesetBlueLab
assert_table_length NUM_TILESETS + 1

Binary file not shown.

View file

@ -0,0 +1,17 @@
tilecoll WALL, WALL, WALL, WALL ; 00
tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 02
tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 03
tilecoll WALL, WALL, FLOOR, FLOOR ; 04
tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
tilecoll WALL, WALL, WALL, WALL ; 06
tilecoll WALL, FLOOR, WALL, FLOOR ; 07
tilecoll FLOOR, WALL, FLOOR, WALL ; 08
tilecoll WALL, WALL, WALL, WALL ; 09
tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
tilecoll WALL, WALL, WALL, WALL ; 0b
tilecoll DOOR, WALL, FLOOR, FLOOR ; 0c
tilecoll WALL, WALL, FLOOR, FLOOR ; 0d
tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
tilecoll WALL, WALL, FLOOR, FLOOR ; 0f
tilecoll FLOOR, WALL, FLOOR, FLOOR ; 10

View file

@ -0,0 +1,2 @@
))))))))))))))))  8989 89 89#""$3224** !01"$
24 ::::::::"""$2224***#"32*

View file

@ -0,0 +1,8 @@
; As the Nihon story progresses, Blue's responses should change based on story progression.
; Similar to Elm, he won't call much. Expect this to change a LOT!
BluePhoneCalleeScript:
farwritetext BlueAnswerPhoneRegularText
promptbutton
end

View file

@ -236,19 +236,6 @@ TilesetTowerAnim:
dw NULL, WaitTileAnimation
dw NULL, DoneTileAnimation
UnusedTilesetAnim5: ; unreferenced
; Scrolls tile $4f like cave water.
dw vTiles2 tile $4f, ReadTileToAnimBuffer
dw wTileAnimBuffer, ScrollTileRightLeft
dw vTiles2 tile $4f, WriteTileFromAnimBuffer
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
dw NULL, DoneTileAnimation
TilesetNihon1Anim:
TilesetNihonBirdonAnim:
TilesetNihonFontAnim:
@ -331,6 +318,7 @@ TilesetOmanyteWordRoomAnim:
TilesetAerodactylWordRoomAnim:
TilesetMuseumAnim:
TilesetLavenderCryptAnim:
TilesetBlueLabAnim:
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation
dw NULL, WaitTileAnimation

View file

@ -588,3 +588,15 @@ INCBIN "data/tilesets/lavendercrypt_metatiles.bin"
TilesetLavenderCryptColl::
INCLUDE "data/tilesets/lavendercrypt_collision.asm"
TilesetBlueLabAttr::
INCBIN "data/tilesets/bluelab_attributes.bin"
TilesetBlueLabGFX::
INCBIN "gfx/tilesets/bluelab.2bpp.lz"
TilesetBlueLabMeta::
INCBIN "data/tilesets/bluelab_metatiles.bin"
TilesetBlueLabColl::
INCLUDE "data/tilesets/bluelab_collision.asm"

BIN
gfx/tilesets/bluelab.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 B

View file

@ -401,6 +401,7 @@ INCLUDE "engine/phone/scripts/kenji.asm"
INCLUDE "engine/phone/scripts/parry.asm"
INCLUDE "engine/phone/scripts/erin.asm"
INCLUDE "engine/phone/scripts/generic_callee.asm"
INCLUDE "engine/phone/scripts/blue.asm"
INCLUDE "engine/events/trainer_scripts.asm"
@ -633,6 +634,7 @@ INCLUDE "data/phone/text/wilton_callee.asm"
INCLUDE "data/phone/text/kenji_callee.asm"
INCLUDE "data/phone/text/parry_callee.asm"
INCLUDE "data/phone/text/erin_callee.asm"
INCLUDE "data/phone/text/blue_callee.asm"
INCLUDE "data/phone/text/unused.asm"

BIN
maps/BlueLab.ablk Normal file

Binary file not shown.

790
maps/BlueLab.asm Normal file
View file

@ -0,0 +1,790 @@
; Text in this area uses translations from Minamitoku.
; https://www.youtube.com/watch?v=Pe1vsKRl7_M&ab_channel=Minamitoku
; https://www.youtube.com/watch?v=EyAHU12OKDI&t=1741s&ab_channel=Minamitoku
; There is much abridging of course, for the purposes of JEP's storyline.
; Some tweaks are made to be reminiscent of RBY, showing Blue taking after Oak.
object_const_def
const BLUELAB_BLUE
const BLUELAB_CUBBURN
const BLUELAB_PALSSIO
const BLUELAB_CHIKORITA
const BLUELAB_KEN
const BLUELAB_OAK
BlueLab_MapScripts:
def_scene_scripts
scene_script EnterLabWithBlue, SCENE_ENTER_LAB_WITH_BLUE
scene_script EnterStarterRoomWithBlue, SCENE_ENTER_STARTER_ROOM_WITH_BLUE
scene_script BlueLabWhereGoing, SCENE_BLUELAB_WHERE_GOING
scene_script BlueLabNoopScene, SCENE_BLUELAB_NOOP
def_callbacks
callback MAPCALLBACK_OBJECTS, BlueLabSetup
BlueLabNoopScene:
end
BlueLabSetup:
checkevent EVENT_DRAGGED_BY_BLUE
iffalse .skip1
moveobject BLUELAB_BLUE, 4, 18
.skip1
checkevent EVENT_GONE_THROUGH_STARTER_DOOR
iffalse .skip2
appear BLUELAB_BLUE
appear BLUELAB_KEN
moveobject BLUELAB_BLUE, 20, 2
moveobject BLUELAB_KEN, 19, 4
.skip2
checkevent EVENT_BRIEFED_BY_BLUE
iffalse .skip3
moveobject BLUELAB_OAK, 6, 2
moveobject BLUELAB_KEN, 23, 19
.skip3
endcallback
end
EnterLabWithBlue:
applymovement BLUELAB_BLUE, BlueIllusion
moveobject BLUELAB_BLUE, 5, 4
applymovement PLAYER, EnterLabWithBlueMovement
turnobject BLUELAB_BLUE, UP
opentext
writetext BlueIBroughtEm
waitbutton
closetext
opentext
writetext KenWowText
waitbutton
closetext
opentext
writetext OakAhYesIAmOak
waitbutton
closetext
opentext
writetext OakStoryAskText
waitbutton
closetext
yesorno
iffalse .No1
sjump .Yes1
.No1
opentext
writetext OakDiscerningEye
waitbutton
closetext
yesorno
iffalse .No1
.Yes1
opentext
writetext OakStoryText
waitbutton
closetext
turnobject BLUELAB_KEN, RIGHT
opentext
writetext KenResponseText
waitbutton
closetext
opentext
writetext BlueTakeText
waitbutton
closetext
opentext
writetext OakThanksText
waitbutton
closetext
applymovement BLUELAB_BLUE, KenBlueMovement
applymovement BLUELAB_BLUE, BlueEnterStarterRoomMovement
disappear BLUELAB_BLUE
playsound SFX_ENTER_DOOR
pause 10
applymovement BLUELAB_KEN, KenBlueMovement
applymovement BLUELAB_KEN, KenEnterStarterRoomMovement
disappear BLUELAB_KEN
playsound SFX_ENTER_DOOR
pause 10
applymovement PLAYER, EnterStarterRoomMovement1
setscene SCENE_BLUELAB_NOOP
end
EnterStarterRoomWithBlue:
applymovement PLAYER, EnterStarterRoomMovement2
opentext
writetext BlueChooseText
waitbutton
closetext
opentext
writetext KenPickText
waitbutton
closetext
applymovement BLUELAB_KEN, KenPickMovement1
opentext
writetext KenChikoritaText
waitbutton
closetext
disappear BLUELAB_CHIKORITA
opentext
writetext KenReceivedChikoritaText
waitbutton
closetext
playsound SFX_CAUGHT_MON
waitsfx
applymovement BLUELAB_KEN, KenPickMovement2
moveobject BLUELAB_KEN, 23, 19
playsound SFX_ENTER_DOOR
pause 10
opentext
writetext BlueWeirdText
waitbutton
closetext
.goBack
opentext
writetext BlueProposalText
waitbutton
closetext
yesorno
iffalse .No
sjump .Yes
.No
opentext
writetext BlueLabINeedYouText
waitbutton
closetext
yesorno
iffalse .goBack
.Yes
opentext
writetext BlueAcceptText
waitbutton
closetext
setscene SCENE_BLUELAB_NOOP
clearevent EVENT_GOT_POKEMON_FROM_BLUE ; Player is now trapped!
end
BlueIllusion: ; Blue steps up, then gets directly moved to the right spot once he's off-screen.
step UP
step UP
step UP
step UP
step UP
step_end
EnterLabWithBlueMovement:
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step UP
step_end
EnterStarterRoomMovement1:
step RIGHT
step UP
step UP
step UP
step LEFT
step UP
step_end
KenBlueMovement:
step UP
step UP
step UP
step_end
KenEnterStarterRoomMovement:
step RIGHT
step UP
step_end
BlueEnterStarterRoomMovement:
step LEFT
step UP
step_end
EnterStarterRoomMovement2:
step UP
step UP
step UP
step UP
step UP
step_end
CubburnPokeBallScript:
checkevent EVENT_GOT_POKEMON_FROM_BLUE
iftrue LookAtBluePokeBallScript
turnobject BLUELAB_BLUE, DOWN
refreshscreen
pokepic CUBBURN
cry CUBBURN
waitbutton
closepokepic
opentext
writetext TakeCubburnText
yesorno
iffalse BlueDidntChooseStarterScript
disappear BLUELAB_CUBBURN
setevent EVENT_GOT_CUBBURN_FROM_BLUE
writetext BlueChoseCubburnText
promptbutton
waitsfx
getmonname STRING_BUFFER_3, CUBBURN
writetext BlueLabReceivedStarterText
playsound SFX_CAUGHT_MON
waitsfx
promptbutton
givepoke CUBBURN, 5
closetext
readvar VAR_FACING
ifequal RIGHT, BlueAfterStarterScript
applymovement PLAYER, AfterCubburnMovement
sjump BlueAfterStarterScript
PalssioPokeBallScript:
checkevent EVENT_GOT_POKEMON_FROM_BLUE
iftrue LookAtBluePokeBallScript
turnobject BLUELAB_BLUE, DOWN
refreshscreen
pokepic PALSSIO
cry PALSSIO
waitbutton
closepokepic
opentext
writetext TakePalssioText
yesorno
iffalse BlueDidntChooseStarterScript
disappear BLUELAB_PALSSIO
setevent EVENT_GOT_PALSSIO_FROM_BLUE
writetext BlueChosePalssioText
promptbutton
waitsfx
getmonname STRING_BUFFER_3, PALSSIO
writetext BlueLabReceivedStarterText
playsound SFX_CAUGHT_MON
waitsfx
promptbutton
givepoke PALSSIO, 5
closetext
readvar VAR_FACING
ifequal RIGHT, BlueAfterStarterScript
applymovement PLAYER, AfterPalssioMovement
sjump BlueAfterStarterScript
BlueAfterStarterScript:
opentext
writetext BlueAfterStarterText
waitbutton
closetext
addcellnum PHONE_BLUE
opentext
writetext GotBluesNumberText
playsound SFX_REGISTER_PHONE_NUMBER
waitsfx
waitbutton
closetext
moveobject BLUELAB_OAK, 6, 2
setevent EVENT_BRIEFED_BY_BLUE
end
BlueDidntChooseStarterScript:
writetext BlueDidntChooseStarterText
waitbutton
closetext
end
BlueLabReceivedStarterText:
text "<PLAYER> received"
line "@"
text_ram wStringBuffer3
text "!"
done
BlueChoseCubburnText:
text "BLUE: This one"
line "is fierce! I"
cont "love it!"
done
BlueChosePalssioText:
text "BLUE: This one"
line "is so smart!"
para "A favourite of"
line "mine for sure!"
done
BlueDidntChooseStarterText:
text "Think it over"
line "carefully."
para "This is really"
line "important, after"
cont "all."
done
GotBluesNumberText:
text "<PLAYER> got BLUE's"
line "phone number."
done
AfterCubburnMovement:
step LEFT
step LEFT
turn_head UP
step_end
AfterPalssioMovement:
step LEFT
step LEFT
step LEFT
turn_head UP
step_end
TakeCubburnText:
text "So! You want the"
line "FIRE #MON,"
cont "CUBBURN?"
done
TakePalssioText:
text "So! You want the"
line "WATER #MON,"
cont "PALSSIO?"
done
LookAtBluePokeBallScript:
opentext
writetext BluePokeBallText
waitbutton
closetext
end
BlueChikoritaPokeBallScript:
BluePokeBallText:
text "It contains a"
line "#MON caught by"
cont "PROF.OAK."
done
KenIfItIsntYouText:
text "KEN: Haaah, what?"
line "If it isn't"
cont "<PLAYER>!"
para "I thought it was"
line "strange, so I"
cont "came here."
para "But nobody is"
line "around!"
done
PCText:
text "There's some mail"
line "here!"
para "… … …"
para "PROF.OAK!"
line "Have you vanished?"
para "The whole world is"
line "worried!"
para "That said…"
para "I still haven't"
line "been able to"
cont "find that #MON"
cont "you wanted to"
cont "research."
para "No clues, no"
line "chances to catch"
cont "it."
para "Maybe it really"
line "is a tall tale…"
para "- A concerned"
line "AIDE"
done
ReportText:
text "Don't forget to"
line "SAVE!"
done
PokedexText:
text "It's a #DEX!"
line "It looks diff-"
cont "erent to the"
cont "ones in JOHTO!"
done
DoorLockedText:
text "The door is"
line "locked."
done
BlueLabWhereAreYouGoingText:
text "BLUE: Whoa, hey,"
line "you going some-"
cont "where?"
done
BlueLabINeedYouText:
text "Look, I need you"
line "to do this with"
cont "me."
para "These #MON are"
line "super rare! You"
cont "like those, right?"
done
BlueIBroughtEm:
text "BLUE: Hey! Gramps!"
line "I brought 'em!"
done
KenWowText:
text "KEN: Whoa, it's"
line "PROF.OAK!"
para "I didn't expect"
line "him to be a"
cont "geez-- I mean,"
cont "senior…"
done
OakAhYesIAmOak:
text "OAK: Hm? Ah, yes,"
line "I am OAK!"
para "So nice of you"
line "to call me an"
cont "old geezer!"
para "Yes! I, PROF.OAK,"
line "called you two"
cont "here!"
done
OakStoryAskText:
text "Will you listen"
line "to my story?"
done
OakDiscerningEye:
text "I suppose I am"
line "not a good judge"
cont "of character…"
para "Hmm…"
done
OakStoryText:
text "OAK: Right! A year"
line "ago, I gave two"
cont "boys #MON so"
cont "they could carry"
cont "out my dream of"
cont "filling the"
cont "#DEX!"
para "That dream was"
line "fulfilled! They"
cont "pulled it off"
cont "with aplomb!"
para "They documented"
line "all 190 #MON!"
para "But…the world is"
line "a big place! One"
cont "after another, new"
cont "#MON have been"
cont "discovered!"
para "I moved to this"
line "place, SILENT"
cont "HILLS, to cont-"
cont "inue my research!"
para "I must see all"
line "#MON up close!"
cont "That is my policy!"
para "… … …"
para "As you can see,"
line "my nephew is here"
cont "to help, as are"
cont "everyone else."
para "But…we're short-"
line "staffed."
para "So! You two!"
para "I need your help!"
done
KenResponseText:
text "KEN: Oh, <PLAYER>!"
line "This is super"
cont "interesting!"
done
BlueTakeText:
text "BLUE: I'll take"
line "them in. You need"
cont "rest, gramps!"
done
OakThanksText:
text "OAK: Ah, thank"
line "you!"
done
BlueChooseText:
text "BLUE: So here we"
line "have 3 #"
cont "BALLS!"
para "Haha! They contain"
line "#MON."
para "I used to be a"
line "rough and tumble"
cont "sort of TRAINER,"
cont "and even became"
cont "CHAMPION!"
para "But I was too"
line "cocky for my own"
cont "good. My old RIVAL"
cont "set me straight."
para "When picking these"
line "3, please treat"
cont "them with love"
cont "and respect."
para "KEN, care to pick"
line "first?"
done
KenPickText:
text "Ah! I already"
line "know which I want"
cont "want to pick!"
para "I'm so excited!"
done
KenPickMovement1:
step RIGHT
step RIGHT
step UP
step_end
KenChikoritaText:
text "CHIKORITA!"
line "It's so cute"
cont "and cuddly!"
para "Let's go on"
line "an adventure"
cont "together!"
para "I'll show CAL!"
done
KenReceivedChikoritaText:
text "KEN received"
line "CHIKORITA!"
done
KenPickMovement2:
step LEFT
step DOWN
step DOWN
step DOWN
step DOWN
step DOWN
step DOWN
step_end
BlueWeirdText:
text "BLUE: Such a"
line "starry-eyed"
cont "kid…"
para "Well, champ…"
para "You saw it too,"
line "right? I mean,"
cont "you have to be"
cont "blind to not."
para "That ain't gramps."
para "No one believes"
line "me! Not even"
cont "DAISY! Gramps's"
cont "research is top-"
cont "notch, but this"
cont "one hardly responds"
cont "to e-mails!"
para "#MON TALK is"
line "down too, so the"
cont "news is catching"
cont "on!"
done
BlueProposalText:
text "So here's the"
line "deal. I want you"
cont "to search for"
cont "gramps."
para "In return, I"
line "will give you"
cont "one of these"
cont "#MON. Capische?"
done
BlueAcceptText:
text "They're super"
line "rare! I'm sure"
cont "they'll be safe"
cont "with you!"
done
BlueAfterStarterText:
text "Right place at"
line "the right time,"
cont "huh, <PLAYER>?"
para "I don't have any"
line "proof that gramps"
cont "has disappeared,"
cont "only a hunch."
para "I don't know"
line "where he could"
cont "have gone, even."
para "The NIHON LEAGUE"
line "is wicked tough,"
cont "so why not start"
cont "there?"
para "The first GYM is"
line "in OLD CITY."
para "Oh, say, do you"
line "want my #GEAR"
cont "number? I'll call"
cont "you if anything"
cont "comes up"
done
BlueLabWhereAreYouGoingMovement:
step UP
step_end
BlueLabWhereGoing:
checkevent EVENT_GOT_POKEMON_FROM_BLUE
iftrue .end
opentext
writetext BlueLabWhereGoing
waitbutton
closetext
applymovement PLAYER, BlueLabWhereAreYouGoingMovement
opentext
writetext BlueLabINeedYouText
waitbutton
closetext
setscene SCENE_BLUELAB_NOOP
.end
end
OakRegularScript:
jumptextfaceplayer OakRegularText
OakRegularText:
text "OAK: #MON the"
line "world over wait"
cont "for you…"
para "What was your"
line "name again?"
para "<PLAYER>?"
para "I'll remember it"
line "for you."
done
KenRegularScript:
jumptextfaceplayer KenRegularText
KenRegularText:
text "?"
done
; To be expanded on later.
ProfBlueScript:
opentext
writetext BlueRegularText
waitbutton
closetext
end
BlueRegularText:
text "Hey, <PLAYER>!"
para "I'll let you know"
line "If anything comes"
cont "up."
done
BlueLab_MapEvents:
db 0, 0 ; filler
def_warp_events
warp_event 3, 19, SILENT_HILLS, 3
warp_event 4, 19, SILENT_HILLS, 4
warp_event 4, 0, BLUE_LAB, 4
warp_event 19, 9, BLUE_LAB, 3
warp_event 20, 9, BLUE_LAB, 3
def_coord_events
coord_event 4, 19, SCENE_ENTER_LAB_WITH_BLUE, EnterLabWithBlue
coord_event 20, 9, SCENE_BLUELAB_WHERE_GOING, BlueLabWhereGoing
coord_event 19, 9, SCENE_BLUELAB_WHERE_GOING, BlueLabWhereGoing
def_bg_events
def_object_events
object_event 4, 2, SPRITE_BLUE, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, ProfBlueScript, -1
object_event 22, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, CubburnPokeBallScript, EVENT_CUBBURN_POKEBALL_IN_BLUES_LAB
object_event 23, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, PalssioPokeBallScript, EVENT_PALSSIO_POKEBALL_IN_BLUES_LAB
object_event 21, 2, SPRITE_POKE_BALL, SPRITEMOVEDATA_STILL, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, BlueChikoritaPokeBallScript, -1
object_event 3, 4, SPRITE_ROCKER, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, KenRegularScript, -1
object_event 4, 2, SPRITE_OAK, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, OakRegularScript, -1

View file

@ -1209,12 +1209,6 @@ ElmGiveTicketText2:
line "PROF.OAK in KANTO!"
done
ElmsLabMonEggText: ; unreferenced
text "It's the #MON"
line "EGG being studied"
cont "by PROF.ELM."
done
AideText_GiveYouPotion:
text "<PLAY_G>, I want"
line "you to have this"

View file

@ -2,14 +2,82 @@
; https://www.youtube.com/watch?v=Pe1vsKRl7_M&ab_channel=Minamitoku
object_const_def
;const GLOBALTERMINALOUTSIDE_ROCKET
const SILENT_HILLS_POKEFAN_F
const SILENT_HILLS_YOUNGSTER
const SILENT_HILLS_BLUE
SilentHills_MapScripts:
def_scene_scripts
scene_script SilentHillsNoopScene, SCENE_SILENT_HILLS_NOOP
scene_script SilentHillsBlue1, SCENE_SILENT_HILLS_BLUE1
scene_script SilentHillsBlue2, SCENE_SILENT_HILLS_BLUE2
def_callbacks
callback MAPCALLBACK_NEWMAP, SilentHillsFlypointCallback
SilentHillsNoopScene:
end
SilentHillsBlue1:
checkevent EVENT_DRAGGED_BY_BLUE
iftrue .end
moveobject SILENT_HILLS_BLUE, 4, 8
opentext
writetext BlueWaitText1
waitbutton
closetext
pause 15
opentext
writetext BlueWaitText2
waitbutton
closetext
opentext
writetext BlueFollowMeText
playmusic MUSIC_SHOW_ME_AROUND
appear SILENT_HILLS_BLUE
applymovement SILENT_HILLS_BLUE, BlueStrideMovement
opentext
writetext BlueFollowMeText
waitbutton
closetext
follow SILENT_HILLS_BLUE, PLAYER, BlueFollowMeMovement1
stopfollow
setevent EVENT_DRAGGED_BY_BLUE
setevent EVENT_GOT_POKEMON_FROM_BLUE ; It's only for the moment, it gets reset once you're actually picking one. Just handles potentially stupid scenarios.
.end
setscene SCENE_SILENT_HILLS_NOOP
end
SilentHillsBlue2:
checkevent EVENT_DRAGGED_BY_BLUE
iftrue .end
moveobject SILENT_HILLS_BLUE, 4, 8
opentext
writetext BlueWaitText1
waitbutton
closetext
pause 15
opentext
writetext BlueWaitText2
waitbutton
closetext
opentext
writetext BlueFollowMeText
playmusic MUSIC_SHOW_ME_AROUND
appear SILENT_HILLS_BLUE
applymovement SILENT_HILLS_BLUE, BlueStrideMovement
opentext
writetext BlueFollowMeText
waitbutton
closetext
follow SILENT_HILLS_BLUE, PLAYER, BlueFollowMeMovement2
stopfollow
setevent EVENT_DRAGGED_BY_BLUE
setevent EVENT_GOT_POKEMON_FROM_BLUE ; It's only for the moment, it gets reset once you're actually picking one. Just handles potentially stupid scenarios.
.end
setscene SCENE_SILENT_HILLS_NOOP
end
SilentHillsFlypointCallback:
setflag ENGINE_FLYPOINT_SILENT_HILLS
endcallback
@ -67,9 +135,98 @@ SilentHillYoungster:
jumptextfaceplayer SilentHillManText
SilentHillManText:
text "Are there people"
line "who hate #MON"
cont "at night?"
text "Do some people"
line "hate nocturnal"
cont "#MON?"
done
BlueWaitText1:
text "Hey! Hey! Wait!"
done
BlueWaitText2:
text "I said WAIT, bozo!"
done
BlueFollowMeText:
text "BLUE: Do you not"
line "know--"
para "Huh?! It's you!"
line "You wiped the floor"
cont "with me before!"
para "What are you doing"
line "in NIHON?!"
para "…"
para "You may be useful,"
line "actually. Come with"
cont "me!"
done
BlueStrideMovement:
step LEFT
step LEFT
step LEFT
step_end
BlueFollowMeMovement1:
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step DOWN
step DOWN
step DOWN
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step UP
step_end
BlueFollowMeMovement2:
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step DOWN
step DOWN
step DOWN
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step RIGHT
step UP
step_end
; A little message for the cheaters.
SilentHillsWhatScript:
jumptextfaceplayer SilentHillsWhatText
SilentHillsWhatText:
text "How on earth did"
line "you get here?!"
para "You stinker!"
para "…"
para "Well, you must be"
line "smart…and dedicated."
para "So, props! Thanks"
line "for playing!"
done
SilentHills_MapEvents:
@ -78,11 +235,13 @@ SilentHills_MapEvents:
def_warp_events
warp_event 13, 4, SILENT_HILLS_POKECENTER_1F, 1 ; Pokecenter
warp_event 5, 4, CALS_HOUSE_1F, 1 ; Cal's House
warp_event 14, 11, PLAYERS_HOUSE_1F, 1 ; Blue's Lab
warp_event 15, 11, PLAYERS_HOUSE_1F, 1 ; Blue's Lab
warp_event 3, 12, SILVERS_HOUSE, 1 ; Silver's House
warp_event 14, 11, BLUE_LAB, 1
warp_event 15, 11, BLUE_LAB, 2
warp_event 3, 12, SILVERS_HOUSE, 1
def_coord_events
coord_event 1, 9, SCENE_SILENT_HILLS_BLUE1, SilentHillsBlue1
coord_event 1, 8, SCENE_SILENT_HILLS_BLUE2, SilentHillsBlue2
def_bg_events
bg_event 8, 4, BGEVENT_READ, SilentHillsSign1
@ -96,3 +255,4 @@ SilentHills_MapEvents:
def_object_events
object_event 8, 7, SPRITE_POKEFAN_F, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, SilentHillPokefanF, -1
object_event 9, 13, SPRITE_YOUNGSTER, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, SilentHillYoungster, -1
object_event 0, 0, SPRITE_BLUE, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, OBJECTTYPE_SCRIPT, 0, SilentHillsWhatText, -1

View file

@ -3111,7 +3111,9 @@ wMobileTradeRoomSceneID:: db
wMobileBattleRoomSceneID:: db
wCeruleanCave1FSceneID:: db
wPewterMuseum1FSceneID:: db
ds 48
wSilentHillsSceneID:: db
wBlueLabSceneID:: db
ds 46
; fight counts
wJackFightCount:: db

View file

@ -1,32 +1,18 @@
Exception: STATUS_ACCESS_VIOLATION at rip=000100401246
rax=FFFFFFF5FFFD90D1 rbx=000000000000165C rcx=0000000A00000010
rdx=0000000000000000 rsi=0000000A000257CB rdi=0000000000000000
r8 =00000007FFFFC764 r9 =0000000000000000 r10=0000000800000000
r11=0000000100401282 r12=0000000A00026F30 r13=0000000100403148
r14=0000000000000000 r15=0000000000000001
rbp=0000000100403156 rsp=00000007FFFFCA00
program=C:\cygwin64\home\User\jep-hack\tools\scan_includes.exe, pid 8896, thread main
Exception: STATUS_ACCESS_VIOLATION at rip=00100401246
rax=FFFFFFF7FFF941B1 rbx=0000000000000352 rcx=0000000800000010
rdx=0000000000000000 rsi=000000080005BDC1 rdi=0000000000000000
r8 =00000000FFFFC7C4 r9 =0000000000000000 r10=0000000100000000
r11=00000001004013C6 r12=000000080006BE50 r13=0000000100403148
r14=000000080005BDC0 r15=0000000000000001
rbp=0000000100403156 rsp=00000000FFFFCA60
program=C:\cygwin64\home\chipp\jep-hack\tools\scan_includes.exe, pid 4802, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
000100403156 000100401246 (000A000257CB, 000000000022, 000100403166, 000100403148) scan_includes.exe+0x1246
000100403156 000100401409 (000A00010A51, 000000000022, 000100403166, 0007FFFFCBB0) scan_includes.exe+0x1409
000100403156 000100401409 (7FFA3CE2F0C0, 7FFA3CD45800, 7FFA3CE2F160, 000100407000) scan_includes.exe+0x1409
000100403178 000100401C77 (000000000000, 000000000000, 000000000000, 000000000000) scan_includes.exe+0x1C77
0007FFFFCD30 7FFA3CB580A3 (000000000000, 000000000000, 000000000000, 000000000000) cygwin1.dll+0x80A3
0007FFFFFFF0 7FFA3CB55C86 (000000000000, 000000000000, 000000000000, 000000000000) cygwin1.dll+0x5C86
0007FFFFFFF0 7FFA3CB55D34 (000000000000, 000000000000, 000000000000, 000000000000) cygwin1.dll+0x5D34
Frame Function Args
00100403156 00100401246 (0080005BDC1, 00000000022, 00100403166, 000FFFFCB90)
00100403156 00100401409 (00000000000, 00100000001, 00180227860, 00100407000)
00100403178 00100401C87 (00000000020, 00000000000, 00180049B11, 00180048A70)
000FFFFCD30 00180049B7D (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 00180047746 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 001800477F4 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace
Loaded modules:
000100400000 scan_includes.exe
7FFA8B470000 ntdll.dll
7FFA8B2B0000 KERNEL32.DLL
7FFA88E00000 KERNELBASE.dll
7FFA3CB50000 cygwin1.dll
7FFA8AD00000 advapi32.dll
7FFA8B200000 msvcrt.dll
7FFA8B150000 sechost.dll
7FFA88DD0000 bcrypt.dll
7FFA8ADC0000 RPCRT4.dll
7FFA88010000 CRYPTBASE.DLL
7FFA888C0000 bcryptPrimitives.dll