Cinnabar Volcano floors

This adds a map for Cinnabar Volcano's floors in the run-up to Moltres. I used a S.S. Anne style compression technique here, having 4 floors on a decently sized map that are just far enough apart for a player to never actually see them. This maintains their suspension of disbelief while giving us way more space to work with. I want to compress a lot of RBY maps like this if push comes to shove - there's a lot of places where this is possible.

In the interests of compression, I started using the Agatha bank again, as I removed a lot of maps from there when making bank 22. There's some space for maps.

Also I made 3 more blocks for cavern which caused it to overflow the bank it was in - fixed that by swapping with PreGym, which is probably much smaller.

Cinnabar Volcano hasn't been changed yet in the interest of Martha finishing that bit up.
This commit is contained in:
Llinos Evans 2023-04-30 23:42:46 +01:00
parent 351b875e3b
commit b6dc6896c3
17 changed files with 69 additions and 10 deletions

View file

@ -99,7 +99,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
map_const CELESTE_HILL, 12, 12 ; $4D - Was copy of above & unused map_const CELESTE_HILL, 12, 12 ; $4D - Was copy of above & unused
map_const ROUTE_7_GATE, 3, 4 ; $4E map_const ROUTE_7_GATE, 3, 4 ; $4E
map_const UNDERGROUND_PATH_ROUTE_7, 4, 4 ; $4F map_const UNDERGROUND_PATH_ROUTE_7, 4, 4 ; $4F
map_const CITRINE_ROCKET_HOUSE, 5, 5 ; $50 - Unused, was UNDERGROUND_PATH_ROUTE_7_COPY map_const CITRINE_ROCKET_HOUSE, 5, 5 ; $50 - was UNDERGROUND_PATH_ROUTE_7_COPY
map_const ROUTE_8_GATE, 3, 4 ; $51 map_const ROUTE_8_GATE, 3, 4 ; $51
map_const UNDERGROUND_PATH_ROUTE_8, 4, 4 ; $52 map_const UNDERGROUND_PATH_ROUTE_8, 4, 4 ; $52
map_const ROCK_TUNNEL_POKECENTER, 7, 4 ; $53 map_const ROCK_TUNNEL_POKECENTER, 7, 4 ; $53
@ -185,7 +185,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
map_const SEAFOAM_ISLANDS_B3F, 15, 9 ; $A3 map_const SEAFOAM_ISLANDS_B3F, 15, 9 ; $A3
map_const SEAFOAM_ISLANDS_B4F, 15, 9 ; $A4 map_const SEAFOAM_ISLANDS_B4F, 15, 9 ; $A4
map_const CITRINE_TRADEBACK_HOUSE, 4, 4 ; $A5 - Was Vermillion Old Rod house map_const CITRINE_TRADEBACK_HOUSE, 4, 4 ; $A5 - Was Vermillion Old Rod house
map_const CITRINE_POKECENTER, 7, 4 ; $A6 - Was Fuschia Good Rod house map_const CITRINE_POKECENTER, 7, 4 ; $A6 - Was Fuschia Good Rod house
map_const POKEMON_MANSION_1F, 15, 14 ; $A7 map_const POKEMON_MANSION_1F, 15, 14 ; $A7
map_const CINNABAR_GYM, 10, 9 ; $A8 map_const CINNABAR_GYM, 10, 9 ; $A8
map_const CINNABAR_LAB, 9, 4 ; $A9 map_const CINNABAR_LAB, 9, 4 ; $A9
@ -257,7 +257,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
map_const SILPH_CO_10F, 8, 9 ; $EB map_const SILPH_CO_10F, 8, 9 ; $EB
map_const SILPH_CO_11F, 9, 9 ; $EC map_const SILPH_CO_11F, 9, 9 ; $EC
map_const SILPH_CO_ELEVATOR, 2, 2 ; $ED map_const SILPH_CO_ELEVATOR, 2, 2 ; $ED
map_const GARNET_CAVERN_2F, 15, 9 ; $EE - was UNUSED_MAP_ED map_const GARNET_CAVERN_2F, 15, 9 ; $EE - was UNUSED_MAP_ED
map_const UNDERWATER_TUNNEL, 15, 9 ; $EF - Was UNUSED_MAP_EE map_const UNDERWATER_TUNNEL, 15, 9 ; $EF - Was UNUSED_MAP_EE
map_const TRADE_CENTER, 5, 4 ; $F0 map_const TRADE_CENTER, 5, 4 ; $F0
map_const COLOSSEUM, 5, 4 ; $F1 map_const COLOSSEUM, 5, 4 ; $F1
@ -267,6 +267,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
map_const LORELEIS_ROOM, 5, 6 ; $F5 map_const LORELEIS_ROOM, 5, 6 ; $F5
map_const BRUNOS_ROOM, 5, 6 ; $F6 map_const BRUNOS_ROOM, 5, 6 ; $F6
map_const AGATHAS_ROOM, 5, 6 ; $F7 - Maps F8 - FE currently have no data, bear in mind we need room for everything in citrine map_const AGATHAS_ROOM, 5, 6 ; $F7 - Maps F8 - FE currently have no data, bear in mind we need room for everything in citrine
map_const CINNABAR_VOLCANO_FLOORS, 20, 20 ; $F8
DEF NUM_MAPS EQU const_value DEF NUM_MAPS EQU const_value
; Indoor maps, such as houses, use this as the Map ID in their exit warps ; Indoor maps, such as houses, use this as the Map ID in their exit warps

