The Great Constant Compression of June 2023

This is a large-scale compression of KEP's current hide/show constants. RBY's works extremely oddly and is limited to 256 entries.

The problem with how RBY's hide/show stuff works, is that even though there are tons of unused constants, you...can't actually remove them. The constant list is tied to the hide/show data entries, so if you replace it with something else, well, now you just have two objects tied to the same constant. If you made the Route 2 item a boss, and someone picked up the item on Route 2, the boss would also disappear, and vice versa. So, we have to get creative.

I have reduced what we have to 248, but I think I miscounted when doing the funny list somewhere in the actual list when making sure the hex stuff is ok. Either that, or there's an error somewhere that Martha will, by some obscene miracle of humanity, discover. Anyway, this was achieved by turning multiple current overworld items into hidden ones, keeping them in the game whilst keeping to that all-important limit.

I also removed the items in Pokemon Tower 4F for this, just needed a little boost. Well, as you can see by the number, I technically didn't, I just miscounted like 20 times. Look, it's 10:11 PM, my stomach is in pain from an insane injection, and I don't even know if that map will come back, cut me some slack. Or add it back. You definitely can.
This commit is contained in:
Llinos Evans 2023-06-27 22:17:07 +01:00
parent 262c862a76
commit 83483f035b
13 changed files with 212 additions and 240 deletions

View file

@ -57,4 +57,9 @@ HiddenItemCoords:
hidden_item VERMILION_CITY, 14, 11
hidden_item CERULEAN_CITY, 15, 8
hidden_item ROUTE_4, 40, 3
hidden_item VERMILION_DOCK, 21, 0 ; Old Sea Map
hidden_item MT_MOON_CRATER, 17, 20 ; Heart Stone
hidden_item MT_MOON_CRATER, 20, 20 ; Poison Stone
hidden_item MT_MOON_CRATER, 20, 17 ; Black Augurite
hidden_item MT_MOON_CRATER, 32, 45 ; Old Amber
db -1 ; end

View file

@ -86,6 +86,8 @@ HiddenObjectMaps:
db CELADON_UNIVERSITY_POKECENTER
db CITRINE_POKECENTER
db BATTLE_TENT
db VERMILION_DOCK
db MT_MOON_CRATER
db -1 ; end
HiddenObjectPointers:
@ -177,6 +179,8 @@ HiddenObjectPointers:
dw CeladonUniversityPokecenterHiddenObjects
dw CitrinePokecenterHiddenObjects
dw BattleTentHiddenObjects
dw VermilionDockHiddenObjects
dw MtMoonCraterHiddenObjects
MACRO hidden_object
db \2 ; y coord
@ -640,3 +644,14 @@ Route4HiddenObjects:
BattleTentHiddenObjects:
hidden_object 9, 16, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1
VermilionDockHiddenObjects:
hidden_object 21, 0, OLD_SEA_MAP, HiddenItems
db -1
MtMoonCraterHiddenObjects:
hidden_object 17, 20, HEART_STONE, HiddenItems
hidden_object 20, 20, POISON_STONE, HiddenItems
hidden_object 20, 17, BLK_AUGURITE, HiddenItems
hidden_object 32, 45, OLD_AMBER, HiddenItems
db -1

View file

