1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
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, MOBILE_EVENT_OBJECT_GS_BALL
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).
|