View file

@ -12,6 +12,7 @@ DungeonMaps1:
db POWER_PLANT db POWER_PLANT
db DIGLETTS_CAVE db DIGLETTS_CAVE
db UNDERWATER_TUNNEL db UNDERWATER_TUNNEL
db CINNABAR_VOLCANO_FLOORS
db -1 ; end db -1 ; end
; GetBattleTransitionID_IsDungeonMap checks if wCurMap ; GetBattleTransitionID_IsDungeonMap checks if wCurMap

View file

@ -0,0 +1,2 @@
map_header CinnabarVolcanoFloors, CINNABAR_VOLCANO_FLOORS, CAVERN, 0
end_map_header

View file

@ -251,6 +251,7 @@ MapHSPointers:
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS
assert_table_length NUM_MAPS assert_table_length NUM_MAPS
dw -1 ; end dw -1 ; end

View file

@ -249,4 +249,5 @@ MapHeaderBanks::
db BANK(LoreleisRoom_h) db BANK(LoreleisRoom_h)
db BANK(BrunosRoom_h) db BANK(BrunosRoom_h)
db BANK(AgathasRoom_h) db BANK(AgathasRoom_h)
db BANK(CinnabarVolcanoFloors_h)
assert_table_length NUM_MAPS assert_table_length NUM_MAPS

View file

@ -249,4 +249,5 @@ MapHeaderPointers::
dw LoreleisRoom_h dw LoreleisRoom_h
dw BrunosRoom_h dw BrunosRoom_h
dw AgathasRoom_h dw AgathasRoom_h
dw CinnabarVolcanoFloors_h
assert_table_length NUM_MAPS assert_table_length NUM_MAPS

View file

@ -2,12 +2,12 @@ CinnabarIsland_Object:
db $43 ; border block db $43 ; border block
def_warp_events def_warp_events
warp_event 6, 15, POKEMON_MANSION_1F, 2 warp_event 6, 15, POKEMON_MANSION_1F, 2
warp_event 20, 9, CINNABAR_GYM, 1 warp_event 20, 9, CINNABAR_GYM, 1
warp_event 6, 21, CINNABAR_LAB, 1 warp_event 6, 21, CINNABAR_LAB, 1
warp_event 15, 17, CINNABAR_POKECENTER, 1 warp_event 15, 17, CINNABAR_POKECENTER, 1
warp_event 21, 19, CINNABAR_MART, 1 warp_event 21, 19, CINNABAR_MART, 1
warp_event 14, 11, CINNABAR_VOLCANO, 1 warp_event 14, 11, CINNABAR_VOLCANO_FLOORS, 1
def_bg_events def_bg_events
bg_event 11, 15, 3 ; CinnabarIslandText3 bg_event 11, 15, 3 ; CinnabarIslandText3

