From 6d7f07292bf97088d9dca0a2949af0e9ad4acbc9 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sat, 27 Jul 2024 13:54:53 +0100 Subject: [PATCH] Jacky's House (& Jacky & Knuckles) This adds various house tiles that allow the creation of the game house from SW97. It's been heavily altered to include the SNES (from RBY), Virtual Boy, and N64. Here, you can fight Jacky once a day to farm Gold Leaves, which will be currency for a Move Reminder. It should refresh just fine but definitely give it a closer look, I'm not exactly confident. I also made a start on a GSCified sofa but it looks kinda weird. --- constants/engine_flags.asm | 2 + constants/event_flags.asm | 2 +- constants/map_constants.asm | 11 +- constants/wram_constants.asm | 3 + data/events/engine_flags.asm | 2 + data/maps/attributes.asm | 1 + data/maps/blocks.asm | 3 + data/maps/maps.asm | 1 + data/maps/scripts.asm | 1 + data/tilesets/house_attributes.bin | Bin 1024 -> 1040 bytes data/tilesets/house_collision.asm | 25 +- data/tilesets/house_metatiles.bin | Bin 1024 -> 1040 bytes engine/overworld/time.asm | 1 + gfx/tilesets/house.png | Bin 1258 -> 4104 bytes maps/JackysHouse.ablk | 1 + maps/JackysHouse.asm | 359 +++++++++++++++++++++++++++++ maps/Route50.asm | 2 +- maps/SilentHills.asm | 4 +- ram/wram.asm | 3 +- 19 files changed, 399 insertions(+), 22 deletions(-) create mode 100644 maps/JackysHouse.ablk create mode 100644 maps/JackysHouse.asm diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm index e671d92..b0bfc44 100644 --- a/constants/engine_flags.asm +++ b/constants/engine_flags.asm @@ -123,6 +123,8 @@ const ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT const ENGINE_DAILY_MOVE_TUTOR const ENGINE_BUENAS_PASSWORD +; wJackyTimer + const ENGINE_JACKY_TIMER ; wSwarmFlags const ENGINE_BUENAS_PASSWORD_2 const ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 3952b51..d11761e 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -1121,7 +1121,7 @@ const EVENT_BEAT_ARCHER2 const EVENT_BEAT_ARCHER3 const EVENT_BEAT_PROFBLUE - const EVENT_BEAT_JACKY + const EVENT_BEAT_SHINJUKU_JACKY_ONCE ; Unused: next 76 events const_next 1600 diff --git a/constants/map_constants.asm b/constants/map_constants.asm index e6a712d..a44a4b4 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -650,11 +650,12 @@ ENDM map_const OLD_CITY_GYM, 6, 10 ; 8 map_const OLD_CITY_MUSEUM, 8, 3 ; 9 map_const POKEMON_PAGODA_1F, 5, 5 ; 10 - map_const POKEMON_PAGODA_2F, 5, 5 ; 10 - map_const POKEMON_PAGODA_3F, 5, 5 ; 10 - map_const POKEMON_PAGODA_4F, 5, 5 ; 10 - map_const POKEMON_PAGODA_5F, 3, 3 ; 10 - map_const ROUTE_50, 15, 9 ; 10 + map_const POKEMON_PAGODA_2F, 5, 5 ; 11 + map_const POKEMON_PAGODA_3F, 5, 5 ; 12 + map_const POKEMON_PAGODA_4F, 5, 5 ; 13 + map_const POKEMON_PAGODA_5F, 3, 3 ; 14 + map_const ROUTE_50, 15, 9 ; 15 + map_const JACKYS_HOUSE, 4, 4 ; 16 endgroup newgroup BLUE_FOREST ; 37 diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 26f3c48..82c1bba 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -305,6 +305,9 @@ DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2 const DAILYFLAGS2_MOVE_TUTOR_F ; 6 const DAILYFLAGS2_BUENAS_PASSWORD_F ; 7 +; wJackyTimer:: + const DAILYFLAG_JACKY_TIMER + ; wSwarmFlags:: const_def const SWARMFLAGS_BUENAS_PASSWORD_F ; 0 diff --git a/data/events/engine_flags.asm b/data/events/engine_flags.asm index 0626af8..9db96d5 100644 --- a/data/events/engine_flags.asm +++ b/data/events/engine_flags.asm @@ -133,6 +133,8 @@ EngineFlags: engine_flag wDailyFlags2, DAILYFLAGS2_INDIGO_PLATEAU_RIVAL_FIGHT_F engine_flag wDailyFlags2, DAILYFLAGS2_MOVE_TUTOR_F engine_flag wDailyFlags2, DAILYFLAGS2_BUENAS_PASSWORD_F + + engine_flag wJackyTimer, DAILYFLAG_JACKY_TIMER engine_flag wSwarmFlags, SWARMFLAGS_BUENAS_PASSWORD_F engine_flag wSwarmFlags, SWARMFLAGS_GOLDENROD_DEPT_STORE_SALE_F diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index 9474a9b..89ae952 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -847,6 +847,7 @@ ENDM map_attributes PokemonPagoda3F, POKEMON_PAGODA_3F, $00, 0 map_attributes PokemonPagoda4F, POKEMON_PAGODA_4F, $00, 0 map_attributes PokemonPagoda5F, POKEMON_PAGODA_5F, $00, 0 + map_attributes JackysHouse, JACKYS_HOUSE, $00, 0 map_attributes BlueForest, BLUE_FOREST, $00, 0 ; this is on its own for now. add connections later. diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index 6e8920d..5163eea 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -1276,3 +1276,6 @@ PokemonPagoda5F_Blocks: Route50_Blocks: INCBIN "maps/Route50.ablk" + +JackysHouse_Blocks: + INCBIN "maps/JackysHouse.ablk" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index feee56f..7854d9c 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -715,6 +715,7 @@ MapGroup_OldCity: map PokemonPagoda4F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map PokemonPagoda5F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE map Route50, TILESET_NIHON_OLD, ROUTE, LANDMARK_ROUTE_50, MUSIC_ROUTE_30, TRUE, PALETTE_AUTO, FISHGROUP_NONE + map JackysHouse, TILESET_HOUSE, INDOOR, LANDMARK_ROUTE_50, MUSIC_VIOLET_CITY, FALSE, PALETTE_DAY, FISHGROUP_NONE assert_table_length NUM_OLD_CITY_MAPS MapGroup_BlueForest: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 6b2e7b7..cff486d 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -601,6 +601,7 @@ INCLUDE "maps/LavenderCryptSet2.asm" INCLUDE "maps/LavenderCryptSet3.asm" INCLUDE "maps/LavenderCryptDokuroarsRoom.asm" INCLUDE "maps/Route50.asm" +INCLUDE "maps/JackysHouse.asm" SECTION "Map Scripts 31", ROMX ; spillover INCLUDE "maps/TanobyRuins.asm" diff --git a/data/tilesets/house_attributes.bin b/data/tilesets/house_attributes.bin index ef8e53e3871be1374e60faa3c54ab302b87fe3d8..434f0ce4a2cc8a0706bab38728663cea2a7434f6 100644 GIT binary patch literal 1040 zcmb7?jShoA2!rnrlY9Rc){38a%w-t~=@klei)L%oJIrcTdcgV>QD5hCzqMMG+ve#k zDp}vVnbL2syT!O0h<5c!Kkugws$WXn5q~;RSBc(P@9@BPAKIq~U4FgKp$cdIq7M3Y z?UzS6_sCodzmzww92JN=kUB^`BmUTqKI7fL{-N;i8}5Fsr{cj+!DyqkVb;cI^guj3 zQF^J5@9;>oaeSNd4#vwX`0+Wj`DbXplsPpiU+iPeFOH7ifWCL%37?ZIO!&o5_O0&9 E9jF}+qW}N^ literal 1024 zcmds#0S<*Q2t$Pp?|H8k4N|q<)V7kj+ z8I?S%b1Cwr?znSQAn8EnAoGso!ySFccmI5$%AXGJ-t1N^{1!}~?lZ#Ybao&aR+L`q Y>p#3YVqX8IvV(QX33>8f#QA6S18&Lk diff --git a/data/tilesets/house_collision.asm b/data/tilesets/house_collision.asm index 7c7f3fc..b01be01 100644 --- a/data/tilesets/house_collision.asm +++ b/data/tilesets/house_collision.asm @@ -50,15 +50,16 @@ tilecoll FLOOR, WALL, FLOOR, WALL ; 31 tilecoll WALL, WINDOW, WALL, WALL ; 32 tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39 - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e - tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 34 + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 35 + tilecoll WALL, WALL, WALL, WALL ; 36 + tilecoll WALL, WALL, FLOOR, FLOOR ; 37 + tilecoll WINDOW, WALL, FLOOR, FLOOR ; 38 + tilecoll WALL, WINDOW, FLOOR, FLOOR ; 39 + tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 3a + tilecoll WALL, WALL, TV, FLOOR ; 3b + tilecoll WALL, WALL, FLOOR, RADIO ; 3c + tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3d + tilecoll FLOOR, FLOOR, WALL, FLOOR ; 3e + tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3f + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 40 diff --git a/data/tilesets/house_metatiles.bin b/data/tilesets/house_metatiles.bin index 0d3a22f32d18cd2bf72c3ea65f4474dd5613423b..4675c0e2d8ed1c8ab7c5423af374085f677bcc86 100644 GIT binary patch delta 233 zcmZqRn82~YfVrLl4Ty*`FsP_9FbD`TFeoT8FbD}VFeoV__zsRBaRWmqX9q_)c^fM< z?F=ej3=AeZ$fB4cAXye55D^hc6k%Y{)nj9~wG$I(V33oCY2@K$V33i8h(MeoAgHFU kpy=ifQ=zUYAgFH%a$;CG0|Uq*5Ow;Z0)kf7AaMu)0M1qrkN^Mx delta 217 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 delta 1250 zcmV<81ReW`AnFN_7=Ho)0002FcR#NH00gl~L_t(|+U?ZeYm;Xb2k?{RO;*z|lQeO) zu#$F(v{BR~1LbWs>6T{6sx{WfmbAQu+}z{?;F+uPnhk`H>xw; zYG|c95T2e^lL<)EIh3*Vaf;7psJn!OHlrNxsw+kPUtIxmJ&8(HtPCE0C8Ouim+ykz1D zH|E`L#)=uk_OUl|T^@j%x`BbHzRcMrxz(EX+q^g|^$*-N-O?*|y~<$e-~RfEb_nw?MpW%j4owlS$P<7lTe!8G>VMzJPlF$4@y2{h z&+zVkNgNjk0fgwt@n25V6*xFVv_ri*-=r*$_vbbv?yn>qduO59$-#!FM67t_;EJ8T zntnQ+#{+r-#*ezRptaCV>-bQLN)K1;>={DboPXC7+5uWR&A0A43t#YCNtCLk>rF~) zngh%Wz$gF9)w$+V=Qj$-A|XbKC&@%Y@2CJiz9C{+^%InpsR)5DNddi1_tAk=0>plc zlzIcWWSV`|#6$R%XFl9av|ovVv$=);k`((Wot0^vn(#H?%VY^~gv!98gBkRoXyIl) zCVw_68H2izYf=Ex!5I31l)Za9nD4y|fYF+OI%t<5a>^9)A#f04Ko-@n}vTn`!RDGpX=`Au}m9&4gif*ycD zu~d-|(!$S0f_#xD827+ntl=ye--V1=>L=?u=R#KwjS1ivEqoq^33F21>LIbI<$r`D zbBn;Z6&P5iEbus=-{<`NLmLbk;sTs1UxuLD&I&F3w&}n=^6ap;*OFUI;1%Ejg$BOE zI_O-p@Y1?xd8!Qj1p(|VU2rpGI>>(fbFekF2sRuR05~u+Ov2;7zI|p(Cc4Dln+sC^ zrED2Ec|t~i{sMTCe#txX(GLCuEL&T&N89;v%t diff --git a/maps/JackysHouse.ablk b/maps/JackysHouse.ablk new file mode 100644 index 0000000..613d92f --- /dev/null +++ b/maps/JackysHouse.ablk @@ -0,0 +1 @@ +;;6<543333=>3:?@ \ No newline at end of file diff --git a/maps/JackysHouse.asm b/maps/JackysHouse.asm new file mode 100644 index 0000000..071cb8b --- /dev/null +++ b/maps/JackysHouse.asm @@ -0,0 +1,359 @@ +; To paraphrase KEP: +; Shinjuku Jacky was a famous Virtua Fighter player and the source of the famous "Jack" sprite. +; He wrote the book "Virtua Fighter Maniax", the first to feature frame data for Virtua Fighter 1 and thus a very notable resource. +; If you ever view a frame data resource, thank Jacky for popularising the concept. +; At the time, many Virtua Fighter players had "geographical names", representing their residences. Shinjuku is notably within Tokyo, near to Shibuya. +; Because Celadon City is based on Tokyo Metropolis, specifically Shinjuku and Shibuya, and there's a map called JISAN.MAP that featured N64s, in RG ROM Hacks, he's normally placed there. + +; In JEP, Jacky is a gamer near Sepia City who you can fight for Gold Leaves, which I want to serve as Heart Scales. + + object_const_def + +JackysHouse_MapScripts: + def_scene_scripts + + def_callbacks + +; You can fight Shinjuku Jacky every day to get Gold Leaves, which serve as Heart Scale currency. +JackysHouseJackyScript: + faceplayer + checkevent EVENT_BEAT_SHINJUKU_JACKY_ONCE + opentext + iftrue .beatOnce + writetext JackyWelcomeText + waitbutton + closetext + sjump .firstFight +.beatOnce + checkflag ENGINE_JACKY_TIMER + iftrue .tuckeredOut + opentext + writetext JackyPostBeat + waitbutton + closetext + ; fallthrough +.firstFight + yesorno + iffalse .No + sjump .Yes +.No + opentext + writetext JackyNo + waitbutton + closetext + sjump .end +.Yes + opentext + writetext JackyYes + waitbutton + closetext + winlosstext JackyLossText, 0 + loadtrainer JACK, JACKY + startbattle + reloadmapafterbattle + + setevent EVENT_BEAT_SHINJUKU_JACKY_ONCE + setflag ENGINE_JACKY_TIMER + opentext + writetext JackyAfterBattle + promptbutton + verbosegiveitem GOLD_LEAF + iffalse .NoRoomForGoldLeaf + writetext JackyGift + waitbutton + closetext + sjump .end +.tuckeredOut + opentext + writetext JackyTiredText + waitbutton + closetext + ; fallthrough +.end + end + +.NoRoomForGoldLeaf: + writetext JackyNoRoomForGoldLeaf + closetext + end + +JackyWelcomeText: + text "I am SHINJUKU" + line "JACKY!" + + para "I know everything" + line "about the world" + cont "of #MON!" + + para "Hm? You think you" + line "can take me?" + done + +JackyYes: + text "Let's see if you" + line "can walk the" + cont "walk! Come on!" + done + +JackyNo: + text "Maybe another" + line "time…" + done + +JackyLossText: + text "I can't believe" + line "I lost!" + done + +JackyAfterBattle: + text "It was like you" + line "were fighting in" + cont "slow motion…" + + para "Ok! I will give" + line "you a gift to" + cont "help you on your" + cont "quest!" + done + +JackyGift: + text "There's a guy in" + line "WEST CITY who" + cont "loves these!" + + para "Go find him!" + + para "I look forward to" + line "our next bout!" + done + +JackyNoRoomForGoldLeaf: + text "Whoa, dude! You've" + line "got some loaded" + cont "pockets!" + + para "Go make room!" + done + +JackyPostBeat: + text "Hey, it's you!" + + para "Wanna fight again?" + line "I'm out of your" + cont "league!" + done + +JackyTiredText: + text "Chawwww!" + + para "I'm tuckered out!" + line "I gotta take my" + cont "#MON to the" + cont "CENTER in SEPIA!" + + para "Gimme a day," + line "would ya?" + done + +JackyN64: + jumptext JackyN64Text + +JackyN64Text: + text "It's a NINTENDO" + line "64! The latest" + cont "game console!" + done + +JackySNES: + jumptext JackySNESText + +JackySNESText: + text "It's a SNES!" + + para "Aren't these old" + line "now?" + + para "JACKY: Hey! The" + line "games are still" + cont "fun! You're on a" + cont "GAME BOY!" + done + +JackyVirtualBoy: + jumptext JackyVirtualBoy + +JackyVirtualBoyText: + text "It's a VIRTUAL" + line "BOY!" + + para " looked" + line "inside…" + + para "A plumber is" ; Mario's Tennis, arguably the best game on the system. + line "playing tennis!" ; Ok, I guess Wario Land is better... + + para "Best not look" ; Safety is key, Kris! + line "for too long…" + done + +JackyTVFightersDestiny: + jumptext JackyTVFightersDestiny + +; Virtua Fighter 3 never made it to the N64, but Fighters Destiny is basically the same thing. +JackyTVFightersDestinyText: + text "Some characters" + line "are fighting in" + cont "3D! Wow!" + + para "Isn't this too" + line "realistic?" + done + +JackyTVStreetFighterII: + jumptext JackyTVStreetFighterII + +; Jacky was a big Virtua Fighter nerd, so I imagine he'd have two fighting games running at once. +JackyTVStreetFighterIIText: + text "A man in a ban-" + line "dana is fighting" + cont "an American!" + + para "Fiery projectiles" + line "and crazy kicks!" + + para "A true classic!" + done + +JackyMetalSlugPoster: + jumptext JackyMetalSlugPosterText + +JackyMetalSlugPosterText: + text "It's a poster" + line "advertising a" + cont "game with huge" + cont "tanks and guns!" + done + +JackyDDRPoster: + jumptext JackyDDRPoster + +JackyDDRPosterText: + text "It's a poster" + line "advertising a" + cont "dancing game!" + done + +JackyPCStarcraft: + jumptext JackyPCStarcraft + +JackyPCStarcraftText: ; Brood War hadn't long come out, and was really popular in Korea at least. They made the Zerg rush! + text "There's an Eng-" + line "lish game on the" + cont "screen." + + para "Tons of little" + line "creatures are" + cont "attacking some-" + cont "one's base!" + done + +JackyDND: + jumptext JackyDNDText + +JackyDNDText: + text "It's a book for" + line "a tabletop game." + + para "It's called…" + + para "MOUNTAINs and" + line "CHARIZARDs?" + done + +SuperNerdAboutJacky: + jumptextfaceplayer SuperNerdAboutJackyText + +SuperNerdAboutJackyText: + text "JACKY? He was in" + line "CELADON a few" + cont "years ago." + + para "He was voice act-" + line "ing for the next" + cont "big fighting" + cont "game!" ; Shinjuku Jacky voice acted for Virtua Fighter 3! + + para "But he seems more" + line "interested in a" + cont "kid he fought." + + para "Weird, huh?" + done + +JackySuperNerd2: + jumptextfaceplayer JackySuperNerd2Text + +JackySuperNerd2Text: + text "The VIRTUAL BOY" + line "is so cool," + cont "right?" + + para "It'll catch on" + line "eventually." + done + +JackySuperNerd3: + jumptextfaceplayer JackySuperNerd3Text + +JackySuperNerd3Text: + text "JACKY still has" + line "that old SNES." + + para "The games were" + line "awesome, though." + cont "I totally get it!" + done + +JackySuperNerd4: + jumptextfaceplayer JackySuperNerd4Text + +JackySuperNerd4Text: ; A legitimate talking point at the time, before console upgrades became common. + text "I don't get it." + line "Why do we need" + cont "to buy a new" + cont "game console?" + + para "The SNES was" + line "fine. I want to" + cont "keep playing" + cont "my old games," + cont "but they're not" + cont "compatible." + done + +JackysHouse_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 2, 7, ROUTE_50, 2 + warp_event 3, 7, ROUTE_50, 2 + + def_coord_events + + def_bg_events + bg_event 0, 2, BGEVENT_READ, JackyN64 + bg_event 2, 2, BGEVENT_READ, JackySNES + bg_event 5, 1, BGEVENT_READ, JackyVirtualBoy + bg_event 3, 0, BGEVENT_READ, JackyMetalSlugPoster + bg_event 1, 0, BGEVENT_READ, JackyDDRPoster + bg_event 4, 1, BGEVENT_READ, JackyPCStarcraft + bg_event 0, 1, BGEVENT_READ, JackyTVFightersDestiny + bg_event 2, 1, BGEVENT_READ, JackyTVStreetFighterII + bg_event 5, 6, BGEVENT_READ, JackyDND + + def_object_events + object_event 3, 4, SPRITE_BANCHOMAN, SPRITEMOVEDATA_STANDING_DOWN, 2, 2, -1, -1, PAL_NPC_RED, OBJECTTYPE_SCRIPT, 0, JackysHouseJackyScript, -1 ; He has the Banchoman sprite for now, but this could absolutely change! + object_event 7, 6, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, SuperNerdAboutJacky, -1 + object_event 7, 5, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_LEFT, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, JackySuperNerd2, -1 + object_event 5, 4, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_DOWN, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, JackySuperNerd3, -1 + object_event 4, 5, SPRITE_SUPER_NERD, SPRITEMOVEDATA_STANDING_RIGHT, 2, 2, -1, -1, 0, OBJECTTYPE_SCRIPT, 0, JackySuperNerd4, -1 diff --git a/maps/Route50.asm b/maps/Route50.asm index a69bed5..9586850 100644 --- a/maps/Route50.asm +++ b/maps/Route50.asm @@ -118,7 +118,7 @@ Route50_MapEvents: def_warp_events warp_event 6, 5, DEBUG_ROOM, 1 ; West Gate - warp_event 15, 4, DEBUG_ROOM, 1 ; Game House + warp_event 15, 4, JACKYS_HOUSE, 1 ; Game House def_coord_events diff --git a/maps/SilentHills.asm b/maps/SilentHills.asm index 8843ba4..2a6d69e 100644 --- a/maps/SilentHills.asm +++ b/maps/SilentHills.asm @@ -118,7 +118,7 @@ SilentHillsSign2: SilentHillsSign2Text: text "SILENT HILLS" - line "Ever peaceful..." + line "Ever peaceful…" done SilentHillsSign3: @@ -133,7 +133,7 @@ SilentHillsSign4: SilentHillsSign4Text: text "Huh? The door is" - line "closed..." + line "closed…" done SilentHillsSign5: diff --git a/ram/wram.asm b/ram/wram.asm index bc452d4..d82dce5 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -3207,7 +3207,8 @@ wDailyResetTimer:: dw wDailyFlags1:: db wDailyFlags2:: db wSwarmFlags:: db - ds 2 +wJackyTimer:: db + ds 1 wTimerEventStartDay:: db ds 3