From 4d40fe09f00aa02c13ee64791f1f109aaff7821e Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sun, 30 Apr 2023 17:06:44 +0100 Subject: [PATCH] Groundwork for Garnet Cavern Currently just uses the RG Unknown Dungeon map, which should be changed accordingly. The warps and stuff outside of basic entry aren't implemented. Has a halved encounter rate compared to other maps, which matches the idea that caverns don't sustain much wildlife. Mt Moon theme may not be used in the final product. --- constants/hide_show_constants.asm | 1 + constants/map_constants.asm | 6 +++--- data/maps/headers/GarnetCavern1F.asm | 2 ++ data/maps/headers/GarnetCavernB1F.asm | 2 ++ data/maps/headers/GarnetCavernB2F.asm | 2 ++ data/maps/hide_show_data.asm | 5 ++++- data/maps/map_header_banks.asm | 6 +++--- data/maps/map_header_pointers.asm | 6 +++--- data/maps/objects/CitrineCity.asm | 1 + data/maps/objects/GarnetCavern1F.asm | 12 ++++++++++++ data/maps/objects/GarnetCavernB1F.asm | 11 +++++++++++ data/maps/objects/GarnetCavernB2F.asm | 11 +++++++++++ data/maps/objects/SilphCoElevator.asm | 4 ++-- data/maps/songs.asm | 6 +++--- data/maps/town_map_entries.asm | 1 - data/wild/grass_water.asm | 11 +++++++---- data/wild/maps/GarnetCavern1F.asm | 26 ++++++++++++++++++++++++++ data/wild/maps/GarnetCavernB1F.asm | 26 ++++++++++++++++++++++++++ data/wild/maps/GarnetCavernB2F.asm | 26 ++++++++++++++++++++++++++ main.asm | 3 ++- maps.asm | 15 +++++++++++++++ maps/CitrineCity.blk | 6 ++---- maps/GarnetCavern1F.blk | 3 +++ maps/GarnetCavernB1F.blk | 1 + maps/GarnetCavernB2F.blk | 1 + scan_includes.exe.stackdump | 10 +++++----- scripts/GarnetCavern1F.asm | 6 ++++++ scripts/GarnetCavernB1F.asm | 6 ++++++ scripts/GarnetCavernB2F.asm | 6 ++++++ text.asm | 3 +++ text/GarnetCavern1F.asm | 0 text/GarnetCavernB1F.asm | 0 text/GarnetCavernB2F.asm | 3 +++ 33 files changed, 198 insertions(+), 30 deletions(-) create mode 100644 data/maps/headers/GarnetCavern1F.asm create mode 100644 data/maps/headers/GarnetCavernB1F.asm create mode 100644 data/maps/headers/GarnetCavernB2F.asm create mode 100644 data/maps/objects/GarnetCavern1F.asm create mode 100644 data/maps/objects/GarnetCavernB1F.asm create mode 100644 data/maps/objects/GarnetCavernB2F.asm create mode 100644 data/wild/maps/GarnetCavern1F.asm create mode 100644 data/wild/maps/GarnetCavernB1F.asm create mode 100644 data/wild/maps/GarnetCavernB2F.asm create mode 100644 maps/GarnetCavern1F.blk create mode 100644 maps/GarnetCavernB1F.blk create mode 100644 maps/GarnetCavernB2F.blk create mode 100644 scripts/GarnetCavern1F.asm create mode 100644 scripts/GarnetCavernB1F.asm create mode 100644 scripts/GarnetCavernB2F.asm create mode 100644 text/GarnetCavern1F.asm create mode 100644 text/GarnetCavernB1F.asm create mode 100644 text/GarnetCavernB2F.asm diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 44fef29d..8437c012 100644 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -261,4 +261,5 @@ DEF SHOW EQU $15 const HS_MT_MOON_CRATER_ITEM_9 ; F9 const HS_MT_MOON_CRATER_ITEM_10 ; FA const HS_MT_MOON_CRATER_ITEM_11 ; FB + ;const HS_GARNET_CAVERN_MOLTRES_G ; FC DEF NUM_HS_OBJECTS EQU const_value diff --git a/constants/map_constants.asm b/constants/map_constants.asm index ecb1930b..4acb8447 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -225,8 +225,8 @@ DEF FIRST_INDOOR_MAP EQU const_value map_const ROCKET_HIDEOUT_B4F, 15, 12 ; $CB - Currently unused map_const ROCKET_HIDEOUT_ELEVATOR, 3, 4 ; $CC - Currently unused map_const CITRINE_MART, 4, 4 ; $CD - was UNUSED_MAP_CC - map_const UNUSED_MAP_CD, 0, 0 ; $CE - Unused - map_const UNUSED_MAP_CE, 0, 0 ; $CF - Unused + map_const GARNET_CAVERN_1F, 15, 9 ; $CE - was UNUSED_MAP_CD + map_const GARNET_CAVERN_B1F, 15, 9 ; $CF - was UNUSED_MAP_CE map_const SILPH_CO_2F, 15, 9 ; $D0 map_const SILPH_CO_3F, 15, 9 ; $D1 map_const SILPH_CO_4F, 15, 9 ; $D2 @@ -257,7 +257,7 @@ DEF FIRST_INDOOR_MAP EQU const_value map_const SILPH_CO_10F, 8, 9 ; $EB map_const SILPH_CO_11F, 9, 9 ; $EC map_const SILPH_CO_ELEVATOR, 2, 2 ; $ED - map_const UNUSED_MAP_ED, 0, 0 ; $EE - Unused + map_const GARNET_CAVERN_B2F, 15, 9 ; $EE - was UNUSED_MAP_ED map_const UNDERWATER_TUNNEL, 15, 9 ; $EF - Was UNUSED_MAP_EE map_const TRADE_CENTER, 5, 4 ; $F0 map_const COLOSSEUM, 5, 4 ; $F1 diff --git a/data/maps/headers/GarnetCavern1F.asm b/data/maps/headers/GarnetCavern1F.asm new file mode 100644 index 00000000..df3e4332 --- /dev/null +++ b/data/maps/headers/GarnetCavern1F.asm @@ -0,0 +1,2 @@ + map_header GarnetCavern1F, GARNET_CAVERN_1F, CAVERN, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/headers/GarnetCavernB1F.asm b/data/maps/headers/GarnetCavernB1F.asm new file mode 100644 index 00000000..1ec2abeb --- /dev/null +++ b/data/maps/headers/GarnetCavernB1F.asm @@ -0,0 +1,2 @@ + map_header GarnetCavernB1F, GARNET_CAVERN_B1F, CAVERN, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/headers/GarnetCavernB2F.asm b/data/maps/headers/GarnetCavernB2F.asm new file mode 100644 index 00000000..53f1b31b --- /dev/null +++ b/data/maps/headers/GarnetCavernB2F.asm @@ -0,0 +1,2 @@ + map_header GarnetCavernB2F, GARNET_CAVERN_B2F, CAVERN, 0 + end_map_header \ No newline at end of file diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm index 2c33f485..cfc96f48 100644 --- a/data/maps/hide_show_data.asm +++ b/data/maps/hide_show_data.asm @@ -241,7 +241,7 @@ MapHSPointers: dw SilphCo10FHS dw SilphCo11FHS dw NoHS - dw NoHS + dw GarnetCavernB2FHS dw UnderwaterTunnelHS dw NoHS dw NoHS @@ -598,6 +598,9 @@ MtMoonCraterHS: db MT_MOON_CRATER, $0A, SHOW ; HS_MT_MOON_CRATER_ITEM_10 db MT_MOON_CRATER, $0B, SHOW ; HS_MT_MOON_CRATER_ITEM_11 +GarnetCavernB2FHS: + ; db GARNET_CAVE_B2F, $01, HIDE ; Moltres + db $FF, $01, SHOW ; end assert_table_length NUM_HS_OBJECTS + 1 diff --git a/data/maps/map_header_banks.asm b/data/maps/map_header_banks.asm index d6e844f8..30776c56 100644 --- a/data/maps/map_header_banks.asm +++ b/data/maps/map_header_banks.asm @@ -207,8 +207,8 @@ MapHeaderBanks:: db BANK(RocketHideoutB4F_h) db BANK(RocketHideoutElevator_h) db BANK(CitrineMart_h) ; was UNUSED_MAP_CC - db $01 ; UNUSED_MAP_CD - db $01 ; UNUSED_MAP_CE + db BANK(GarnetCavern1F_h) ; was UNUSED_MAP_CD + db BANK(GarnetCavernB1F_h) ; was UNUSED_MAP_CE db BANK(SilphCo2F_h) db BANK(SilphCo3F_h) db BANK(SilphCo4F_h) @@ -239,7 +239,7 @@ MapHeaderBanks:: db BANK(SilphCo10F_h) db BANK(SilphCo11F_h) db BANK(SilphCoElevator_h) - db $11 ; UNUSED_MAP_ED + db BANK(GarnetCavernB2F_h) ; was UNUSED_MAP_ED db BANK(UnderwaterTunnel_h) ; UNUSED_MAP_EE db BANK(TradeCenter_h) db BANK(Colosseum_h) diff --git a/data/maps/map_header_pointers.asm b/data/maps/map_header_pointers.asm index 009469cc..4ae1a015 100644 --- a/data/maps/map_header_pointers.asm +++ b/data/maps/map_header_pointers.asm @@ -207,8 +207,8 @@ MapHeaderPointers:: dw RocketHideoutB4F_h dw RocketHideoutElevator_h dw CitrineMart_h ; UNUSED_MAP_CC - dw RocketHideoutElevator_h ; UNUSED_MAP_CD, used hideout elevator - dw RocketHideoutElevator_h ; UNUSED_MAP_CE + dw GarnetCavern1F_h ; UNUSED_MAP_CD, used hideout elevator + dw GarnetCavernB1F_h ; UNUSED_MAP_CE, used hideout elevator dw SilphCo2F_h dw SilphCo3F_h dw SilphCo4F_h @@ -239,7 +239,7 @@ MapHeaderPointers:: dw SilphCo10F_h dw SilphCo11F_h dw SilphCoElevator_h - dw SilphCo2F_h ; UNUSED_MAP_ED + dw GarnetCavernB2F_h ; UNUSED_MAP_ED, used silph 2f dw UnderwaterTunnel_h ; UNUSED_MAP_EE dw TradeCenter_h dw Colosseum_h diff --git a/data/maps/objects/CitrineCity.asm b/data/maps/objects/CitrineCity.asm index 0f21546d..dec97776 100644 --- a/data/maps/objects/CitrineCity.asm +++ b/data/maps/objects/CitrineCity.asm @@ -6,6 +6,7 @@ CitrineCity_Object: warp_event 9, 17, CITRINE_TRADEBACK_HOUSE, 1 warp_event 15, 17, CITRINE_POKECENTER, 1 warp_event 15, 27, CITRINE_MART, 1 + warp_event 22, 5, GARNET_CAVERN_1F, 1 def_bg_events diff --git a/data/maps/objects/GarnetCavern1F.asm b/data/maps/objects/GarnetCavern1F.asm new file mode 100644 index 00000000..dcf34b66 --- /dev/null +++ b/data/maps/objects/GarnetCavern1F.asm @@ -0,0 +1,12 @@ +GarnetCavern1F_Object: + db $03 ; border block + + def_warp_events + warp_event 24, 17, CITRINE_CITY, 5 + warp_event 25, 17, CITRINE_CITY, 5 + + def_bg_events + + def_object_events + + def_warps_to GARNET_CAVERN_1F diff --git a/data/maps/objects/GarnetCavernB1F.asm b/data/maps/objects/GarnetCavernB1F.asm new file mode 100644 index 00000000..db9da488 --- /dev/null +++ b/data/maps/objects/GarnetCavernB1F.asm @@ -0,0 +1,11 @@ +GarnetCavernB1F_Object: + db $03 ; border block + + def_warp_events + warp_event 4, 11, CITRINE_CITY, 1 + + def_bg_events + + def_object_events + + def_warps_to GARNET_CAVERN_B1F diff --git a/data/maps/objects/GarnetCavernB2F.asm b/data/maps/objects/GarnetCavernB2F.asm new file mode 100644 index 00000000..fc109acf --- /dev/null +++ b/data/maps/objects/GarnetCavernB2F.asm @@ -0,0 +1,11 @@ +GarnetCavernB2F_Object: + db $03 ; border block + + def_warp_events + warp_event 4, 11, CITRINE_CITY, 1 + + def_bg_events + + def_object_events + + def_warps_to GARNET_CAVERN_B2F diff --git a/data/maps/objects/SilphCoElevator.asm b/data/maps/objects/SilphCoElevator.asm index 1451fccd..119be284 100644 --- a/data/maps/objects/SilphCoElevator.asm +++ b/data/maps/objects/SilphCoElevator.asm @@ -2,8 +2,8 @@ SilphCoElevator_Object: db $f ; border block def_warp_events - warp_event 1, 3, UNUSED_MAP_ED, 1 - warp_event 2, 3, UNUSED_MAP_ED, 1 + ;warp_event 1, 3, UNUSED_MAP_ED, 1 + ;warp_event 2, 3, UNUSED_MAP_ED, 1 def_bg_events bg_event 3, 0, 1 ; SilphCoElevatorText1 diff --git a/data/maps/songs.asm b/data/maps/songs.asm index 8e74a217..1e4d0cd0 100644 --- a/data/maps/songs.asm +++ b/data/maps/songs.asm @@ -206,8 +206,8 @@ MapSongBanks:: db MUSIC_DUNGEON1, 0 ; ROCKET_HIDEOUT_B4F db MUSIC_DUNGEON1, 0 ; ROCKET_HIDEOUT_ELEVATOR db MUSIC_POKECENTER, 0 ; CITRINE_MART, was UNUSED_MAP_CC - db MUSIC_DUNGEON1, 0 ; UNUSED_MAP_CD - db MUSIC_DUNGEON1, 0 ; UNUSED_MAP_CE + db MUSIC_DUNGEON3, 0 ; GARNET_CAVERN_1F, was UNUSED_MAP_CD + db MUSIC_DUNGEON3, 0 ; GARNET_CAVERN_B2F, was UNUSED_MAP_CE db MUSIC_SILPH_CO, 0 ; SILPH_CO_2F db MUSIC_SILPH_CO, 0 ; SILPH_CO_3F db MUSIC_SILPH_CO, 0 ; SILPH_CO_4F @@ -238,7 +238,7 @@ MapSongBanks:: db MUSIC_SILPH_CO, 0 ; SILPH_CO_10F db MUSIC_SILPH_CO, 0 ; SILPH_CO_11F db MUSIC_SILPH_CO, 0 ; SILPH_CO_ELEVATOR - db MUSIC_SILPH_CO, 0 ; UNUSED_MAP_ED + db MUSIC_DUNGEON3, 0 ; GARNET_CAVERN_B2F, was UNUSED_MAP_ED db MUSIC_DUNGEON2, 0 ; UNUSED_MAP_EE / Underwater Tunnel db MUSIC_CELADON, 0 ; TRADE_CENTER db MUSIC_CELADON, 0 ; COLOSSEUM diff --git a/data/maps/town_map_entries.asm b/data/maps/town_map_entries.asm index 43fc531d..738b8a49 100644 --- a/data/maps/town_map_entries.asm +++ b/data/maps/town_map_entries.asm @@ -112,7 +112,6 @@ InternalMapEntries: internal_map DIGLETTS_CAVE, 3, 4, DiglettsCaveName internal_map VICTORY_ROAD_3F, 0, 4, VictoryRoadName internal_map ROCKET_HIDEOUT_B1F, 7, 5, RocketHQName - internal_map UNUSED_MAP_CE, 7, 10, CitrineCityName internal_map SILPH_CO_8F, 10, 5, SilphCoName internal_map POKEMON_MANSION_B1F, 2, 15, PokemonMansionName internal_map SAFARI_ZONE_NORTH_REST_HOUSE, 8, 12, SafariZoneName diff --git a/data/wild/grass_water.asm b/data/wild/grass_water.asm index dd048afe..ffae10e9 100644 --- a/data/wild/grass_water.asm +++ b/data/wild/grass_water.asm @@ -206,8 +206,8 @@ WildDataPointers: dw NothingWildMons dw NothingWildMons dw NothingWildMons - dw NothingWildMons - dw NothingWildMons + dw GarnetCavern1FWildMons + dw GarnetCavernB1FWildMons dw NothingWildMons dw NothingWildMons dw NothingWildMons @@ -238,7 +238,7 @@ WildDataPointers: dw NothingWildMons dw NothingWildMons dw NothingWildMons - dw NothingWildMons + dw GarnetCavernB2FWildMons dw UnderwaterTunnelWildMons dw NothingWildMons dw NothingWildMons @@ -334,4 +334,7 @@ INCLUDE "data/wild/maps/MtMoonCrater.asm" INCLUDE "data/wild/maps/UnderwaterTunnel.asm" INCLUDE "data/wild/maps/BillsGarden.asm" INCLUDE "data/wild/maps/CelesteHill.asm" -INCLUDE "data/wild/maps/BrunswickTrail.asm" \ No newline at end of file +INCLUDE "data/wild/maps/BrunswickTrail.asm" +INCLUDE "data/wild/maps/GarnetCavern1F.asm" +INCLUDE "data/wild/maps/GarnetCavernB1F.asm" +INCLUDE "data/wild/maps/GarnetCavernB2F.asm" diff --git a/data/wild/maps/GarnetCavern1F.asm b/data/wild/maps/GarnetCavern1F.asm new file mode 100644 index 00000000..7d041bcf --- /dev/null +++ b/data/wild/maps/GarnetCavern1F.asm @@ -0,0 +1,26 @@ +GarnetCavern1FWildMons: + def_grass_wildmons 5 ; encounter rate + db 46, GOLBAT + db 46, HYPNO + db 46, MAGNETON + db 49, DODRIO + db 49, VENOMOTH + db 52, ARBOK + db 49, KADABRA + db 52, PARASECT + db 53, RAICHU + db 53, CLEFAIRY + end_grass_wildmons + + def_water_wildmons 5 ; encounter rate + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + end_water_wildmons diff --git a/data/wild/maps/GarnetCavernB1F.asm b/data/wild/maps/GarnetCavernB1F.asm new file mode 100644 index 00000000..ee96d502 --- /dev/null +++ b/data/wild/maps/GarnetCavernB1F.asm @@ -0,0 +1,26 @@ +GarnetCavernB1FWildMons: + def_grass_wildmons 5 ; encounter rate + db 46, GOLBAT + db 46, HYPNO + db 46, MAGNETON + db 49, DODRIO + db 49, VENOMOTH + db 52, ARBOK + db 49, KADABRA + db 52, PARASECT + db 53, RAICHU + db 53, CLEFAIRY + end_grass_wildmons + + def_water_wildmons 5 ; encounter rate + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + end_water_wildmons diff --git a/data/wild/maps/GarnetCavernB2F.asm b/data/wild/maps/GarnetCavernB2F.asm new file mode 100644 index 00000000..bd0d88b4 --- /dev/null +++ b/data/wild/maps/GarnetCavernB2F.asm @@ -0,0 +1,26 @@ +GarnetCavernB2FWildMons: + def_grass_wildmons 5 ; encounter rate + db 46, GOLBAT + db 46, HYPNO + db 46, MAGNETON + db 49, DODRIO + db 49, VENOMOTH + db 52, ARBOK + db 49, KADABRA + db 52, PARASECT + db 53, RAICHU + db 53, CLEFAIRY + end_grass_wildmons + + def_water_wildmons 5 ; encounter rate + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + db 60, SKIMPER + end_water_wildmons diff --git a/main.asm b/main.asm index 73332f4f..4b8efa1a 100644 --- a/main.asm +++ b/main.asm @@ -51,7 +51,6 @@ INCLUDE "engine/overworld/daycare_exp.asm" INCLUDE "data/maps/hide_show_data.asm" INCLUDE "engine/overworld/field_move_messages.asm" INCLUDE "engine/items/inventory.asm" -INCLUDE "engine/overworld/wild_mons.asm" INCLUDE "engine/items/item_effects.asm" INCLUDE "engine/menus/draw_badges.asm" INCLUDE "engine/overworld/update_map.asm" @@ -73,6 +72,8 @@ INCLUDE "engine/events/hidden_objects/elevator.asm" INCLUDE "engine/events/hidden_objects/town_map.asm" INCLUDE "engine/events/hidden_objects/pokemon_stuff.asm" +SECTION "bank3 Spillover", ROMX +INCLUDE "engine/overworld/wild_mons.asm" SECTION "Font Graphics", ROMX diff --git a/maps.asm b/maps.asm index d1689917..2033bd00 100644 --- a/maps.asm +++ b/maps.asm @@ -1345,3 +1345,18 @@ INCLUDE "data/maps/headers/CitrineMart.asm" INCLUDE "scripts/CitrineMart.asm" INCLUDE "data/maps/objects/CitrineMart.asm" CitrineMart_Blocks: INCBIN "maps/CitrineMart.blk" + +INCLUDE "data/maps/headers/GarnetCavern1F.asm" +INCLUDE "scripts/GarnetCavern1F.asm" +INCLUDE "data/maps/objects/GarnetCavern1F.asm" +GarnetCavern1F_Blocks: INCBIN "maps/GarnetCavern1F.blk" + +INCLUDE "data/maps/headers/GarnetCavernB1F.asm" +INCLUDE "scripts/GarnetCavernB1F.asm" +INCLUDE "data/maps/objects/GarnetCavernB1F.asm" +GarnetCavernB1F_Blocks: INCBIN "maps/GarnetCavernB1F.blk" + +INCLUDE "data/maps/headers/GarnetCavernB2F.asm" +INCLUDE "scripts/GarnetCavernB2F.asm" +INCLUDE "data/maps/objects/GarnetCavernB2F.asm" +GarnetCavernB2F_Blocks: INCBIN "maps/GarnetCavernB2F.blk" diff --git a/maps/CitrineCity.blk b/maps/CitrineCity.blk index 947ebb78..dcc4328e 100644 --- a/maps/CitrineCity.blk +++ b/maps/CitrineCity.blk @@ -1,9 +1,7 @@ -G>>>>hi(,,)>>>>gFCCZ[(,,)CCC>>>hi(,,)>>>>gFCCZ[(,,)CCC