View file

@ -0,0 +1,19 @@
CinnabarVolcanoFloors_Object:
db $03 ; border block
def_warp_events
warp_event 3, 15, LAST_MAP, 6
warp_event 2, 15, LAST_MAP, 6
warp_event 2, 2, CINNABAR_VOLCANO_FLOORS, 4
warp_event 25, 3, CINNABAR_VOLCANO_FLOORS, 5
warp_event 27, 12, CINNABAR_VOLCANO_FLOORS, 6
warp_event 25, 37, CINNABAR_VOLCANO_FLOORS, 7
warp_event 25, 25, CINNABAR_VOLCANO_FLOORS, 8
warp_event 3, 25, CINNABAR_VOLCANO_FLOORS, 9
warp_event 15, 25, CINNABAR_VOLCANO, 1
def_bg_events
def_object_events
def_warps_to CINNABAR_VOLCANO_FLOORS

View file

@ -248,4 +248,5 @@ MapSongBanks::
db MUSIC_GYM, 0 ; LORELEIS_ROOM db MUSIC_GYM, 0 ; LORELEIS_ROOM
db MUSIC_DUNGEON1, 0 ; BRUNOS_ROOM db MUSIC_DUNGEON1, 0 ; BRUNOS_ROOM
db MUSIC_POKEMON_TOWER, 0 ; AGATHAS_ROOM db MUSIC_POKEMON_TOWER, 0 ; AGATHAS_ROOM
db MUSIC_DUNGEON3, 0 ; CINNABAR_VOLCANO_FLOORS
assert_table_length NUM_MAPS assert_table_length NUM_MAPS

View file

@ -125,4 +125,5 @@ InternalMapEntries:
internal_map CELADON_UNIVERSITY_POKECENTER, 7, 4, CeladonUniversityName internal_map CELADON_UNIVERSITY_POKECENTER, 7, 4, CeladonUniversityName
internal_map BILLS_GARDEN, 12, 0, SeaCottageName internal_map BILLS_GARDEN, 12, 0, SeaCottageName
internal_map AGATHAS_ROOM, 0, 2, PokemonLeagueName internal_map AGATHAS_ROOM, 0, 2, PokemonLeagueName
internal_map CINNABAR_VOLCANO_FLOORS, 3, 14, CinnabarVolcanoName
db -1 ; end db -1 ; end

View file

@ -248,6 +248,7 @@ WildDataPointers:
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
dw CinnabarVolcanoFloorsWildMons
assert_table_length NUM_MAPS assert_table_length NUM_MAPS
dw -1 ; end dw -1 ; end
@ -338,3 +339,4 @@ INCLUDE "data/wild/maps/BrunswickTrail.asm"
INCLUDE "data/wild/maps/GarnetCavern1F.asm" INCLUDE "data/wild/maps/GarnetCavern1F.asm"
INCLUDE "data/wild/maps/GarnetCavernB1F.asm" INCLUDE "data/wild/maps/GarnetCavernB1F.asm"
INCLUDE "data/wild/maps/GarnetCavern2F.asm" INCLUDE "data/wild/maps/GarnetCavern2F.asm"
INCLUDE "data/wild/maps/CinnabarVolcanoFloors.asm"

View file

@ -0,0 +1,16 @@
CinnabarVolcanoFloorsWildMons:
def_grass_wildmons 10 ; encounter rate
db 37, VULPIX
db 38, PONYTA
db 37, GROWLITHE
db 37, PONYTA
db 38, GROWLITHE
db 41, RAPIDASH
db 33, CHARMANDER
db 38, MAGMAR
db 39, MAGMAR
db 40, CHARMELEON
end_grass_wildmons
def_water_wildmons 0 ; encounter rate
end_water_wildmons

Binary file not shown.

View file

