From 711410936832551ad6601832e683414f63505ed6 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sat, 27 Jul 2024 11:34:14 +0100 Subject: [PATCH 1/2] Route 50 This adds Route 50 to the game, as well as Jacky, albeit without the gate or house that you can warp to within. I decided that the game house will be where Shinjuku Jacky hangs out this time! He'll battle the player and give them uhhh idfk you figure it out Also I don't know what to call West City. It's a rather sea-blueish colour, sort of like duck egg blue. Sort of a Pacific Teal, right? I need another gay person to give colour ideas. --- constants/event_flags.asm | 11 ++- constants/landmark_constants.asm | 1 + constants/map_constants.asm | 1 + constants/trainer_constants.asm | 11 ++- data/maps/attributes.asm | 30 +++--- data/maps/blocks.asm | 3 + data/maps/landmarks.asm | 2 + data/maps/maps.asm | 1 + data/maps/outdoor_sprites.asm | 2 +- data/maps/scripts.asm | 1 + data/tilesets/nihon_old_attributes.bin | Bin 1056 -> 1168 bytes data/tilesets/nihon_old_collision.asm | 7 ++ data/tilesets/nihon_old_metatiles.bin | Bin 1056 -> 1168 bytes data/trainers/attributes.asm | 6 ++ data/trainers/class_names.asm | 1 + data/trainers/dvs.asm | 1 + data/trainers/encounter_music.asm | 1 + data/trainers/gendered_trainers.asm | 1 + data/trainers/genders.asm | 1 + data/trainers/palettes.asm | 3 +- data/trainers/parties.asm | 40 ++++++-- data/trainers/parties_new_classes.asm | 28 +++++- data/trainers/party_pointers.asm | 1 + data/trainers/pic_pointers.asm | 1 + data/trainers/sprites.asm | 1 + data/wild/nihon_grass.asm | 30 +++++- gfx/pics.asm | 1 + gfx/trainers/jack.png | Bin 807 -> 447 bytes maps/OldCity.asm | 6 +- maps/Route50.ablk | Bin 0 -> 135 bytes maps/Route50.asm | 132 +++++++++++++++++++++++++ maps/SilentHills.asm | 4 +- 32 files changed, 286 insertions(+), 42 deletions(-) create mode 100644 maps/Route50.ablk create mode 100644 maps/Route50.asm diff --git a/constants/event_flags.asm b/constants/event_flags.asm index c359ef3..3952b51 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -777,8 +777,8 @@ const EVENT_BEAT_BEAUTY_JESSICA const EVENT_BEAT_BEAUTY_RACHAEL const EVENT_BEAT_BEAUTY_ANGELICA - const EVENT_BEAT_BEAUTY_KENDRA - const EVENT_BEAT_BEAUTY_VERONICA +; const EVENT_BEAT_BEAUTY_KENDRA +; const EVENT_BEAT_BEAUTY_VERONICA const EVENT_BEAT_BEAUTY_JULIA const EVENT_BEAT_BEAUTY_THERESA const EVENT_BEAT_BEAUTY_VALERIE @@ -891,7 +891,7 @@ const EVENT_BEAT_LASS_DANA const EVENT_BEAT_LASS_ELLEN const EVENT_BEAT_LASS_CONNIE2 - const EVENT_BEAT_LASS_CONNIE3 + const EVENT_BEAT_LASS_LOWRI const EVENT_BEAT_LASS_DANA2 const EVENT_BEAT_LASS_DANA3 const EVENT_BEAT_LASS_IKUE @@ -1061,6 +1061,8 @@ const EVENT_BEAT_YOUNGSTER_JIMMY const EVENT_BEAT_YOUNGSTER_OWEN const EVENT_BEAT_YOUNGSTER_JASON + const EVENT_BEAT_YOUNGSTER_LUC + const EVENT_BEAT_YOUNGSTER_HUW ; Teacher const EVENT_BEAT_TEACHER_COLETTE const EVENT_BEAT_TEACHER_HILLARY @@ -1119,7 +1121,8 @@ const EVENT_BEAT_ARCHER2 const EVENT_BEAT_ARCHER3 const EVENT_BEAT_PROFBLUE -; Unused: next 77 events + const EVENT_BEAT_JACKY +; Unused: next 76 events const_next 1600 ; Sprite visibility flags diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index 8c9a3bb..23cca5d 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -133,6 +133,7 @@ DEF NIHON_LANDMARK EQU const_value const LANDMARK_QUIET_CAVE const LANDMARK_OLD_CITY const LANDMARK_POKEMON_PAGODA + const LANDMARK_ROUTE_50 const LANDMARK_BLUE_FOREST const LANDMARK_ROUTE_66 const LANDMARK_WHITE_CITY diff --git a/constants/map_constants.asm b/constants/map_constants.asm index e18e986..e6a712d 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -654,6 +654,7 @@ ENDM 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 endgroup newgroup BLUE_FOREST ; 37 diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index f503655..8ffbead 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -126,6 +126,8 @@ DEF KRIS EQU __trainer_class__ const JASON const JOEY4 const JOEY5 + const LUC + const HUW trainerclass SCHOOLBOY ; 17 const JACK1 @@ -192,7 +194,7 @@ DEF KRIS EQU __trainer_class__ const DANA1 const ELLEN const CONNIE2 ; unused - const CONNIE3 ; unused + const LOWRI ; previously CONNIE3 const DANA2 const DANA3 const DANA4 @@ -259,8 +261,8 @@ DEF KRIS EQU __trainer_class__ const JESSICA ; unused const RACHAEL ; unused const ANGELICA ; unused - const KENDRA ; unused - const VERONICA ; unused +; const KENDRA ; unused +; const VERONICA ; unused const JULIA const THERESA const VALERIE @@ -809,6 +811,9 @@ DEF KRIS EQU __trainer_class__ trainerclass ELDER const LI const KONG + + trainerclass JACK + const JACKY DEF TOPAZ EQU __trainer_class__ DEF NUM_TRAINER_CLASSES EQU __trainer_class__ - 1 diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index ffc6818..9474a9b 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -374,17 +374,6 @@ ENDM map_attributes Route10South, ROUTE_10_SOUTH, $2c, NORTH | SOUTH connection north, Route10North, ROUTE_10_NORTH, 0 connection south, LavenderTown, LAVENDER_TOWN, 0 - - map_attributes SilentHills, SILENT_HILLS, $05, EAST | WEST ; Add Prince connections later - connection west, Route49, ROUTE_49, 0 - connection east, Route66, ROUTE_66, 0 - - map_attributes Route49, ROUTE_49, $05, EAST | WEST - connection east, SilentHills, SILENT_HILLS, $00, 0 - connection west, Route49_2, ROUTE_49_2, $05, 0 - - map_attributes Route49_2, ROUTE_49_2, $05, 0, EAST - connection east, Route49, ROUTE_49, $05, 0 map_attributes Route23, ROUTE_23, $0f, 0 map_attributes SproutTower1F, SPROUT_TOWER_1F, $00, 0 @@ -815,10 +804,21 @@ ENDM map_attributes WinnersPathOutside, WINNERS_PATH_OUTSIDE, $05, NORTH connection north, Route66, ROUTE_66, 0 + map_attributes SilentHills, SILENT_HILLS, $05, EAST | WEST ; Add Prince connections later + connection west, Route49, ROUTE_49, 0 + connection east, Route66, ROUTE_66, 0 + + map_attributes Route49, ROUTE_49, $05, EAST | WEST + connection east, SilentHills, SILENT_HILLS, $00, 0 + connection west, Route49_2, ROUTE_49_2, $05, 0 + + map_attributes Route49_2, ROUTE_49_2, $05, 0, EAST + connection east, Route49, ROUTE_49, $05, 0 + map_attributes Route66, ROUTE_66, $05, WEST | SOUTH connection south, WinnersPathOutside, WINNERS_PATH_OUTSIDE, 0 - connection west, SilentHills, SILENT_HILLS, 0 + map_attributes QuietCave, QUIET_CAVE, $76, 0 map_attributes BlueLab, BLUE_LAB, $00, 0 map_attributes SilentHillsPokecenter1F, SILENT_HILLS_POKECENTER_1F, $00, 0 @@ -826,7 +826,11 @@ ENDM map_attributes CalsHouse1F, CALS_HOUSE_1F, $00, 0 map_attributes CalsHouse2F, CALS_HOUSE_2F, $00, 0 - map_attributes OldCity, OLD_CITY, $00, 0 ; will have a west exit. + map_attributes OldCity, OLD_CITY, $00, WEST + connection west, Route50, ROUTE_50, 4 + + map_attributes Route50, ROUTE_50, $00, EAST + connection east, OldCity, OLD_CITY, -4 map_attributes Route49OldCityGate1F, ROUTE_49_OLD_CITY_GATE_1F, $00, 0 map_attributes Route49OldCityGate2F, ROUTE_49_OLD_CITY_GATE_2F, $00, 0 diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm index f6505f9..6e8920d 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -1273,3 +1273,6 @@ PokemonPagoda4F_Blocks: PokemonPagoda5F_Blocks: INCBIN "maps/PokemonPagoda5F.ablk" + +Route50_Blocks: + INCBIN "maps/Route50.ablk" diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 4423587..186c753 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -137,6 +137,7 @@ Landmarks: landmark 76, 108, QuietCaveName landmark 76, 100, OldCityName landmark 76, 100, PokemonPagodaName + landmark 60, 100, Route50Name landmark 140, 60, BlueForestName landmark 108, 108, Route66Name landmark 124, 108, WhiteCityName @@ -250,6 +251,7 @@ SilentHillsName: db "SILENT¯HILLS@" UnknownName: db "?????@" Route66Name: db "ROUTE 66@" Route49Name: db "ROUTE 49@" +Route50Name: db "ROUTE 50@" QuietCaveName: db "QUIET¯CAVE@" OldCityName: db "SEPIA¯CITY@" PokemonPagodaName: db "#MON¯PAGODA@" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index ceea80a..feee56f 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -714,6 +714,7 @@ MapGroup_OldCity: map PokemonPagoda3F, TILESET_TOWER, INDOOR, LANDMARK_POKEMON_PAGODA, MUSIC_SPROUT_TOWER, FALSE, PALETTE_DAY, FISHGROUP_NONE 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 assert_table_length NUM_OLD_CITY_MAPS MapGroup_BlueForest: diff --git a/data/maps/outdoor_sprites.asm b/data/maps/outdoor_sprites.asm index 7d835ea..63d598e 100644 --- a/data/maps/outdoor_sprites.asm +++ b/data/maps/outdoor_sprites.asm @@ -741,7 +741,7 @@ OldCityGroupSprites: db SPRITE_TWIN db SPRITE_BUG_CATCHER db SPRITE_YOUNGSTER - db SPRITE_BEAUTY + db SPRITE_SPACEWORLD_GIRL db SPRITE_SUPER_NERD db SPRITE_GRANNY db SPRITE_MONSTER diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 7e5230b..6b2e7b7 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -600,6 +600,7 @@ INCLUDE "maps/LavenderCryptSet1.asm" INCLUDE "maps/LavenderCryptSet2.asm" INCLUDE "maps/LavenderCryptSet3.asm" INCLUDE "maps/LavenderCryptDokuroarsRoom.asm" +INCLUDE "maps/Route50.asm" SECTION "Map Scripts 31", ROMX ; spillover INCLUDE "maps/TanobyRuins.asm" diff --git a/data/tilesets/nihon_old_attributes.bin b/data/tilesets/nihon_old_attributes.bin index 18d6a0d17cee807619d1b6a3ccd7e031cceb117d..c43e5591c5b6224cc4f6ccd297be4461f910bb02 100644 GIT binary patch delta 68 tcmZ3$F@bY~0?T9pMv2K)Orn!bn1l^jSXegVx delta 7 OcmbQhxqxGX0t)~M!2%Wl diff --git a/data/tilesets/nihon_old_collision.asm b/data/tilesets/nihon_old_collision.asm index cd47386..6e33e81 100644 --- a/data/tilesets/nihon_old_collision.asm +++ b/data/tilesets/nihon_old_collision.asm @@ -64,3 +64,10 @@ tilecoll WALL, WALL, WALL, WALL ; 3f tilecoll WALL, WALL, FLOOR, WALL ; 40 tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 41 + tilecoll FLOOR, WALL, FLOOR, WALL ; 42 + tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 43 + tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 44 + tilecoll WALL, DOOR, WALL, FLOOR ; 45 + tilecoll WALL, WALL, FLOOR, FLOOR ; 46 + tilecoll WALL, WALL, DOOR, WALL ; 47 + tilecoll WALL, WALL, WALL, WALL ; 48 diff --git a/data/tilesets/nihon_old_metatiles.bin b/data/tilesets/nihon_old_metatiles.bin index 6e436715680faa03c5ae3c231b68c8fdc6fdc1ac..8bb8a6d93ffbf6d07a0de24ae13ee7a3807effcc 100644 GIT binary patch delta 120 zcmZ3$F@bY~0!sk{1A`I}tHEd+TN~S$*qB%t&4LDGq}4STnKZQw3>g?492poC6{TgE sn3xz@nVDG`*w`4jxw(1dAZTXJRr30MA4Y6#xJL delta 7 OcmbQhxqxGX0t)~M!2%Wl diff --git a/data/trainers/attributes.asm b/data/trainers/attributes.asm index 3096d99..ef4a11c 100644 --- a/data/trainers/attributes.asm +++ b/data/trainers/attributes.asm @@ -555,4 +555,10 @@ TrainerClassAttributes: dw AI_BASIC | AI_SETUP | AI_TYPES | AI_CAUTIOUS | AI_STATUS | AI_RISKY dw CONTEXT_USE | SWITCH_SOMETIMES +; Jack + db NO_ITEM, NO_ITEM ; items + db 10 ; base reward + dw AI_BASIC | AI_SETUP | AI_TYPES | AI_CAUTIOUS | AI_STATUS | AI_RISKY + dw CONTEXT_USE | SWITCH_SOMETIMES + assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/class_names.asm b/data/trainers/class_names.asm index 0097dc1..37e4301 100644 --- a/data/trainers/class_names.asm +++ b/data/trainers/class_names.asm @@ -93,4 +93,5 @@ TrainerClassNames:: li "EXECUTIVE" li "PROFESSOR" li "ELDER" + li "SHINJUKU" ; JACK assert_list_length NUM_TRAINER_CLASSES diff --git a/data/trainers/dvs.asm b/data/trainers/dvs.asm index eb5857c..3687ee5 100644 --- a/data/trainers/dvs.asm +++ b/data/trainers/dvs.asm @@ -94,4 +94,5 @@ TrainerClassDVs: dn 13, 12, 13, 13 ; ARCHER dn 13, 12, 13, 13 ; PROF.BLUE dn 12, 15, 13, 13 ; ELDER (HP Ground) + dn 12, 15, 13, 13 ; JACK (HP Ground) assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/encounter_music.asm b/data/trainers/encounter_music.asm index 37d85d5..13af98e 100644 --- a/data/trainers/encounter_music.asm +++ b/data/trainers/encounter_music.asm @@ -96,4 +96,5 @@ TrainerEncounterMusic:: db MUSIC_ROCKET_ENCOUNTER ; ARCHER db MUSIC_OFFICER_ENCOUNTER ; PROF.BLUE db MUSIC_SAGE_ENCOUNTER ; ELDER + db MUSIC_HIKER_ENCOUNTER ; JACK assert_table_length NUM_TRAINER_CLASSES + 1 diff --git a/data/trainers/gendered_trainers.asm b/data/trainers/gendered_trainers.asm index f6fc843..4f04eb4 100644 --- a/data/trainers/gendered_trainers.asm +++ b/data/trainers/gendered_trainers.asm @@ -37,6 +37,7 @@ MaleTrainers: db SPORTSMAN db AEROFOSSIL db ELDER + db JACK .End FemaleTrainers: diff --git a/data/trainers/genders.asm b/data/trainers/genders.asm index 864f597..0a47376 100644 --- a/data/trainers/genders.asm +++ b/data/trainers/genders.asm @@ -95,4 +95,5 @@ BTTrainerClassGenders: db FEMALE ; ARCHER db MALE ; PROF.BLUE db MALE ; ELDER + db MALE ; JACK assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm index 3321609..a80dfc9 100644 --- a/data/trainers/palettes.asm +++ b/data/trainers/palettes.asm @@ -101,7 +101,8 @@ INCBIN "gfx/trainers/kurt.gbcpal", middle_colors INCBIN "gfx/trainers/ariana.gbcpal", middle_colors INCBIN "gfx/trainers/archer.gbcpal", middle_colors INCBIN "gfx/trainers/blue_professor.gbcpal", middle_colors -INCBIN "gfx/trainers/elder.gbcpal", middle_colors ; elder +INCBIN "gfx/trainers/elder.gbcpal", middle_colors +INCBIN "gfx/trainers/jack.gbcpal", middle_colors EnbyPalette: INCLUDE "gfx/player/topaz.pal" diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index a4cc06d..2f874a1 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -935,6 +935,26 @@ YoungsterGroup: dw RATICATE dw HYPER_BEAM, QUICK_ATTACK, HYPER_FANG, PURSUIT db -1 ; end + + next_list_item ; YOUNGSTER (14) + db "LUC@", TRAINERTYPE_MOVES + db 45 + dw ARIADOS + dw SLUDGE_BOMB, PSYCHIC_M, PURSUIT, AGILITY + db 45 + dw RATICATE + dw HYPER_FANG, QUICK_ATTACK, SUPER_FANG, SHADOW_BALL + db -1 ; end + + next_list_item ; YOUNGSTER (14) + db "HUW@", TRAINERTYPE_MOVES + db 45 + dw SANDSLASH + dw SWORDS_DANCE, EARTHQUAKE, ROCK_SLIDE, METAL_CLAW + db 45 + dw QUAGSIRE + dw EARTHQUAKE, SURF, HEADBUTT, AMNESIA + db -1 ; end end_list_items @@ -1903,17 +1923,17 @@ BeautyGroup: dw SENTRET db -1 ; end - next_list_item ; BEAUTY (12) - db "KENDRA@", TRAINERTYPE_NORMAL - db 15 - dw SENTRET - db -1 ; end +; next_list_item ; BEAUTY (12) +; db "KENDRA@", TRAINERTYPE_NORMAL +; db 15 +; dw SENTRET +; db -1 ; end - next_list_item ; BEAUTY (13) - db "VERONICA@", TRAINERTYPE_NORMAL - db 15 - dw SENTRET - db -1 ; end +; next_list_item ; BEAUTY (13) +; db "VERONICA@", TRAINERTYPE_NORMAL +; db 15 +; dw SENTRET +; db -1 ; end next_list_item ; BEAUTY (14) db "JULIA@", TRAINERTYPE_NORMAL diff --git a/data/trainers/parties_new_classes.asm b/data/trainers/parties_new_classes.asm index 607ece3..4a1c035 100644 --- a/data/trainers/parties_new_classes.asm +++ b/data/trainers/parties_new_classes.asm @@ -216,10 +216,12 @@ LassGroup: dw MARILL db -1 ; end - next_list_item ; LASS (13) - db "CONNIE@", TRAINERTYPE_NORMAL - db 21 - dw MARILL + next_list_item ; LASS (13) - originally Connie 3 + db "LOWRI@", TRAINERTYPE_NORMAL + db 45 + dw BELLEDAM + db 45 + dw RAITORA db -1 ; end next_list_item ; LASS (14) @@ -701,6 +703,24 @@ ElderGroup: db -1 ; end end_list_items +JackGroup: + next_list_item + db "JACKY@", TRAINERTYPE_MOVES + db 50 + dw AMANOBI ; Kage-Maru + dw METAL_CLAW, SPIKES, FIRE_SPIN, PETAL_DANCE + db 50 + dw ANNIHILAPE + dw CROSS_CHOP, ROCK_HEAD, MEDITATE, HEADBUTT + db 50 + dw PORYGON_Z + dw LOCK_ON, ZAP_CANNON, RECOVER, TRI_ATTACK + db 50 + dw HITMONCHAN + dw MACH_PUNCH, COUNTER, DETECT, HI_JUMP_KICK + db -1 ; end + end_list_items + ; No rematches here, just a lot of unused dupes. ; Potential alt usage? rename a few? ; See spreadsheet for combinations. diff --git a/data/trainers/party_pointers.asm b/data/trainers/party_pointers.asm index 061e924..607e629 100644 --- a/data/trainers/party_pointers.asm +++ b/data/trainers/party_pointers.asm @@ -95,4 +95,5 @@ TrainerGroups: dba ArcherGroup dba ProfBlueGroup dba ElderGroup + dba JackGroup assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/pic_pointers.asm b/data/trainers/pic_pointers.asm index 2620901..17fcb41 100644 --- a/data/trainers/pic_pointers.asm +++ b/data/trainers/pic_pointers.asm @@ -95,4 +95,5 @@ TrainerPicPointers:: dba ArcherPic dba ProfBluePic dba ElderPic + dba JackPic assert_table_length NUM_TRAINER_CLASSES diff --git a/data/trainers/sprites.asm b/data/trainers/sprites.asm index 5fababb..add86d1 100644 --- a/data/trainers/sprites.asm +++ b/data/trainers/sprites.asm @@ -93,4 +93,5 @@ BTTrainerClassSprites: db SPRITE_RED ; Archer db SPRITE_RED ; Prof.Blue db SPRITE_SAGE ; ELDER + db SPRITE_ROCKER ; JACK assert_table_length NUM_TRAINER_CLASSES diff --git a/data/wild/nihon_grass.asm b/data/wild/nihon_grass.asm index 7c04dea..0d8324e 100644 --- a/data/wild/nihon_grass.asm +++ b/data/wild/nihon_grass.asm @@ -171,5 +171,33 @@ NihonGrassWildMons: dbw 32, MARILL dbw 35, SKARMORY end_grass_wildmons - + + def_grass_wildmons ROUTE_50 + db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite + ; morn + dbw 30, CATERPIE + dbw 31, METAPOD + dbw 30, CATERPIE + dbw 31, METAPOD + dbw 32, PIDGEY + dbw 32, CATERPIE + dbw 35, SUNFLORA + ; day + dbw 30, CATERPIE + dbw 31, PIDGEY + dbw 30, RATTATA + dbw 31, RATTATA + dbw 32, RATTATA + dbw 32, CATERPIE + dbw 35, GIRAFARIG + ; nite + dbw 30, RATTATA + dbw 31, HOOTHOOT + dbw 30, ODDISH + dbw 31, HOOTHOOT + dbw 32, ODDISH + dbw 32, ODDISH + dbw 35, SKARMORY + end_grass_wildmons + db -1 ; end diff --git a/gfx/pics.asm b/gfx/pics.asm index 9e13e73..72f0a46 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -1048,3 +1048,4 @@ TeacherMPic: INCBIN "gfx/trainers/teacherm.2bpp.lz" PainterPic: INCBIN "gfx/trainers/painter.2bpp.lz" SoldierPic: INCBIN "gfx/trainers/soldier.2bpp.lz" SportsmanPic: INCBIN "gfx/trainers/sportsman.2bpp.lz" +JackPic: INCBIN "gfx/trainers/jack.2bpp.lz" diff --git a/gfx/trainers/jack.png b/gfx/trainers/jack.png index f8f22c827ee888dde1d59594b2c06e7e866f001c..01db405fb97de005162b447f297639f494179630 100644 GIT binary patch delta 432 zcmV;h0Z;y?2EPN48Gi!+005s@%Par@01Qw}R7L;)|JIaywMrNO000-=xq1Kq0d7e| zK~#9!ot9Y=!!QU#0p0)3HNsil8H>36NGE<3$UtKDcLD3wej&g30-{)6M+XeRC)or8 zUL?ZWAjuAh19S>Dz$6ol0~C$TjS+*3`aS+c1U+N*WXXldS$`TDkzA5GH{_C}JA=_V zN_yEtoAja^l4E~)g7npNGSA&Xf3x@`61f5;JWo^u56S$bWSJy!sXC5fI7-bHnC8rg zHF9{t>ws*Pl7(JPgVg0kvxTS6BTyjF-=zR0pkQ5>p8f^<68Gk)M%~V2BTO0HLQWR5L6diLk>tpq@5oekr$sC=NvPrUHoK4vxIZvz5 zJLDB$lbnLqC5sE#om9^ACU}w%2INDqNSB_kdGe2Xk=v@K<8zq!UJ=Vn(UIl0jnn)O zf;CB(2dx%qyg^CO?A3!{6n#)SjsJoI$-6Hw6mqGWCn>sZ{pCi?p}v_@)?S~%_{bHh a?)?E3`Ug*oF|gtQ00000`5sfK~!jgy;)n5G1gqs2kTS-Q97-u7ayQTOf7kIZ{3aLxV+_9i2I53zfomzH)|xS)ND-~I zf?V%izN~ACsEDXwGgrvjT1%P$vP2nQ)ipx&fd_NlD5r!KEq|qqF+htkKjBw0N(YIu ze@&R`0F@ItmsB@MwD)dmI9S$Nji|?Qh)8SgIF3x&k0%pzRhE3KENiVvmT{t>(tC$P zd+(;Ob716IN{lF{QSTirAszr`;HuZznl(ZY5v@MZ5`XbT$KW}?6*D)+NW4iDajSXF zEb%Ia-pCRo?) zx`{GZF8DJKQ~&SaGwuFm=WWoULlF{?8Be@@H9}M-KYy-JoQJtgy9>U2IuN@2c-wfi z)_8$}U$_z&7Tz)e+emP{{!k;eyXH*?i5g?dUWaih)iGL414P}O$z-%^@rGzomM+uo z&cu%97%;O1CVw%VAbG!>?|+#Lc+Z5wzL#tKq=aST4z6Q3b|HLfBN|rpK`^0}-Y#7?96Qd9drTXDTxWC* z9y@9d-7PO3xQer%#fi?iT(Mtr4VP6n(G@ur<9vpyU10c6rGpD+7z5GQ4bUAYm+43g zg@N@A`}iE92(6vHiuzp75r&JE{p9?$DG;d+qJM}^RU)vR;LV*EZr7VUSQjRFs^fD# zx0Zn6%))P#s5vI_`dy1uxZUska(4-iY5w}?o@ix3Akz|LeR+{Ityonwa%3PPk2&Pi z)uoD8PQ?S=#Tnkm-HGHPdPkSPnLOjYQd~Od^{wsrde-m4JJH!+|6k5OtFG7zgyt6f Z0u(ptb~^o5U*Z4&002ovPDHLkV1i~`etiG{ diff --git a/maps/OldCity.asm b/maps/OldCity.asm index bd5d28e..1ef2feb 100644 --- a/maps/OldCity.asm +++ b/maps/OldCity.asm @@ -23,14 +23,14 @@ HoneyGrandmaSignScript: HoneyGrandmaSignText: text "HONEY GRANDMA's" - line "house" + line "HOUSE" done OldCityEarlsHouseSignScript: jumptext OldCityEarlsHouseSignText OldCityEarlsHouseSignText: - text "EARL'S house" + text "EARL'S HOUSE" done OldCityTrainerSchoolSignScript: @@ -58,7 +58,7 @@ OldCitySouthSignScript: jumptext OldCitySouthSignText OldCitySouthSignText: - text "SOUTH: ROUTE 50" + text "SOUTH: ROUTE 49" done ; Gets its name from sepia often being used to show the romantic old days, while doubling as an orangey, autumny colour. diff --git a/maps/Route50.ablk b/maps/Route50.ablk new file mode 100644 index 0000000000000000000000000000000000000000..aaebd3bd95745357803fca161899081da5e8f06b GIT binary patch literal 135 zcmZ9FK?;CS2nBry2q9Y8s*dutzV|;-&)P_Xiy09FhBVAZNgeo725m6gpT9n`ZV0Xb literal 0 HcmV?d00001 diff --git a/maps/Route50.asm b/maps/Route50.asm new file mode 100644 index 0000000..a69bed5 --- /dev/null +++ b/maps/Route50.asm @@ -0,0 +1,132 @@ + object_const_def + +Route50_MapScripts: + def_scene_scripts + + def_callbacks + +GameHouseSign: + jumptext GameHouseSignText + +GameHouseSignText: + text "JACKY GEEK HOUSE" + done + +Route50Sign: + jumptext Route50SignText + +Route50SignText: + text "ROUTE 50" + para "EAST: SEPIA CITY" + line "WEST: fuck uh idk" + done + +TrainerLassLowri: + trainer LASS, LOWRI, EVENT_BEAT_LASS_LOWRI, LassLowriSeenText, LassLowriBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext LassLowriAfterBattleText + waitbutton + closetext + end + +LassLowriSeenText: + text "I'm not like" + line "other LASSes!" ; bwahahahaha + done + +LassLowriBeatenText: + text "My cute fluffies!" + done + +LassLowriAfterBattleText: + text "Isn't this place" + line "beautiful?" + + para "I want to move" + line "here! Away from" + cont "the big city!" ; This implies she lives in West! + + para "I wish HUW would" + line "understand!" + done + +TrainerYoungsterLuc: + trainer YOUNGSTER, LUC, EVENT_BEAT_YOUNGSTER_LUC, YoungsterLucSeenText, YoungsterLucBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext YoungsterLucAfterBattleText + waitbutton + closetext + end + +YoungsterLucSeenText: + text "Have you met" + line "JACKY?" + done + +YoungsterLucBeatenText: + text "Urk!" + done + +YoungsterLucAfterBattleText: + text "JACKY is a world-" + line "class gamer!" + + para "You should stop" + line "by his place!" + done + +TrainerYoungsterHuw: + trainer YOUNGSTER, HUW, EVENT_BEAT_YOUNGSTER_HUW, YoungsterHuwSeenText, YoungsterHuwBeatenText, 0, .AfterScript + +.AfterScript: + endifjustbattled + opentext + writetext YoungsterHuwAfterBattleText + waitbutton + closetext + end + +YoungsterHuwSeenText: + text "Passing through?" + + para "Not without a" + line "battle, you're" + cont "not!" + done + +YoungsterHuwBeatenText: + text "Awk!" + done + +YoungsterHuwAfterBattleText: + text "I want to be as" + line "good at games" + cont "as JACKY." + + para "But LOWRI keeps" + line "bothering me!" + done + +Route50_MapEvents: + db 0, 0 ; filler + + def_warp_events + warp_event 6, 5, DEBUG_ROOM, 1 ; West Gate + warp_event 15, 4, DEBUG_ROOM, 1 ; Game House + + def_coord_events + + def_bg_events + bg_event 14, 5, BGEVENT_READ, GameHouseSign + bg_event 24, 10, BGEVENT_READ, Route50Sign + + def_object_events + object_event 23, 7, SPRITE_SPACEWORLD_GIRL, SPRITEMOVEDATA_SPINRANDOM_SLOW, 2, 2, -1, -1, 0, OBJECTTYPE_TRAINER, 2, TrainerLassLowri, -1 + object_event 16, 9, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 2, 2, -1, -1, 0, OBJECTTYPE_TRAINER, 4, TrainerYoungsterLuc, -1 + object_event 10, 8, SPRITE_YOUNGSTER, SPRITEMOVEDATA_SPINRANDOM_SLOW, 2, 2, -1, -1, 0, OBJECTTYPE_TRAINER, 3, TrainerYoungsterHuw, -1 diff --git a/maps/SilentHills.asm b/maps/SilentHills.asm index 90ca76a..8843ba4 100644 --- a/maps/SilentHills.asm +++ b/maps/SilentHills.asm @@ -110,7 +110,7 @@ SilentHillsSign1: jumptext SilentHillsSign1Text SilentHillsSign1Text: - text "CAL's House" + text "CAL's HOUSE" done SilentHillsSign2: @@ -140,7 +140,7 @@ SilentHillsSign5: jumptext SilentHillsSign5Text SilentHillsSign5Text: - text "'s House" + text "'s HOUSE" done SilentHillsPokecenterSign: 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 2/2] 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 WcmbQh(ZI36fVn4Mk7&6hWO5^UxALEu}q0jg_jlYKWM}7A+1no)$GkrKP5X zA~B1W;HU&8#1LbHL=252gz&lRTlcPe?sv~xd%t@>d+oJ@Bv*Uh2AL1mbW$ zVm1_c8IjgzF4UBtb0e`7vOG^5%*U#cW3C{{W$<-m<+q`)zhur@D@mTjp!gd0QiFAYe=Ivz4Y&6S7ZmbqAwXg=RhVu-UfJkjR>(Xdw$ zE7WhgQ|(D&_{Y`3d+s5)CSrN)anG*pnZnkQxo0J3OsRNOZ`*euUS{`9?Q;JDZK)Atnj36Pn0sVP>$_T7 z#eAE4w>4%FR*m9P9og#a{A0GsGhf_03&SFL&Zj1<<$O)4H@S@KXV%!|8l_@Yq!f$% zUxqwz!zvCD3dbJ0j>oIFsGIbCVW&K|Yd@)-Hamb62DtO?EqGx=g=4O)3wFyn&!t65 zr^8;As*7D(Y!rgqK~{k{q}`3-vpjET1Aie zPrLUmUj)P~*2(qrmR5PvgD_R<>5*pJiAp%+t{t zjn!PG?N=@*NPleGNEhgGX`l~`t8r*bO?F-KL5WcePt@4AhttGD<$h^cJj1_HroJy` z;quU`cz@3&;52#?8~U9hBAU1 zBPkXqSRMYnW$?Zkur|BEUqM{MtXElJUY7VeWGFodf+((Od3b8TaNSve;k0N!J)ll@ zdj|G*^)D?Mu)zOVG`JTiHRV?vB1;18*T;I*k6onT9W{-2cv+*ciIpn~b=%q+oUh7Y zja{-$L>Q0j9fy!c&3BKa7Rs80{GVBTK&^Zm3*>`s3?ksPQVSp91|)*0K9StdH4~s* zfk!l`5Rm~RyJ2Zh)^-+a+@L(aT(B{7gl@66>iJ!wN8DE>WB6e3e#lAnkjWE^_A}2= zP~2IR{8J1T-h2vXMJcN54dC!eoBh}h8zwDFz%zi7OAw7N1s8B``QqBV&meY!;|rw8 zy2Xn!qz9UC;}OOD5pJ`|Q~Z74?KDHRRDuZ1E5tdG@j!G<-m_=o?CmbfKKLWESzxLD zAW;iFtoSyyuH~(-ublQ*MZH;>buurg(CG7fJ?OZU&gIm459aHyi_zV8vT9siMkD2N z0{(#6zq?-1iJ$jS;l&oaSm_)U z-Uo7&H%V_9&b6^bn^zG~%SQV%TGhRPC|{GehiZ7*{a{0fb9Ksbeqjo{?S5{;6;)}Hnx&kAZ_NO>>_Aqt>&GOM)EX98 zbVnKVDO7s59{7}Q#{=XzsuxG()08Q&cc#9bU-Z*!U)$l4Rm5-Y(kutsuk2P8Q??U+ zu0B;}tFM%mS>U9rSeMQTE~t?*STJ;>wWYC3ID?!Y4jC!UB#SI!DD0vb6`>2$C(#PF+^2@zc}f$6P>3MEr(>23MlnSw0I!h;NQ5GCxkH#%K^ znH-W4Xf%hLoQ>BHI>ehB!t`|2o5#K%c(PBIbaKC(l4G03t4+#w*PoXnHfEwMA@G}+ zij`@AZ~r7Avl-i-|GmdfVG>CeZ}!m(^TKc6{Fr)nQtUZcD?bN1fgr}$Hw`PH0}&_CLJr?AWo!1^b>i(IGTIpewls@dVi*Eoms*(BvEA+sUic+mDFu3M$OROMn_Ech z-z`*VKd`1)f4U26`UMOXAzF9HIzHh_u)lPEg5dU(N1)enr@&qC1wM4t{IN`L>S-p2^kdyhR-LPf?oBI*6) zo5X;22B@5&(L)ZVfH4+Ci!|tOVj&_v6%ilv_3#v*SKXJ1zU~#Q3(J_B4q>fX)1s5= z!{un7#EB0>AqR+4c4{??>GrXUzUkVZ^&N)tF=v)5jn|Vnz$6y_O?*+b=gp#+8r<_5 zu77p9W+7!3n!zl^BU2Z(}BfTATj+?pMURV=_z+Lksdl7rm0Ufa@1qb4-}! z0D1e`3!O&AEA{SAjX%dC4-e-OGytJPOx1nTxo(N{FS4Yf|Pnc$`du zi3#_!Bm3Or)v!*?{DA@9hDq6k#SGkARYFrD62qGBi!^W<9N*eJQzAJnF<`j`5z~(w z{qqZn`TmODsQ$ygt2++D;zS;osTJ*YK0eS z>q+bA>jx?N_`4FFDy|wJ17P6I6u}1P0ZF|uWvxiLr@gg?`Mtf6;p8d{U;r6QUI2u>s}CvKw@A)`v?J#d8G&VRTop^ zCznn>*$N`T1K72o=rv;=s%nHKE^Bs&#>)pEURN!K4INxs(%oQ6ZsL3z$5pV}=h<|j z+6zVQ&(y3O!bm1~;}*c~1M;=l(7v|ujOW5|65ed@K!p0kl9@f`Mu8dIMyKROtCer>hzxTiS5MvkvUn^oEq!8TY622b}}G z>hBg2Zb^}z5j)uDf^`!q!y1dX%RQt_l(;qDw4fo3?#5{EsCCGdC{^TA>};Jh5!^G< zZlv@`^)ccq-s!rDOOMt{!B##ZXIq@fGRVTewDP(3zFu*JbZYf!awJM*pN<(2AB&01wQg{5Ue_ zR`1C@U2P5j*l~-Vuj>~`irSlD19siX?*@f4PZdPsZj7$V-M&8f!mZX@K134bwwcfp z-n_O!-{=t9{%w#_hF$3g$iGy=RgMQFGGrXz?Wphdn7wgDt`c{@!pY#??HOy`qFht;y=PP8VERBCQ!q+U9Ei#?If6_J3vU*xdPC3aFzpA3^>!>c%4Y#{Fp`qAV`- z!8V*^g5o|t)ETm-E(QG~XCX-9t6uM^5`Sg?zs?_pN~~0Grre`qp1bIrN9n2_iPQuY z(=HUNl>?c3O(q4M)IA=B&`UlUk)6$AAPvmw077Y zv!j@Kj8dC5{Gw@xQ!RyM2gf02%@rU`ZsZ0&IrP9mKYiPN=Q7)qR@Fh3OBM3<0PZa} zFqZdd(9@@{6}cXvdJ}qTNh+#8l4qwxV0VIjtVD_PUbM+=TCKa_jVp`rxHF1(r^8)L zYIKYptJyqi4ct>fYY4P%j}PCpyaNa7Sp4%4|0@;$Jlom>%Uk612U<0B@52~+oad;P zSrYxzA(_S0HVqlMl*?r|GL{ERZy#4VO6xslkF|j?!dUv;!}H`nmOdR8vzWY({-6ev m;ym`4kh#ya$++k}g?QbJ&eAvEOOAf;0BZ}|>qv9Y`2Pj641P%f 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