This page is for pointing out unused data or routines that were left over in the pokecrystal ROM. ([The Cutting Room Floor (TCRF)](https://tcrf.net/Pok%C3%A9mon_Crystal) has documented a lot more unused content, but some of it is incomplete leftovers: for example, the maps in [maps/unused/](../tree/master/maps/unused/), or text for unimplemented events like [data/text/unused_sweet_honey.asm](../blob/master/data/text/unused_sweet_honey.asm).) ## Contents - [The GS Ball and Celebi event](#the-gs-ball-and-celebi-event) - [NPC sprites](#npc-sprites) - [Pink overworld sprite color](#pink-overworld-sprite-color) - [Map environment for outdoor dungeons](#map-environment-for-outdoor-dungeons) - [Tile collision behavior (including water currents)](#tile-collision-behavior-including-water-currents) - [Held item effects to prevent status conditions](#held-item-effects-to-prevent-status-conditions) - [Experience growth rates](#experience-growth-rates) - [NPCs that trade for a male Pokémon](#npcs-that-trade-for-a-male-pokémon) ## The GS Ball and Celebi event The Japanese release of Pokémon Crystal had an entire event where you are given a GS Ball, show it to Kurt, and use it to encounter Celebi in Ilex Forest. This was entirely adapted and translated for the English version, but was never enabled until [the 3DS Virtual Console release](https://www.youtube.com/watch?v=Pye8e4bYgug). The initial script where you get the GS Ball is in [maps/GoldenrodPokecenter1F.asm](../blob/master/maps/GoldenrodPokecenter1F.asm). It calls `BattleTowerAction` with the parameter `BATTLETOWERACTION_CHECKMOBILEEVENT` and checks for the result `MOBILE_EVENT_OBJECT_GS_BALL`. You could just change this to a typical `checkevent` command, or do what the Virtual Console release did and enable the original check: ```asm EnableGSBallScene: ld a, BANK(sMobileEventIndex) call GetSRAMBank ld a, BATTLETOWERACTION_CHECKMOBILEEVENT ld [sMobileEventIndex], a jp CloseSRAM ``` Just put that in a map event script and instead of a typical `setevent` command, do `callasm EnableGSBallScene`. ## NPC sprites From [constants/sprite_constants.asm](../blob/master/constants/sprite_constants.asm): - `SPRITE_UNUSED_GUY`: An old balding man with a moustache. Does not have walking frame graphics. Maybe the Safari Zone Warden? - `SPRITE_OLD_LINK_RECEPTIONIST`: The Cable Club receptionist from RBY. Use them in [maps/\*.asm](../tree/master/maps/). ## Pink overworld sprite color From [constants/sprite_data_constants.asm](../blob/master/constants/sprite_data_constants.asm): - `PAL_NPC_PINK`: A counterpart to the other `PAL_NPC_*` constants. Pink looks very similar to red. The actual color can be changed in [gfx/overworld/npc_sprites.pal](../blob/master/gfx/overworld/npc_sprites.pal). ## Map environment for outdoor dungeons From [constants/map_data_constants.asm](../blob/master/constants/map_data_constants.asm): - `ENVIRONMENT_5`: An environment that seems neither outdoors nor indoors. You can't use Fly, Teleport, Dig, Escape Rope, or the Bicycle; and its colors change with the time of day, but unlike `TOWN` and `ROUTE` maps, they don't use the special outdoor water colors. Use it in [data/maps/maps.asm](../blob/master/data/maps/maps.asm). ## Tile collision behavior (including water currents) From [constants/collision_constants.asm](../blob/master/constants/collision_constants.asm): - `COLL_CURRENT_*`: Force the player to Surf `RIGHT`, `LEFT`, `UP`, or `DOWN`. Similar to the current tiles in RSE west of Pacifidlog Town. - `COLL_WALK_*` and `COLL_BRAKE`: Force the player to walk `RIGHT`, `LEFT`, `UP`, or `DOWN`, or to stop forced walking. Similar to the spinner tiles in RBY's Rocket Hideout, but without the spinning. - `COLL_HOP_UP`, `COLL_HOP_UP_RIGHT`, and `COLL_HOP_UP_LEFT`: Counterparts to the other `COLL_HOP_*` constants. Useful for upward-facing ledges. - `COLL_DOWN_WALL` and other `COLL_*_WALL`: Counterparts to `COLL_RIGHT_WALL`, `COLL_LEFT_WALL`, and `COLL_UP_WALL`. Blocks only specific edges from being walked across. `COLL_DOWN_WALL` is useful for placing above cave entrances in case the player can walk on top of cliffs with caves. - `COLL_*_BUOY`: Like `COLL_*_WALL` but for water. Use them in [data/tilesets/\*_collision.asm](../tree/master/data/tilesets/). ## Held item effects to prevent status conditions From [constants/item_data_constants.asm](../blob/master/constants/item_data_constants.asm): - `HELD_PREVENT_*`: For held items that prevent status conditions: `POISON`, `BURN`, `FREEZE`, `SLEEP`, `PARALYZE`, or `CONFUSE`. Use it in [data/items/attributes.asm](../blob/master/data/items/attributes.asm). ## Experience growth rates From [constants/pokemon_data_constants.asm](../blob/master/constants/pokemon_data_constants.asm): - `GROWTH_SLIGHTLY_FAST`: Needs 849,970 experience to reach level 100. - `GROWTH_SLIGHTLY_SLOW`: Needs 949,930 experience to reach level 100. Use them in [data/pokemon/base_stats/\*.asm](../tree/master/data/pokemon/base_stats/). ## NPCs that trade for a male Pokémon From [constants/npc_trade_constants.asm](../blob/master/constants/npc_trade_constants.asm): - `TRADE_GENDER_MALE`: A counterpart to `TRADE_GENDER_FEMALE`. Use it in [data/events/npc_trades.asm](../blob/master/data/events/npc_trades.asm).