@ -49,8 +49,8 @@ SECTION "Tilesets 3", ROMX
Cemetery_GFX:: INCBIN "gfx/tilesets/cemetery.2bpp" Cemetery_GFX:: INCBIN "gfx/tilesets/cemetery.2bpp"
Cemetery_Block:: INCBIN "gfx/blocksets/cemetery.bst" Cemetery_Block:: INCBIN "gfx/blocksets/cemetery.bst"
Cavern_GFX:: INCBIN "gfx/tilesets/cavern.2bpp" PreGym_GFX:: INCBIN "gfx/tilesets/pregym.2bpp" ; swapped as cavern grew too big
Cavern_Block:: INCBIN "gfx/blocksets/cavern.bst" PreGym_Block:: INCBIN "gfx/blocksets/pregym.bst"
Lobby_GFX:: INCBIN "gfx/tilesets/lobby.2bpp" Lobby_GFX:: INCBIN "gfx/tilesets/lobby.2bpp"
Lobby_Block:: INCBIN "gfx/blocksets/lobby.bst" Lobby_Block:: INCBIN "gfx/blocksets/lobby.bst"
Ship_GFX:: INCBIN "gfx/tilesets/ship.2bpp" Ship_GFX:: INCBIN "gfx/tilesets/ship.2bpp"
@ -63,8 +63,8 @@ Underground_GFX:: INCBIN "gfx/tilesets/underground.2bpp"
Underground_Block:: INCBIN "gfx/blocksets/underground.bst" Underground_Block:: INCBIN "gfx/blocksets/underground.bst"
SECTION "Tilesets 4", ROMX SECTION "Tilesets 4", ROMX
PreGym_GFX:: INCBIN "gfx/tilesets/pregym.2bpp" Cavern_GFX:: INCBIN "gfx/tilesets/cavern.2bpp"
PreGym_Block:: INCBIN "gfx/blocksets/pregym.bst" Cavern_Block:: INCBIN "gfx/blocksets/cavern.bst"
Citrine_GFX:: INCBIN "gfx/tilesets/citrine.2bpp" Citrine_GFX:: INCBIN "gfx/tilesets/citrine.2bpp"
Citrine_Block:: INCBIN "gfx/blocksets/citrine.bst" Citrine_Block:: INCBIN "gfx/blocksets/citrine.bst"

View file

@ -1250,6 +1250,11 @@ INCLUDE "scripts/AgathasRoom.asm"
INCLUDE "data/maps/objects/AgathasRoom.asm" INCLUDE "data/maps/objects/AgathasRoom.asm"
AgathasRoom_Blocks: INCBIN "maps/AgathasRoom.blk" AgathasRoom_Blocks: INCBIN "maps/AgathasRoom.blk"
INCLUDE "data/maps/headers/CinnabarVolcanoFloors.asm"
INCLUDE "scripts/CinnabarVolcanoFloors.asm"
INCLUDE "data/maps/objects/CinnabarVolcanoFloors.asm"
CinnabarVolcanoFloors_Blocks: INCBIN "maps/CinnabarVolcanoFloors.blk"
SECTION "Maps 22", ROMX ; Made this because the previous bank was filled to max. SECTION "Maps 22", ROMX ; Made this because the previous bank was filled to max.
INCLUDE "data/maps/headers/CeladonUniversityOutside.asm" INCLUDE "data/maps/headers/CeladonUniversityOutside.asm"

View file

@ -0,0 +1,2 @@
,€€€€€€€+,€€€€€€€+#bzx,
 i vvvvvvvvvvvvvvvvfvvvvvfvvvv)yv $jkkkkL ,€€€€€€€+,€€€€€€€+|< "€€€€+vvv<76>)vvvv-vvv<76>vvvv-v "vvvv--t<1A><><EFBFBD><EFBFBD>{h^=

View file

@ -0,0 +1,6 @@
CinnabarVolcanoFloors_Script:
jp EnableAutoTextBoxDrawing
CinnabarVolcanoFloors_TextPointers:
text_end ; unused