@ -75,7 +75,7 @@ MapHSPointers:
dw NoHS
dw NoHS
dw NoHS
dw ViridianPreGymHS
dw NoHS
dw NoHS
dw NoHS
dw NoHS
@ -100,7 +100,7 @@ MapHSPointers:
dw NoHS
dw NoHS
dw NoHS
dw VermilionDockHS
dw NoHS
dw NoHS
dw SSAnne2FHS
dw NoHS
@ -152,7 +152,7 @@ MapHSPointers:
dw PokemonTower2FHS
dw BrunswickGrottoHS ; Brunswick Grotto
;dw PokemonTower3FHS
dw PokemonTower4FHS
dw NoHS ; Pokemon Tower 4F, removed for constant space
dw PokemonTower5FHS
dw PokemonTower6FHS
dw PokemonTower7FHS
@ -357,10 +357,10 @@ BrunswickGrottoHS:
db BRUNSWICK_GROTTO, $01, SHOW ; HS_BRUNSWICK_ZAPDOS_G_2
;PokemonTower3FHS:
; db POKEMON_TOWER_3F, $04, SHOW ; HS_POKEMON_TOWER_3F_ITEM
PokemonTower4FHS:
db POKEMON_TOWER_4F, $04, SHOW ; HS_POKEMON_TOWER_4F_ITEM_1
db POKEMON_TOWER_4F, $05, SHOW ; HS_POKEMON_TOWER_4F_ITEM_2
db POKEMON_TOWER_4F, $06, SHOW ; HS_POKEMON_TOWER_4F_ITEM_3
;PokemonTower4FHS:
; db POKEMON_TOWER_4F, $04, SHOW ; HS_POKEMON_TOWER_4F_ITEM_1
; db POKEMON_TOWER_4F, $05, SHOW ; HS_POKEMON_TOWER_4F_ITEM_2
; db POKEMON_TOWER_4F, $06, SHOW ; HS_POKEMON_TOWER_4F_ITEM_3
PokemonTower5FHS:
db POKEMON_TOWER_5F, $06, SHOW ; HS_POKEMON_TOWER_5F_ITEM
PokemonTower6FHS:
@ -518,7 +518,6 @@ SilphCo10FHS:
db SILPH_CO_10F, $03, SHOW ; HS_SILPH_CO_10F_3
db SILPH_CO_10F, $04, SHOW ; HS_SILPH_CO_10F_ITEM_1
db SILPH_CO_10F, $05, SHOW ; HS_SILPH_CO_10F_ITEM_2
db SILPH_CO_10F, $06, SHOW ; HS_SILPH_CO_10F_ITEM_3
SilphCo11FHS:
db SILPH_CO_11F, $03, SHOW ; HS_SILPH_CO_11F_1
db SILPH_CO_11F, $04, SHOW ; HS_SILPH_CO_11F_2
@ -586,8 +585,6 @@ SeafoamIslandsB4FHS:
db SEAFOAM_ISLANDS_B4F, $01, HIDE ; HS_SEAFOAM_ISLANDS_B4F_BOULDER_1
db SEAFOAM_ISLANDS_B4F, $02, HIDE ; HS_SEAFOAM_ISLANDS_B4F_BOULDER_2
db SEAFOAM_ISLANDS_B4F, $03, SHOW ; HS_ARTICUNO
VermilionDockHS:
db VERMILION_DOCK, $01, SHOW ; HS_OLD_SEA_MAP
FarawayIslandInsideHS:
db FARAWAY_ISLAND_INSIDE, $01, SHOW ; HS_MEW
PokemonMansionB2FHS:
@ -595,19 +592,11 @@ PokemonMansionB2FHS:
db POKEMON_MANSION_B2F, $04, SHOW ; HS_POKEMON_MANSION_B2F_ITEM_2
Route1HS:
db ROUTE_1, $03, HIDE ; HS_ROUTE_1_OAK
ViridianPreGymHS:
db VIRIDIAN_PRE_GYM, $01, SHOW ; HS_YUJIROU
db VIRIDIAN_PRE_GYM, $02, HIDE ; HS_YUJIROU_REMATCH
MtMoonCraterHS:
db MT_MOON_CRATER, $01, SHOW ; HS_MT_MOON_CRATER_ITEM_1
db MT_MOON_CRATER, $02, SHOW ; HS_MT_MOON_CRATER_ITEM_2
db MT_MOON_CRATER, $03, SHOW ; HS_MT_MOON_CRATER_ITEM_3
db MT_MOON_CRATER, $04, SHOW ; HS_MT_MOON_CRATER_ITEM_4
db MT_MOON_CRATER, $05, SHOW ; HS_MT_MOON_CRATER_ITEM_5
db MT_MOON_CRATER, $06, SHOW ; HS_MT_MOON_CRATER_ITEM_6
db MT_MOON_CRATER, $07, SHOW ; HS_MT_MOON_CRATER_ITEM_7
db MT_MOON_CRATER, $08, SHOW ; HS_MT_MOON_CRATER_ITEM_8
db MT_MOON_CRATER, $09, SHOW ; HS_MT_MOON_CRATER_ITEM_9
GiovannisRoomHS:
db GIOVANNIS_ROOM, $05, SHOW ; HS_GIOVANNIS_ROOM_ITEM_1
db GIOVANNIS_ROOM, $06, SHOW ; HS_GIOVANNIS_ROOM_ITEM_2
@ -618,5 +607,4 @@ RockTunnelB1FHS:
db ROCK_TUNNEL_B1F, $0D, SHOW ; HS_ROCK_TUNNEL_B1F_WING
MtMoonSquareHS:
db MT_MOON_SQUARE, $04, SHOW ; HS_MT_MOON_CRATER_GUARD
db $FF, $01, SHOW ; end
assert_table_length NUM_HS_OBJECTS + 1

