From 9c824b3c5e1ec0e480411460d6f0e86af3929cf0 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Fri, 3 Nov 2023 22:17:30 +0000 Subject: [PATCH] Nihon Route 49, Folage, and Barreau This commit adds Nihon Route 49. It has everything necessary to work, but the wild Pokemon don't seem to spawn. I've added infrastructure that should allow this to happen, and it works for Kanto, so I am presuming that some other tomfoolery is at work. I've also added Folage and Barreau, and implemented Folage into the Headbutt Tree table. This was to give them to the Bug Catcher on the route. --- README.md | 1 + constants/event_flags.asm | 1 + constants/landmark_constants.asm | 1 + constants/map_constants.asm | 1 + constants/pokemon_constants.asm | 2 + constants/trainer_constants.asm | 1 + data/maps/attributes.asm | 7 +++- data/maps/blocks.asm | 3 ++ data/maps/landmarks.asm | 2 + data/maps/maps.asm | 1 + data/maps/scripts.asm | 1 + data/pokemon/base_stats.asm | 2 + data/pokemon/base_stats/barreau.asm | 21 ++++++++++ data/pokemon/base_stats/folage.asm | 21 ++++++++++ data/pokemon/cries.asm | 2 + data/pokemon/dex_entries.asm | 2 + data/pokemon/dex_entries/barreau.asm | 10 +++++ data/pokemon/dex_entries/folage.asm | 10 +++++ data/pokemon/dex_entry_pointers.asm | 2 + data/pokemon/dex_order_alpha.asm | 2 + data/pokemon/dex_order_new.asm | 2 + data/pokemon/egg_moves_johto.asm | 2 + data/pokemon/evos_attacks_johto.asm | 24 +++++++++++ data/pokemon/first_stages.asm | 2 + data/pokemon/gen1_order.asm | 2 + data/pokemon/menu_icons.asm | 2 + data/pokemon/names.asm | 2 + data/pokemon/palettes.asm | 4 ++ data/pokemon/pic_pointers.asm | 4 ++ data/tilesets/nihon01_attributes.bin | Bin 2048 -> 2048 bytes data/tilesets/nihon01_collision.asm | 50 +++++++++++----------- data/tilesets/nihon01_metatiles.bin | Bin 2048 -> 2048 bytes data/trainers/parties.asm | 12 ++++++ data/wild/nihon_grass.asm | 31 ++++++++++++++ data/wild/nihon_water.asm | 3 ++ data/wild/treemons.asm | 26 ++++++------ data/wild/treemons_asleep.asm | 1 + engine/overworld/wildmons.asm | 60 +++++++++++++++++++++++---- gfx/footprints.asm | 2 + gfx/footprints/barreau.png | Bin 0 -> 69 bytes gfx/footprints/folage.png | Bin 0 -> 69 bytes gfx/pics.asm | 5 +++ gfx/pokemon/anim_pointers.asm | 2 + gfx/pokemon/anims.asm | 2 + gfx/pokemon/barreau/anim.asm | 1 + gfx/pokemon/barreau/anim_idle.asm | 1 + gfx/pokemon/barreau/back.png | Bin 0 -> 304 bytes gfx/pokemon/barreau/front.png | Bin 0 -> 315 bytes gfx/pokemon/barreau/shiny.pal | 2 + gfx/pokemon/bitmask_pointers.asm | 2 + gfx/pokemon/bitmasks.asm | 2 + gfx/pokemon/folage/anim.asm | 1 + gfx/pokemon/folage/anim_idle.asm | 1 + gfx/pokemon/folage/back.png | Bin 0 -> 304 bytes gfx/pokemon/folage/front.png | Bin 0 -> 315 bytes gfx/pokemon/folage/shiny.pal | 2 + gfx/pokemon/frame_pointers.asm | 2 + gfx/pokemon/idle_pointers.asm | 2 + gfx/pokemon/idles.asm | 2 + gfx/pokemon/johto_frames.asm | 2 + layout.link | 2 +- maps/DebugRoom.asm | 4 +- maps/Route49.ablk | 1 + maps/Route49.asm | 53 +++++++++++++++++++++++ scan_includes.exe.stackdump | 17 ++++---- 65 files changed, 369 insertions(+), 59 deletions(-) create mode 100644 data/pokemon/base_stats/barreau.asm create mode 100644 data/pokemon/base_stats/folage.asm create mode 100644 data/pokemon/dex_entries/barreau.asm create mode 100644 data/pokemon/dex_entries/folage.asm create mode 100644 data/wild/nihon_grass.asm create mode 100644 data/wild/nihon_water.asm create mode 100644 gfx/footprints/barreau.png create mode 100644 gfx/footprints/folage.png create mode 100644 gfx/pokemon/barreau/anim.asm create mode 100644 gfx/pokemon/barreau/anim_idle.asm create mode 100644 gfx/pokemon/barreau/back.png create mode 100644 gfx/pokemon/barreau/front.png create mode 100644 gfx/pokemon/barreau/shiny.pal create mode 100644 gfx/pokemon/folage/anim.asm create mode 100644 gfx/pokemon/folage/anim_idle.asm create mode 100644 gfx/pokemon/folage/back.png create mode 100644 gfx/pokemon/folage/front.png create mode 100644 gfx/pokemon/folage/shiny.pal create mode 100644 maps/Route49.ablk create mode 100644 maps/Route49.asm diff --git a/README.md b/README.md index 687799c..0c47a98 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ In general, there have been many wild encounter tweaks. View this document for d - Johto wild encounters have been changed to be more weighted towards Johto Pokemon; eg. Murkrow is available about Ecruteak at night, Misdreavus largely replaces Gastly, etc. - Kanto wild encounters have generally higher levels to aid in improving the level curve. +- Rock Smash now has variable and larger wild data, featuring rare, location-based Pokemon (eg. Corsola on the shore), and level adjustments to make them more appropriate. - Viridian Forest has been restored. - The Pewter Museum of Science has been restored. - Cerulean Cave has been restored, complete with a Mewtwo fight! diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 2697085..0d2d5de 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -915,6 +915,7 @@ const EVENT_BEAT_BUG_CATCHER_STACEY const EVENT_BEAT_BUG_CATCHER_ELLIS const EVENT_BEAT_BUG_CATCHER_ABNER + const EVENT_BEAT_BUG_CATCHER_SIONED ; Officer const EVENT_BEAT_OFFICER_KEITH const EVENT_BEAT_OFFICER_DIRK diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index 63d2f65..95c4958 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -121,6 +121,7 @@ DEF KANTO_LANDMARK EQU const_value ;const LANDMARK_ONE_ISLAND DEF NIHON_LANDMARK EQU const_value const LANDMARK_SILENT_HILLS + const LANDMARK_ROUTE_49 const LANDMARK_BLUE_FOREST DEF NUM_LANDMARKS EQU const_value diff --git a/constants/map_constants.asm b/constants/map_constants.asm index b28edb3..7d23a17 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -518,6 +518,7 @@ ENDM newgroup SILENT_HILLS ; 27 map_const SILENT_HILLS, 10, 10 ; 1 map_const DEBUG_ROOM, 20, 20 ; 2 + map_const ROUTE_49, 15, 9 ; 3 endgroup newgroup BLUE_FOREST ; 27 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 02f609f..798994c 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -221,6 +221,8 @@ DEF JOHTO_POKEMON EQU const_value const LEDIAN ; a6 const SPINARAK ; a7 const ARIADOS ; a8 + const FOLAGE + const BARREAU const CROBAT ; a9 const CHINCHOU ; aa const LANTURN ; ab diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index 8e46ec9..5771a6a 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -348,6 +348,7 @@ DEF KRIS EQU __trainer_class__ const ARNIE4 const ARNIE5 const WAYNE + const SIONED const BUG_CATCHER_DANE const BUG_CATCHER_DION const BUG_CATCHER_STACEY diff --git a/data/maps/attributes.asm b/data/maps/attributes.asm index 7258025..5e71bd7 100644 --- a/data/maps/attributes.asm +++ b/data/maps/attributes.asm @@ -374,6 +374,9 @@ 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, $00, WEST ; this is on its own for now. add connections to mt. silver later. + connection west, Route49, ROUTE_49, 0 map_attributes Route23, ROUTE_23, $0f, 0 map_attributes SproutTower1F, SPROUT_TOWER_1F, $00, 0 @@ -708,7 +711,7 @@ ENDM map_attributes CeruleanCave1F, CERULEAN_CAVE_1F, $00, 0 map_attributes CeruleanCave2F, CERULEAN_CAVE_2F, $00, 0 map_attributes CeruleanCaveB1F, CERULEAN_CAVE_B1F, $00, 0 - map_attributes SilentHills, SILENT_HILLS, $00, 0 ; this is on its own for now. add connections to mt. silver later. map_attributes DebugRoom, DEBUG_ROOM, $05, 0 ; Debug Room :V map_attributes CliffCave, CLIFF_CAVE, $00, 0 - map_attributes BlueForest, BLUE_FOREST, $00, 0 ; this is on its own for now. add connections later. \ No newline at end of file + map_attributes Route49, ROUTE_49, $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 fb5da4a..64cb430 100644 --- a/data/maps/blocks.asm +++ b/data/maps/blocks.asm @@ -1086,3 +1086,6 @@ CliffCave_Blocks: BlueForest_Blocks: INCBIN "maps/BlueForest.ablk" + +Route49_Blocks: + INCBIN "maps/Route49.ablk" diff --git a/data/maps/landmarks.asm b/data/maps/landmarks.asm index 9629178..12bc599 100644 --- a/data/maps/landmarks.asm +++ b/data/maps/landmarks.asm @@ -109,6 +109,7 @@ Landmarks: landmark 140, 116, FastShipName assert_table_length NIHON_LANDMARK landmark 92, 108, SilentHillsName + landmark 91, 108, Route49Name ; probably not correct landmark 140, 60, BlueForestName assert_table_length NUM_LANDMARKS @@ -216,4 +217,5 @@ UndergroundName: db "UNDERGROUND@" BattleTowerName: db "BATTLE¯TOWER@" SpecialMapName: db "SPECIAL@" SilentHillsName: db "SILENT¯HILLS@" +Route49Name: db "ROUTE 49@" BlueForestName: db "BLUE¯FOREST@" diff --git a/data/maps/maps.asm b/data/maps/maps.asm index b569bde..8fb0f27 100644 --- a/data/maps/maps.asm +++ b/data/maps/maps.asm @@ -557,6 +557,7 @@ MapGroup_SilentHills: table_width MAP_LENGTH, MapGroup_SilentHills map SilentHills, TILESET_NIHON_01, TOWN, LANDMARK_SILENT_HILLS, MUSIC_NIHON_TOWN_01, TRUE, PALETTE_AUTO, FISHGROUP_SHORE map DebugRoom, TILESET_NIHON_01, TOWN, LANDMARK_SILENT_HILLS, MUSIC_SINJOH_RUINS, TRUE, PALETTE_MORN, FISHGROUP_SHORE + map Route49, TILESET_NIHON_01, ROUTE, LANDMARK_ROUTE_49, MUSIC_ROUTE_30, TRUE, PALETTE_AUTO, FISHGROUP_POND assert_table_length NUM_SILENT_HILLS_MAPS MapGroup_BlueForest: diff --git a/data/maps/scripts.asm b/data/maps/scripts.asm index 4ae02e8..6109e8d 100644 --- a/data/maps/scripts.asm +++ b/data/maps/scripts.asm @@ -500,4 +500,5 @@ INCLUDE "maps/LakeOfRageMart.asm" INCLUDE "maps/LakeOfRagePrycesHouse.asm" INCLUDE "maps/DebugRoom.asm" INCLUDE "maps/CliffCave.asm" +INCLUDE "maps/Route49.asm" INCLUDE "maps/BlueForest.asm" diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm index a5668ec..3ef7b3e 100644 --- a/data/pokemon/base_stats.asm +++ b/data/pokemon/base_stats.asm @@ -228,6 +228,8 @@ INCLUDE "data/pokemon/base_stats/ledyba.asm" INCLUDE "data/pokemon/base_stats/ledian.asm" INCLUDE "data/pokemon/base_stats/spinarak.asm" INCLUDE "data/pokemon/base_stats/ariados.asm" +INCLUDE "data/pokemon/base_stats/folage.asm" +INCLUDE "data/pokemon/base_stats/barreau.asm" INCLUDE "data/pokemon/base_stats/crobat.asm" INCLUDE "data/pokemon/base_stats/chinchou.asm" INCLUDE "data/pokemon/base_stats/lanturn.asm" diff --git a/data/pokemon/base_stats/barreau.asm b/data/pokemon/base_stats/barreau.asm new file mode 100644 index 0000000..7265a35 --- /dev/null +++ b/data/pokemon/base_stats/barreau.asm @@ -0,0 +1,21 @@ + db 0 ; species ID placeholder + + db 60, 35, 60, 80, 75, 85 + ; hp atk def spd sat sdf + + db BUG, PSYCHIC_TYPE ; type + db 45 ; catch rate + db 160 ; base exp + db NO_ITEM, SILVERPOWDER ; items + db GENDER_F50 ; gender ratio + db 100 ; unknown 1 + db 15 ; step cycles to hatch + db 5 ; unknown 2 + INCBIN "gfx/pokemon/barreau/front.dimensions" + dw NULL, NULL ; unused (beta front/back pics) + db GROWTH_MEDIUM_FAST ; growth rate + dn EGG_BUG, EGG_BUG ; egg groups + + ; tm/hm learnset + tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC_M, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, NIGHTMARE, FLASH + ; end diff --git a/data/pokemon/base_stats/folage.asm b/data/pokemon/base_stats/folage.asm new file mode 100644 index 0000000..114877f --- /dev/null +++ b/data/pokemon/base_stats/folage.asm @@ -0,0 +1,21 @@ + db 0 ; species ID placeholder + + db 40, 25, 45, 15, 25, 45 + ; hp atk def spd sat sdf + + db BUG, BUG ; type + db 255 ; catch rate + db 53 ; base exp + db NO_ITEM, NO_ITEM ; items + db GENDER_F50 ; gender ratio + db 100 ; unknown 1 + db 15 ; step cycles to hatch + db 5 ; unknown 2 + INCBIN "gfx/pokemon/folage/front.dimensions" + dw NULL, NULL ; unused (beta front/back pics) + db GROWTH_MEDIUM_FAST ; growth rate + dn EGG_BUG, EGG_BUG ; egg groups + + ; tm/hm learnset + tmhm HIDDEN_POWER, PROTECT + ; end diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm index d12a89c..b6a489a 100644 --- a/data/pokemon/cries.asm +++ b/data/pokemon/cries.asm @@ -207,6 +207,8 @@ PokemonCries:: mon_cry CRY_LEDYBA, -150, 312 ; LEDIAN mon_cry CRY_SPINARAK, 17, 512 ; SPINARAK mon_cry CRY_SPINARAK, -174, 482 ; ARIADOS + mon_cry CRY_NIDORAN_M, 0, 0 ; FOLAGE (incomplete) + mon_cry CRY_NIDORAN_M, 0, 0 ; BARREAU (incomplete) mon_cry CRY_SQUIRTLE, -16, 320 ; CROBAT mon_cry CRY_CYNDAQUIL, 969, 320 ; CHINCHOU mon_cry CRY_CYNDAQUIL, 720, 272 ; LANTURN diff --git a/data/pokemon/dex_entries.asm b/data/pokemon/dex_entries.asm index a08a2a9..6f4ad21 100644 --- a/data/pokemon/dex_entries.asm +++ b/data/pokemon/dex_entries.asm @@ -209,6 +209,8 @@ LedybaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ledyba.asm" LedianPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ledian.asm" SpinarakPokedexEntry:: INCLUDE "data/pokemon/dex_entries/spinarak.asm" AriadosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ariados.asm" +FolagePokedexEntry:: INCLUDE "data/pokemon/dex_entries/folage.asm" +BarreauPokedexEntry:: INCLUDE "data/pokemon/dex_entries/barreau.asm" CrobatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/crobat.asm" ChinchouPokedexEntry:: INCLUDE "data/pokemon/dex_entries/chinchou.asm" LanturnPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lanturn.asm" diff --git a/data/pokemon/dex_entries/barreau.asm b/data/pokemon/dex_entries/barreau.asm new file mode 100644 index 0000000..07a4914 --- /dev/null +++ b/data/pokemon/dex_entries/barreau.asm @@ -0,0 +1,10 @@ + db "MOTH@" ; species name + dw 411, 280 ; height, weight + + db "The dust covering" + next "its wings scatters" + next "easily, causing" + + page "allergic reactions" + next "in attackers. It" + next "loves nectar.@" diff --git a/data/pokemon/dex_entries/folage.asm b/data/pokemon/dex_entries/folage.asm new file mode 100644 index 0000000..9962029 --- /dev/null +++ b/data/pokemon/dex_entries/folage.asm @@ -0,0 +1,10 @@ + db "BAGWORM@" ; species name + dw 100, 75 ; height, weight + + db "Dangles in trees." + next "Shaking its home" + next "makes it drop," + + page "scaring passersby." + next "Easy prey for bird" + next "#MON.@" diff --git a/data/pokemon/dex_entry_pointers.asm b/data/pokemon/dex_entry_pointers.asm index 158038b..8289467 100644 --- a/data/pokemon/dex_entry_pointers.asm +++ b/data/pokemon/dex_entry_pointers.asm @@ -202,6 +202,8 @@ PokedexDataPointerTable: dba LedianPokedexEntry dba SpinarakPokedexEntry dba AriadosPokedexEntry + dba FolagePokedexEntry + dba BarreauPokedexEntry dba CrobatPokedexEntry dba ChinchouPokedexEntry dba LanturnPokedexEntry diff --git a/data/pokemon/dex_order_alpha.asm b/data/pokemon/dex_order_alpha.asm index 486db07..f9fb2b0 100644 --- a/data/pokemon/dex_order_alpha.asm +++ b/data/pokemon/dex_order_alpha.asm @@ -13,6 +13,7 @@ AlphabeticalPokedexOrder: dw ARIADOS dw ARTICUNO dw AZUMARILL + dw BARREAU dw BAYLEEF dw BEEDRILL dw BELLIGNAN @@ -75,6 +76,7 @@ AlphabeticalPokedexOrder: dw FLAAFFY dw FLAMBEAR dw FLAREON + dw FOLAGE dw FORRETRESS dw FURRET dw GASTLY diff --git a/data/pokemon/dex_order_new.asm b/data/pokemon/dex_order_new.asm index 11efe92..4f29dda 100644 --- a/data/pokemon/dex_order_new.asm +++ b/data/pokemon/dex_order_new.asm @@ -49,6 +49,8 @@ NewPokedexOrder: dw LEDIAN dw SPINARAK dw ARIADOS + dw FOLAGE + dw BARREAU dw GEODUDE dw GRAVELER dw GOLEM diff --git a/data/pokemon/egg_moves_johto.asm b/data/pokemon/egg_moves_johto.asm index 08de96f..d2ffb9d 100644 --- a/data/pokemon/egg_moves_johto.asm +++ b/data/pokemon/egg_moves_johto.asm @@ -24,6 +24,8 @@ EggMovePointers2:: dw NoEggMoves2 dw SpinarakEggMoves dw NoEggMoves2 + dw NoEggMoves2 ; Folage + dw NoEggMoves2 ; Barreau dw NoEggMoves2 dw ChinchouEggMoves dw NoEggMoves2 diff --git a/data/pokemon/evos_attacks_johto.asm b/data/pokemon/evos_attacks_johto.asm index 4d0eb48..ffe4bbd 100644 --- a/data/pokemon/evos_attacks_johto.asm +++ b/data/pokemon/evos_attacks_johto.asm @@ -24,6 +24,8 @@ EvosAttacksPointers2:: dw LedianEvosAttacks dw SpinarakEvosAttacks dw AriadosEvosAttacks + dw FolageEvosAttacks + dw BarreauEvosAttacks dw CrobatEvosAttacks dw ChinchouEvosAttacks dw LanturnEvosAttacks @@ -447,6 +449,28 @@ AriadosEvosAttacks: dbw 63, PSYCHIC_M db 0 ; no more level-up moves +FolageEvosAttacks: + dbbw EVOLVE_LEVEL, 10, BARREAU + db 0 ; no more evolutions + dbw 1, TACKLE + dbw 1, STRING_SHOT + dbw 1, PROTECT + dbw 10, SAFEGUARD + db 0 ; no more level-up moves + +BarreauEvosAttacks: + db 0 ; no more evolutions + dbw 1, CONFUSION + dbw 10, CONFUSION + dbw 13, REFLECT + dbw 13, LIGHT_SCREEN + dbw 18, GUST + dbw 23, WHIRLWIND + dbw 28, PSYBEAM + dbw 34, BARRIER + dbw 40, MIRROR_COAT + db 0 ; no more level-up moves + CrobatEvosAttacks: db 0 ; no more evolutions dbw 1, SCREECH diff --git a/data/pokemon/first_stages.asm b/data/pokemon/first_stages.asm index a439b27..d75f479 100644 --- a/data/pokemon/first_stages.asm +++ b/data/pokemon/first_stages.asm @@ -202,6 +202,8 @@ FirstEvoStages:: dw LEDYBA dw SPINARAK dw SPINARAK ;a8 + dw FOLAGE + dw BARREAU dw BITTYBAT dw CHINCHOU dw CHINCHOU diff --git a/data/pokemon/gen1_order.asm b/data/pokemon/gen1_order.asm index f913f3b..6d8fd14 100644 --- a/data/pokemon/gen1_order.asm +++ b/data/pokemon/gen1_order.asm @@ -289,4 +289,6 @@ Pokered_MonIndices: db BURGELA db TANGROWTH db JUNGELA + db FOLAGE + db BARREAU assert_table_length NUM_POKEMON - 1 diff --git a/data/pokemon/menu_icons.asm b/data/pokemon/menu_icons.asm index 2648295..c0d0dd5 100644 --- a/data/pokemon/menu_icons.asm +++ b/data/pokemon/menu_icons.asm @@ -203,6 +203,8 @@ MonMenuIcons: db ICON_BUG ; LEDIAN db ICON_BUG ; SPINARAK db ICON_BUG ; ARIADOS + db ICON_BUG ; FOLAGE + db ICON_MOTH ; BARREAU db ICON_BAT ; CROBAT db ICON_FISH ; CHINCHOU db ICON_FISH ; LANTURN diff --git a/data/pokemon/names.asm b/data/pokemon/names.asm index 2b1857c..ba2e0b4 100644 --- a/data/pokemon/names.asm +++ b/data/pokemon/names.asm @@ -205,6 +205,8 @@ PokemonNames:: db "LEDIAN@@@@" db "SPINARAK@@" db "ARIADOS@@@" + db "FOLAGE@@@@" + db "BARREAU@@@" db "CROBAT@@@@" db "CHINCHOU@@" db "LANTURN@@@" diff --git a/data/pokemon/palettes.asm b/data/pokemon/palettes.asm index 230650a..6a28828 100644 --- a/data/pokemon/palettes.asm +++ b/data/pokemon/palettes.asm @@ -435,6 +435,10 @@ INCBIN "gfx/pokemon/spinarak/front.gbcpal", middle_colors INCLUDE "gfx/pokemon/spinarak/shiny.pal" INCBIN "gfx/pokemon/ariados/front.gbcpal", middle_colors INCLUDE "gfx/pokemon/ariados/shiny.pal" +INCBIN "gfx/pokemon/folage/front.gbcpal", middle_colors +INCLUDE "gfx/pokemon/folage/shiny.pal" +INCBIN "gfx/pokemon/barreau/front.gbcpal", middle_colors +INCLUDE "gfx/pokemon/barreau/shiny.pal" INCBIN "gfx/pokemon/crobat/front.gbcpal", middle_colors INCLUDE "gfx/pokemon/crobat/shiny.pal" INCBIN "gfx/pokemon/chinchou/front.gbcpal", middle_colors diff --git a/data/pokemon/pic_pointers.asm b/data/pokemon/pic_pointers.asm index e8f25ef..4029349 100644 --- a/data/pokemon/pic_pointers.asm +++ b/data/pokemon/pic_pointers.asm @@ -415,6 +415,10 @@ PokemonPicPointers:: dba SpinarakBackpic dba AriadosFrontpic dba AriadosBackpic + dba FolageFrontpic + dba FolageBackpic + dba BarreauFrontpic + dba BarreauBackpic dba CrobatFrontpic dba CrobatBackpic dba ChinchouFrontpic diff --git a/data/tilesets/nihon01_attributes.bin b/data/tilesets/nihon01_attributes.bin index df997f9cae2b7c820ec72d8164b96a3c0caae070..86fbe9e6302f7e86e1290d4180e1d35084b65692 100644 GIT binary patch delta 230 zcmZn=Xb@PyI8jkSfej8=!GH-3Om<*=V1OnD5hP4}a|2rgBLK*N B6d(Wq literal 2048 zcmds2(Q?Be3=1jb_QL=F?j#!-*X#9~w{5-#BPbI&(YUGiedhi1A3wtQqIWYx>!1-VxA z35#+L+&y1}d=*H_nXdxv#R@(8n)U2+*1mv7;UUI_l?+uk{nDrU3)!3dMt`uE|H{09 we|WTWoim-Y-Hb3nerI&2`Ywwn|3u!;L!^*iUf-eXdj9X|-6Q()D}UYh8}_#wL;wH) diff --git a/data/tilesets/nihon01_collision.asm b/data/tilesets/nihon01_collision.asm index b6e1199..f1ca8a4 100644 --- a/data/tilesets/nihon01_collision.asm +++ b/data/tilesets/nihon01_collision.asm @@ -14,10 +14,10 @@ tilecoll FLOOR, WALL, WALL, WALL ; 0d tilecoll WALL, WALL, DOOR, WALL ; 0e tilecoll WALL, WALL, WALL, WALL ; 0f - tilecoll WALL, WALL, WALL, WALL ; 10 - tilecoll WALL, WALL, WALL, WALL ; 11 + tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 10 + tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, CUT_TREE ; 11 tilecoll WALL, WALL, WALL, WALL ; 12 - tilecoll WALL, WALL, WALL, WALL ; 13 + tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, FLOOR ; 13 tilecoll WALL, WALL, WALL, DOOR ; 14 tilecoll WALL, WALL, WALL, WALL ; 15 tilecoll WALL, WALL, WALL, DOOR ; 16 @@ -32,22 +32,22 @@ tilecoll WALL, WALL, WALL, WALL ; 1f tilecoll WALL, WALL, WALL, WALL ; 20 tilecoll WALL, WALL, WALL, WALL ; 21 - tilecoll WALL, WALL, WALL, WALL ; 22 - tilecoll WALL, WALL, WALL, WALL ; 23 - tilecoll FLOOR, WALL, FLOOR, WALL ; 24 - tilecoll WALL, WALL, WALL, WALL ; 25 - tilecoll WALL, WALL, WALL, WALL ; 26 - tilecoll WALL, WALL, DOOR, WALL ; 27 - tilecoll WALL, WALL, WALL, DOOR ; 28 - tilecoll WALL, WALL, WALL, WALL ; 29 - tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2a + tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 22 + tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 23 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24 + tilecoll FLOOR, WALL, WALL, WALL ; 25 + tilecoll FLOOR, WALL, FLOOR, WALL ; 26 + tilecoll FLOOR, FLOOR, WALL, WALL ; 27 + tilecoll WALL, WALL, FLOOR, WALL ; 28 + tilecoll WALL, WALL, FLOOR, FLOOR ; 29 + tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a tilecoll WALL, WALL, FLOOR, FLOOR ; 2b - tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2c - tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2d - tilecoll WALL, WALL, WALL, DOOR ; 2e + tilecoll FLOOR, FLOOR, FLOOR, WALL ; 2c + tilecoll WALL, FLOOR, FLOOR, FLOOR ; 2d + tilecoll FLOOR, FLOOR, WALL, WALL ; 2e tilecoll FLOOR, FLOOR, WALL, WALL ; 2f - tilecoll BUOY, BUOY, BUOY, WATER ; 30 - tilecoll BUOY, BUOY, WATER, WATER ; 31 + tilecoll WALL, WALL, FLOOR, WALL ; 30 + tilecoll WALL, WALL, FLOOR, WALL ; 31 tilecoll BUOY, BUOY, WATER, BUOY ; 32 tilecoll FLOOR, FLOOR, WALL, WALL ; 33 tilecoll BUOY, WATER, BUOY, WATER ; 34 @@ -90,17 +90,17 @@ tilecoll WATER, WATER, WATER, WATER ; 59 tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 5a tilecoll HEADBUTT_TREE, CUT_TREE, FLOOR, FLOOR ; 5b - tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, FLOOR ; 5c - tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 5d - tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, HEADBUTT_TREE ; 5e + tilecoll WALL, WALL, WALL, FLOOR ; 5c + tilecoll WALL, WALL, FLOOR, FLOOR ; 5d + tilecoll WALL, WALL, FLOOR, WALL ; 5e tilecoll FLOOR, HEADBUTT_TREE, FLOOR, CUT_TREE ; 5f - tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 60 + tilecoll WALL, FLOOR, WALL, FLOOR ; 60 tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 61 - tilecoll FLOOR, HEADBUTT_TREE, FLOOR, HEADBUTT_TREE ; 62 + tilecoll FLOOR, WALL, FLOOR, WALL ; 62 tilecoll FLOOR, FLOOR, CUT_TREE, HEADBUTT_TREE ; 63 - tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 64 - tilecoll FLOOR, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 65 - tilecoll FLOOR, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 66 + tilecoll WALL, FLOOR, WALL, WALL ; 64 + tilecoll FLOOR, FLOOR, WALL, WALL ; 65 + tilecoll FLOOR, WALL, WALL, WALL ; 66 tilecoll CUT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 67 tilecoll WALL, FLOOR, WALL, FLOOR ; 68 tilecoll FLOOR, WALL, FLOOR, WALL ; 69 diff --git a/data/tilesets/nihon01_metatiles.bin b/data/tilesets/nihon01_metatiles.bin index 61d63fd8a3458441ee7022fa070c63c6b7494b7c..1fc98b4939fcded8b07f6072eca054d10ab6cf7f 100644 GIT binary patch delta 522 zcmY*WJC4FI5Oo}l8yXNwg#svwQ>7qMV7Evh6zsNy0vfmjHwZ^S+6!<8F0@BsK6ssd z(tMs~-pt6p4R6Co&{TC*pD*VNyy5xBCqNXh=A+Tq_h4{5O(ucX+SRKXfK)$C@Y^}! zB7jn8Mxs#!@sg#fwPa%toWfr@`Rmbuy9t>v>t9 z3gzoiHchjs>)J03wuS;^1#-*G>K5o(*Y&&Wh3ClVw+&`moOAFu;ID(wU{TCD<}U0Y zTv$$zT*XSp;=_y7SQ5*pF4pFmGuh8oIySk>P5+)Q(`CBb@Ak+t0h2rKlE=*T VR?{rW`*!#B|1QRdoImuV@(r{%RI&g7 diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 752b3bf..43667d7 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -2464,6 +2464,14 @@ BugCatcherGroup: dw PARAS db -1 ; end + next_list_item ; BUG_CATCHER (20) + db "SIONED@", TRAINERTYPE_NORMAL + db 42 + dw BARREAU + db 42 + dw CARAPTHOR + db -1 ; end + end_list_items FisherGroup: @@ -5085,6 +5093,10 @@ TwinsGroup: end_list_items +; Added this to make room for more stuff. +; Yeah, they filled trainers to max capacity originally. Pretty impressive. +SECTION "Enemy Trainer Parties 3", ROMX + PokefanFGroup: next_list_item ; POKEFANF (1) db "BEVERLY@", TRAINERTYPE_ITEM diff --git a/data/wild/nihon_grass.asm b/data/wild/nihon_grass.asm new file mode 100644 index 0000000..28f2dc0 --- /dev/null +++ b/data/wild/nihon_grass.asm @@ -0,0 +1,31 @@ +NihonGrassWildMons: + + def_grass_wildmons ROUTE_49 + db 10 percent, 10 percent, 10 percent ; encounter rates: morn/day/nite + ; morn + dbw 30, PIDGEY + dbw 31, RATTATA + dbw 30, PIKACHU + dbw 31, MAREEP + dbw 32, HOPPIP + dbw 32, METAPOD + dbw 35, SUNFLORA + ; day + dbw 30, PIDGEY + dbw 31, RATTATA + dbw 30, PIKACHU + dbw 31, MAREEP + dbw 32, HOPPIP + dbw 32, METAPOD + dbw 35, GIRAFARIG + ; nite + dbw 30, PIDGEY + dbw 31, RATTATA + dbw 30, PIKACHU + dbw 31, MAREEP + dbw 32, HOPPIP + dbw 32, METAPOD + dbw 35, SKARMORY + end_grass_wildmons + + db -1 ; end diff --git a/data/wild/nihon_water.asm b/data/wild/nihon_water.asm new file mode 100644 index 0000000..a5a43ed --- /dev/null +++ b/data/wild/nihon_water.asm @@ -0,0 +1,3 @@ +NihonWaterWildMons: + + db -1 ; end diff --git a/data/wild/treemons.asm b/data/wild/treemons.asm index cd5a4a0..194415a 100644 --- a/data/wild/treemons.asm +++ b/data/wild/treemons.asm @@ -43,7 +43,7 @@ TreeMonSet_Canyon: TreeMonSet_Town: ; common dbbw 50, 10, SPEAROW - dbbw 15, 10, EKANS + dbbw 15, 10, FOLAGE dbbw 15, 10, SPEAROW dbbw 10, 10, AIPOM dbbw 5, 10, AIPOM @@ -63,16 +63,16 @@ TreeMonSet_Route: dbbw 50, 10, HOOTHOOT dbbw 15, 10, SPINARAK dbbw 15, 10, LEDYBA - dbbw 10, 10, EXEGGCUTE - dbbw 5, 10, EXEGGCUTE + dbbw 10, 10, FOLAGE + dbbw 5, 10, FOLAGE dbbw 5, 10, EXEGGCUTE db -1 ; rare dbbw 50, 10, HOOTHOOT dbbw 15, 10, PINECO dbbw 15, 10, PINECO - dbbw 10, 10, EXEGGCUTE - dbbw 5, 10, EXEGGCUTE + dbbw 10, 10, FOLAGE + dbbw 5, 10, FOLAGE dbbw 5, 10, EXEGGCUTE db -1 @@ -89,8 +89,8 @@ TreeMonSet_Kanto: dbbw 50, 10, HOOTHOOT dbbw 15, 10, PINECO dbbw 15, 10, PINECO - dbbw 10, 10, EXEGGCUTE - dbbw 5, 10, EXEGGCUTE + dbbw 10, 10, FOLAGE + dbbw 5, 10, FOLAGE dbbw 5, 10, EXEGGCUTE db -1 @@ -99,16 +99,16 @@ TreeMonSet_Lake: dbbw 50, 10, HOOTHOOT dbbw 15, 10, VENONAT dbbw 15, 10, HOOTHOOT - dbbw 10, 10, EXEGGCUTE - dbbw 5, 10, EXEGGCUTE + dbbw 10, 10, FOLAGE + dbbw 5, 10, FOLAGE dbbw 5, 10, EXEGGCUTE db -1 ; rare dbbw 50, 10, HOOTHOOT dbbw 15, 10, PINECO dbbw 15, 10, PINECO - dbbw 10, 10, EXEGGCUTE - dbbw 5, 10, EXEGGCUTE + dbbw 10, 10, FOLAGE + dbbw 5, 10, FOLAGE dbbw 5, 10, EXEGGCUTE db -1 @@ -117,14 +117,14 @@ TreeMonSet_Forest: dbbw 50, 10, HOOTHOOT dbbw 15, 10, PINECO dbbw 15, 10, PINECO - dbbw 10, 10, NOCTOWL + dbbw 10, 10, FOLAGE dbbw 5, 10, BUTTERFREE dbbw 5, 10, BEEDRILL db -1 ; rare dbbw 50, 10, HOOTHOOT dbbw 15, 10, CATERPIE - dbbw 15, 10, WEEDLE + dbbw 15, 10, FOLAGE dbbw 10, 10, HOOTHOOT dbbw 5, 10, METAPOD dbbw 5, 10, KAKUNA diff --git a/data/wild/treemons_asleep.asm b/data/wild/treemons_asleep.asm index 7edddae..4860bb5 100644 --- a/data/wild/treemons_asleep.asm +++ b/data/wild/treemons_asleep.asm @@ -12,6 +12,7 @@ AsleepTreeMonsNite: dw EXEGGCUTE dw LEDYBA dw AIPOM + dw FOLAGE dw -1 ; end AsleepTreeMonsDay: diff --git a/engine/overworld/wildmons.asm b/engine/overworld/wildmons.asm index 1a0d2b0..cf86cfe 100644 --- a/engine/overworld/wildmons.asm +++ b/engine/overworld/wildmons.asm @@ -38,6 +38,8 @@ FindNest: ld b, h ld c, l ld a, e + cp 2 + jr z, .nihon and a jr nz, .kanto decoord 0, 0 @@ -56,6 +58,13 @@ FindNest: ld hl, KantoWaterWildMons jp .FindWater +.nihon + decoord 0, 0 + ld hl, NihonGrassWildMons + call .FindGrass + ld hl, NihonWaterWildMons + jp .FindWater + .FindGrass: ld a, [hl] cp -1 @@ -412,8 +421,24 @@ _GrassWildmonLookup: call _SwarmWildmonCheck ret c ld hl, JohtoGrassWildMons - ld de, KantoGrassWildMons - call _JohtoWildmonCheck + + ; Nihon Check + ; Basically, conditionally load Nihon or Kanto into de, depending on region check. + ; IsInJohto returns 1 if Kanto, 2 if Nihon. + ; This way, when _JohtoWildmonCheck loads, it'll have Nihon's spliced in if you're there. + ; This is INCREDIBLY suboptimal. Consider revising. + ; As of 3rd Nov '23, this works correctly for Johto and Kanto, but Nihon routes will return nothing. + call IsInJohto ; Run IsInJohto + cp 1 ; If we're in Kanto... + jr z, .skip ; Skip the splicing. + ld de, NihonGrassWildMons ; No? Splice in Nihon. + jr .skip2 ; Now skip loading Kanto. +.skip ; If you skip here, you're in Kanto. + ld de, KantoGrassWildMons ; So take this as normal. + ; fallthrough +.skip2 ; If you skip here, you're in Nihon or Johto. + + call _JohtoWildmonCheck ; So run this check. More commentary there. ld bc, GRASS_WILDDATA_LENGTH jr _NormalWildmonOK @@ -423,18 +448,35 @@ _WaterWildmonLookup: call _SwarmWildmonCheck ret c ld hl, JohtoWaterWildMons + + ; Nihon Check 2 + call IsInJohto + cp 1 + jr z, .skip + ld de, NihonWaterWildMons + jr .skip2 +.skip ld de, KantoWaterWildMons + ; fallthrough +.skip2 + call _JohtoWildmonCheck ld bc, WATER_WILDDATA_LENGTH jr _NormalWildmonOK +; The Nihon check works with this, because of the following: +; _JohtoWildmonCheck checks if you're above 0. +; Kanto is 1, Nihon is 2. +; Therefore, it'll always take the data from de. +; We've already decided what de is before between Kanto and Nihon. +; Nothing fancy, but don't worry about it. _JohtoWildmonCheck: - call IsInJohto - and a - ret z - ld h, d - ld l, e - ret + call IsInJohto ; Check if we're in Johto or not. + and a ; Are we? + ret z ; If zero, skip. This means you're in Johto, so you take what's in hl. + ld h, d ; If you're not, though, you take what's in d... + ld l, e ; and e. + ret ; Therefore, you'll take either Kanto or Nihon wild data. _SwarmWildmonCheck: call CopyCurrMapDE @@ -1000,5 +1042,7 @@ INCLUDE "data/wild/johto_grass.asm" INCLUDE "data/wild/johto_water.asm" INCLUDE "data/wild/kanto_grass.asm" INCLUDE "data/wild/kanto_water.asm" +INCLUDE "data/wild/nihon_grass.asm" +INCLUDE "data/wild/nihon_water.asm" INCLUDE "data/wild/swarm_grass.asm" INCLUDE "data/wild/swarm_water.asm" diff --git a/gfx/footprints.asm b/gfx/footprints.asm index 96b441c..fa56c26 100644 --- a/gfx/footprints.asm +++ b/gfx/footprints.asm @@ -202,6 +202,8 @@ INCBIN "gfx/footprints/ledyba.1bpp" INCBIN "gfx/footprints/ledian.1bpp" INCBIN "gfx/footprints/spinarak.1bpp" INCBIN "gfx/footprints/ariados.1bpp" +INCBIN "gfx/footprints/folage.1bpp" +INCBIN "gfx/footprints/barreau.1bpp" INCBIN "gfx/footprints/crobat.1bpp" INCBIN "gfx/footprints/chinchou.1bpp" INCBIN "gfx/footprints/lanturn.1bpp" diff --git a/gfx/footprints/barreau.png b/gfx/footprints/barreau.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe2ee3de9d088c1231dbadedf8ae4093d93763d GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx;Bp3=bcE|uJ9#0p?kcwN$2@CXqyZ{Eqvu9P> OK=PihelF{r5}E*#W)1`Z literal 0 HcmV?d00001 diff --git a/gfx/footprints/folage.png b/gfx/footprints/folage.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe2ee3de9d088c1231dbadedf8ae4093d93763d GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx;Bp3=bcE|uJ9#0p?kcwN$2@CXqyZ{Eqvu9P> OK=PihelF{r5}E*#W)1`Z literal 0 HcmV?d00001 diff --git a/gfx/pics.asm b/gfx/pics.asm index 24f7ac2..92d4d77 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -794,3 +794,8 @@ PressioFrontpic: INCBIN "gfx/pokemon/pressio/front.animated.2bpp.lz" PressioBackpic: INCBIN "gfx/pokemon/pressio/back.2bpp.lz" DonmarinFrontpic: INCBIN "gfx/pokemon/donmarin/front.animated.2bpp.lz" DonmarinBackpic: INCBIN "gfx/pokemon/donmarin/back.2bpp.lz" + +FolageFrontpic: INCBIN "gfx/pokemon/folage/front.animated.2bpp.lz" +FolageBackpic: INCBIN "gfx/pokemon/folage/back.2bpp.lz" +BarreauFrontpic: INCBIN "gfx/pokemon/barreau/front.animated.2bpp.lz" +BarreauBackpic: INCBIN "gfx/pokemon/barreau/back.2bpp.lz" \ No newline at end of file diff --git a/gfx/pokemon/anim_pointers.asm b/gfx/pokemon/anim_pointers.asm index 232cf4d..5968084 100644 --- a/gfx/pokemon/anim_pointers.asm +++ b/gfx/pokemon/anim_pointers.asm @@ -201,6 +201,8 @@ AnimationPointers: dw LedianAnimation dw SpinarakAnimation dw AriadosAnimation + dw FolageAnimation + dw BarreauAnimation dw CrobatAnimation dw ChinchouAnimation dw LanturnAnimation diff --git a/gfx/pokemon/anims.asm b/gfx/pokemon/anims.asm index d2df447..5df613f 100644 --- a/gfx/pokemon/anims.asm +++ b/gfx/pokemon/anims.asm @@ -199,6 +199,8 @@ LedybaAnimation: INCLUDE "gfx/pokemon/ledyba/anim.asm" LedianAnimation: INCLUDE "gfx/pokemon/ledian/anim.asm" SpinarakAnimation: INCLUDE "gfx/pokemon/spinarak/anim.asm" AriadosAnimation: INCLUDE "gfx/pokemon/ariados/anim.asm" +FolageAnimation: INCLUDE "gfx/pokemon/folage/anim.asm" +BarreauAnimation: INCLUDE "gfx/pokemon/barreau/anim.asm" CrobatAnimation: INCLUDE "gfx/pokemon/crobat/anim.asm" ChinchouAnimation: INCLUDE "gfx/pokemon/chinchou/anim.asm" LanturnAnimation: INCLUDE "gfx/pokemon/lanturn/anim.asm" diff --git a/gfx/pokemon/barreau/anim.asm b/gfx/pokemon/barreau/anim.asm new file mode 100644 index 0000000..875f7be --- /dev/null +++ b/gfx/pokemon/barreau/anim.asm @@ -0,0 +1 @@ + endanim \ No newline at end of file diff --git a/gfx/pokemon/barreau/anim_idle.asm b/gfx/pokemon/barreau/anim_idle.asm new file mode 100644 index 0000000..875f7be --- /dev/null +++ b/gfx/pokemon/barreau/anim_idle.asm @@ -0,0 +1 @@ + endanim \ No newline at end of file diff --git a/gfx/pokemon/barreau/back.png b/gfx/pokemon/barreau/back.png new file mode 100644 index 0000000000000000000000000000000000000000..c7216be8a6b643ae0f808a7c3d303e86af6d8dfa GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sJOMr-uK)l4-}{`ScnXlu5R|)9 z9Z0d11o;I6#sBAOxK#rATRmMILn>|^y%NaRY{0{OVa2}xbJZ6*F0?2!YPqJbQOC=Y zaip60#j}fN7teM#|F3pH_JpWM-F#seB z5(V=%|6HQW>9L#Xb5tGMzO|>H)LCqMcu=)Ym8-{*Mf;=eOvmUXu^H{>8AV?(o~T)2 z!K(PkM85T@plZT@4%Thgv%EU;#hxm@Um5=JA5V9LDEq2#mH2yVo7cYIzhL)G`3KBx qK77yoJ~)o$APU*nop2@caMzJkhJBYWG+dh3uV@Y^1zl z@-&oTG=oY!Xz2?|zvP!aNouVXD;D(Z%HM_H}%`{$`dFR36K>440+ZUZy&p)Ai z==I09cKiST@U&rE`-`*qw{lc8&@X(c5uRzjz6@GGHU|)cz@^~HAj;F#&t;ucLK6U- C0e)Bj literal 0 HcmV?d00001 diff --git a/gfx/pokemon/barreau/shiny.pal b/gfx/pokemon/barreau/shiny.pal new file mode 100644 index 0000000..5c88669 --- /dev/null +++ b/gfx/pokemon/barreau/shiny.pal @@ -0,0 +1,2 @@ + RGB 22, 22, 12 + RGB 07, 15, 25 \ No newline at end of file diff --git a/gfx/pokemon/bitmask_pointers.asm b/gfx/pokemon/bitmask_pointers.asm index 73e78de..2e42406 100644 --- a/gfx/pokemon/bitmask_pointers.asm +++ b/gfx/pokemon/bitmask_pointers.asm @@ -201,6 +201,8 @@ BitmasksPointers: dw LedianBitmasks dw SpinarakBitmasks dw AriadosBitmasks + dw FolageBitmasks + dw BarreauBitmasks dw CrobatBitmasks dw ChinchouBitmasks dw LanturnBitmasks diff --git a/gfx/pokemon/bitmasks.asm b/gfx/pokemon/bitmasks.asm index 0bd2638..65a4092 100644 --- a/gfx/pokemon/bitmasks.asm +++ b/gfx/pokemon/bitmasks.asm @@ -199,6 +199,8 @@ LedybaBitmasks: INCLUDE "gfx/pokemon/ledyba/bitmask.asm" LedianBitmasks: INCLUDE "gfx/pokemon/ledian/bitmask.asm" SpinarakBitmasks: INCLUDE "gfx/pokemon/spinarak/bitmask.asm" AriadosBitmasks: INCLUDE "gfx/pokemon/ariados/bitmask.asm" +FolageBitmasks: INCLUDE "gfx/pokemon/folage/bitmask.asm" +BarreauBitmasks: INCLUDE "gfx/pokemon/barreau/bitmask.asm" CrobatBitmasks: INCLUDE "gfx/pokemon/crobat/bitmask.asm" ChinchouBitmasks: INCLUDE "gfx/pokemon/chinchou/bitmask.asm" LanturnBitmasks: INCLUDE "gfx/pokemon/lanturn/bitmask.asm" diff --git a/gfx/pokemon/folage/anim.asm b/gfx/pokemon/folage/anim.asm new file mode 100644 index 0000000..875f7be --- /dev/null +++ b/gfx/pokemon/folage/anim.asm @@ -0,0 +1 @@ + endanim \ No newline at end of file diff --git a/gfx/pokemon/folage/anim_idle.asm b/gfx/pokemon/folage/anim_idle.asm new file mode 100644 index 0000000..875f7be --- /dev/null +++ b/gfx/pokemon/folage/anim_idle.asm @@ -0,0 +1 @@ + endanim \ No newline at end of file diff --git a/gfx/pokemon/folage/back.png b/gfx/pokemon/folage/back.png new file mode 100644 index 0000000000000000000000000000000000000000..c7216be8a6b643ae0f808a7c3d303e86af6d8dfa GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sJOMr-uK)l4-}{`ScnXlu5R|)9 z9Z0d11o;I6#sBAOxK#rATRmMILn>|^y%NaRY{0{OVa2}xbJZ6*F0?2!YPqJbQOC=Y zaip60#j}fN7teM#|F3pH_JpWM-F#seB z5(V=%|6HQW>9L#Xb5tGMzO|>H)LCqMcu=)Ym8-{*Mf;=eOvmUXu^H{>8AV?(o~T)2 z!K(PkM85T@plZT@4%Thgv%EU;#hxm@Um5=JA5V9LDEq2#mH2yVo7cYIzhL)G`3KBx qK77yoJ~)o$APU*nop2@caMzJkhJBYWG+dh3uV@Y^1zl z@-&oTG=oY!Xz2?|zvP!aNouVXD;D(Z%HM_H}%`{$`dFR36K>440+ZUZy&p)Ai z==I09cKiST@U&rE`-`*qw{lc8&@X(c5uRzjz6@GGHU|)cz@^~HAj;F#&t;ucLK6U- C0e)Bj literal 0 HcmV?d00001 diff --git a/gfx/pokemon/folage/shiny.pal b/gfx/pokemon/folage/shiny.pal new file mode 100644 index 0000000..5c88669 --- /dev/null +++ b/gfx/pokemon/folage/shiny.pal @@ -0,0 +1,2 @@ + RGB 22, 22, 12 + RGB 07, 15, 25 \ No newline at end of file diff --git a/gfx/pokemon/frame_pointers.asm b/gfx/pokemon/frame_pointers.asm index 67c8836..acd36af 100644 --- a/gfx/pokemon/frame_pointers.asm +++ b/gfx/pokemon/frame_pointers.asm @@ -201,6 +201,8 @@ FramesPointers: dba LedianFrames dba SpinarakFrames dba AriadosFrames + dba FolageFrames + dba BarreauFrames dba CrobatFrames dba ChinchouFrames dba LanturnFrames diff --git a/gfx/pokemon/idle_pointers.asm b/gfx/pokemon/idle_pointers.asm index 2f70f3e..34ca4c1 100644 --- a/gfx/pokemon/idle_pointers.asm +++ b/gfx/pokemon/idle_pointers.asm @@ -201,6 +201,8 @@ AnimationIdlePointers: dw LedianAnimationIdle dw SpinarakAnimationIdle dw AriadosAnimationIdle + dw FolageAnimationIdle + dw BarreauAnimationIdle dw CrobatAnimationIdle dw ChinchouAnimationIdle dw LanturnAnimationIdle diff --git a/gfx/pokemon/idles.asm b/gfx/pokemon/idles.asm index 8f2efd4..6f00225 100644 --- a/gfx/pokemon/idles.asm +++ b/gfx/pokemon/idles.asm @@ -199,6 +199,8 @@ LedybaAnimationIdle: INCLUDE "gfx/pokemon/ledyba/anim_idle.asm" LedianAnimationIdle: INCLUDE "gfx/pokemon/ledian/anim_idle.asm" SpinarakAnimationIdle: INCLUDE "gfx/pokemon/spinarak/anim_idle.asm" AriadosAnimationIdle: INCLUDE "gfx/pokemon/ariados/anim_idle.asm" +FolageAnimationIdle: INCLUDE "gfx/pokemon/folage/anim_idle.asm" +BarreauAnimationIdle: INCLUDE "gfx/pokemon/barreau/anim_idle.asm" CrobatAnimationIdle: INCLUDE "gfx/pokemon/crobat/anim_idle.asm" ChinchouAnimationIdle: INCLUDE "gfx/pokemon/chinchou/anim_idle.asm" LanturnAnimationIdle: INCLUDE "gfx/pokemon/lanturn/anim_idle.asm" diff --git a/gfx/pokemon/johto_frames.asm b/gfx/pokemon/johto_frames.asm index e747cf7..67198dd 100644 --- a/gfx/pokemon/johto_frames.asm +++ b/gfx/pokemon/johto_frames.asm @@ -23,6 +23,8 @@ LedybaFrames: INCLUDE "gfx/pokemon/ledyba/frames.asm" LedianFrames: INCLUDE "gfx/pokemon/ledian/frames.asm" SpinarakFrames: INCLUDE "gfx/pokemon/spinarak/frames.asm" AriadosFrames: INCLUDE "gfx/pokemon/ariados/frames.asm" +FolageFrames: INCLUDE "gfx/pokemon/folage/frames.asm" +BarreauFrames: INCLUDE "gfx/pokemon/barreau/frames.asm" CrobatFrames: INCLUDE "gfx/pokemon/crobat/frames.asm" ChinchouFrames: INCLUDE "gfx/pokemon/chinchou/frames.asm" LanturnFrames: INCLUDE "gfx/pokemon/lanturn/frames.asm" diff --git a/layout.link b/layout.link index 21eca1b..9dd6e0c 100644 --- a/layout.link +++ b/layout.link @@ -196,7 +196,6 @@ ROMX $46 ROMX $47 "Battle Tower" ROMX $48 - "Pic Pointers" "Pics 1" ROMX $49 "Unown Pic Pointers" @@ -318,6 +317,7 @@ ROMX $7f "Stadium 2 Checksums" ROMX $80 "Cries" + "Pic Pointers" WRAM0 "Stack" "Audio RAM" diff --git a/maps/DebugRoom.asm b/maps/DebugRoom.asm index 586b41d..34095db 100644 --- a/maps/DebugRoom.asm +++ b/maps/DebugRoom.asm @@ -8,12 +8,12 @@ DebugRoom_MapScripts: DebugPokemon1Script: opentext - getmonname STRING_BUFFER_3, PALSSIO + getmonname STRING_BUFFER_3, FOLAGE writetext ReceivedDebugPokemonText playsound SFX_CAUGHT_MON waitsfx promptbutton - givepoke PALSSIO, 42, RARE_CANDY + givepoke FOLAGE, 42, RARE_CANDY closetext end diff --git a/maps/Route49.ablk b/maps/Route49.ablk new file mode 100644 index 0000000..1f86fa5 --- /dev/null +++ b/maps/Route49.ablk @@ -0,0 +1 @@ +)))($eeeeee$))(&$$$$$$`*,%&.$dee'%*&#$$-$'''%VV\]]"`]]]]]]]]]]]]$ \ No newline at end of file diff --git a/maps/Route49.asm b/maps/Route49.asm new file mode 100644 index 0000000..07f8c0b --- /dev/null +++ b/maps/Route49.asm @@ -0,0 +1,53 @@ + object_const_def + const ROUTE_49_BUG_CATCHER + +Route49_MapScripts: + def_scene_scripts + + def_callbacks + +TrainerBugCatcherSioned: + trainer BUG_CATCHER, SIONED, EVENT_BEAT_BUG_CATCHER_SIONED, BugCatcherSionedSeenText, BugCatcherSionedBeatenText, 0, .Script + +.Script: + endifjustbattled + opentext + writetext BugCatcherSionedAfterText + waitbutton + closetext + end + +BugCatcherSionedSeenText: + text "I haven't seen" + line "you around here" + cont "before!" + done + +BugCatcherSionedBeatenText: + text "You're good," + line "too!" + done + +BugCatcherSionedAfterText: + text "Foreigners often" + line "say this place" + cont "feels familiar." + + para "What's so special" + line "about this place," + cont "anyhow?" + done + +Route49_MapEvents: + db 0, 0 ; filler + + def_warp_events + ;warp_event 8, 9, SILENT_CAVE, 1 + ;warp_event 8, 8, SILENT_CAVE, 1 + + def_coord_events + + def_bg_events + + def_object_events + object_event 23, 7, SPRITE_BUG_CATCHER, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BROWN, OBJECTTYPE_TRAINER, 5, TrainerBugCatcherSioned, -1 diff --git a/scan_includes.exe.stackdump b/scan_includes.exe.stackdump index 7afcc48..0ad3fcb 100644 --- a/scan_includes.exe.stackdump +++ b/scan_includes.exe.stackdump @@ -1,15 +1,16 @@ Exception: STATUS_ACCESS_VIOLATION at rip=00100401246 -rax=FFFFFFF7FFF92891 rbx=0000000000000119 rcx=0000000800000010 -rdx=0000000000000000 rsi=0000000800059C23 rdi=0000000000000000 -r8 =00000000FFFFC7C4 r9 =0000000000000000 r10=0000000100000000 -r11=0000000100401282 r12=000000080006D770 r13=0000000100403148 -r14=0000000800059C22 r15=0000000000000001 -rbp=0000000100403156 rsp=00000000FFFFCA60 -program=C:\cygwin64\home\chipp\jep-hack\tools\scan_includes.exe, pid 2190, thread main +rax=FFFFFFF7FFF8E981 rbx=0000000000000230 rcx=0000000800000010 +rdx=0000000000000000 rsi=00000008000715EC rdi=0000000000000000 +r8 =00000000FFFFC744 r9 =0000000000000000 r10=0000000100000000 +r11=0000000100401282 r12=0000000800071680 r13=0000000100403148 +r14=0000000000000000 r15=0000000000000001 +rbp=0000000100403156 rsp=00000000FFFFC9E0 +program=C:\cygwin64\home\chipp\jep-hack\tools\scan_includes.exe, pid 7298, thread main cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args -00100403156 00100401246 (00800059C23, 00000000022, 00100403166, 000FFFFCB90) +00100403156 00100401246 (008000715EC, 00000000022, 00100403166, 00100403148) +00100403156 00100401409 (008000596E3, 00000000022, 00100403166, 000FFFFCB90) 00100403156 00100401409 (00000000000, 00100000001, 00180227860, 00100407000) 00100403178 00100401C87 (00000000020, 00000000000, 00180049B11, 00180048A70) 000FFFFCD30 00180049B7D (00000000000, 00000000000, 00000000000, 00000000000)