View file

@ -8,14 +8,9 @@ MtMoonCrater_Object:
def_bg_events
def_object_events
object_event 20, 17, SPRITE_POKE_BALL, STAY, NONE, 1, BLK_AUGURITE
object_event 33, 17, SPRITE_FOSSIL, STAY, NONE, 2, DOME_FOSSIL
object_event 25, 21, SPRITE_FOSSIL, STAY, NONE, 3, WING_FOSSIL
object_event 33, 16, SPRITE_FOSSIL, STAY, NONE, 4, HELIX_FOSSIL
object_event 45, 24, SPRITE_POKE_BALL, STAY, NONE, 5, MAX_ETHER
object_event 44, 17, SPRITE_POKE_BALL, STAY, NONE, 6, MAX_REVIVE
object_event 17, 20, SPRITE_POKE_BALL, STAY, NONE, 7, HEART_STONE
object_event 20, 20, SPRITE_POKE_BALL, STAY, NONE, 8, POISON_STONE
object_event 32, 45, SPRITE_POKE_BALL, STAY, NONE, 9, MAX_ETHER
object_event 33, 17, SPRITE_FOSSIL, STAY, NONE, 1, DOME_FOSSIL
object_event 25, 21, SPRITE_FOSSIL, STAY, NONE, 2, WING_FOSSIL
object_event 33, 16, SPRITE_FOSSIL, STAY, NONE, 3, HELIX_FOSSIL
object_event 45, 24, SPRITE_POKE_BALL, STAY, NONE, 4, MAX_ETHER
def_warps_to MT_MOON_CRATER

View file

@ -11,8 +11,8 @@ PokemonTower4F_Object:
object_event 5, 10, SPRITE_CHANNELER, STAY, RIGHT, 1, OPP_CHANNELER, 9
object_event 15, 7, SPRITE_CHANNELER, STAY, DOWN, 2, OPP_CHANNELER, 10
object_event 14, 12, SPRITE_CHANNELER, STAY, LEFT, 3, OPP_CHANNELER, 12
object_event 12, 10, SPRITE_POKE_BALL, STAY, NONE, 4, ELIXER
object_event 9, 10, SPRITE_POKE_BALL, STAY, NONE, 5, AWAKENING
object_event 12, 16, SPRITE_POKE_BALL, STAY, NONE, 6, HP_UP
; object_event 12, 10, SPRITE_POKE_BALL, STAY, NONE, 4, ELIXER
; object_event 9, 10, SPRITE_POKE_BALL, STAY, NONE, 5, AWAKENING
; object_event 12, 16, SPRITE_POKE_BALL, STAY, NONE, 6, HP_UP
def_warps_to POKEMON_TOWER_4F

View file

@ -8,6 +8,5 @@ VermilionDock_Object:
def_bg_events
def_object_events
object_event 22, 0, SPRITE_POKE_BALL, STAY, NONE, 2, OLD_SEA_MAP
def_warps_to VERMILION_DOCK