Select glitches

Select glitches (Japanese: セレクトバグ, Select bugs) or Select button glitches describe glitches and their derivative tricks related to the Select button and its ability to swap entries in a list. All known Select glitches can only be found in and Pokémon Blue (Japanese). They were fixed in the Japanese version of Pokémon Yellow, as well as all localizations.

There are two branches of select glitches, 'closed menu Select glitches' (including swapping Pokémon and swapping moves), and 'special list Select glitches' (including swapping elevator entries and badge man entries).

Many glitch techniques can be performed by exploiting them, such as the dokokashira door glitch.

Closed menu Select sub-glitches
'Closed menu Select sub-glitches' are found in and Pokémon Blue (Japanese). The closed menu Select glitch itself involves the selection cursor remaining white (indicating that an option can be swapped with another option) after exiting the items menu or item storage system.

This glitch was partially fixed in "revision A" (or "v1.1") of Pokémon Red and Green. In the initial version of Red and Green ("v1.0"), it's possible to perform the closed menu Select glitch after exiting the items menu from within battle. In all other versions, Select must be pressed on an item from outside of battle.

"Select glitch" or "Select glitches" may also refer to individual exploit derived from the Select glitch, such as the dokokashira door glitch.

Shared steps

 * Enter the items screen and press select on an item.
 * Exit with B (from within battle, Red/Green v1.0 only) or B and B (from outside of battle).
 * Open the Pokémon menu or moves screen without opening the start menu.
 * The cursor position will be the same as before. Select a Pokémon with A or move with Select to swap it.

Swapping Pokémon
These select glitches involve having the cursor be white on the Pokémon screen. They cannot be performed by opening the Pokémon screen via the start menu, but can be performed by opening the Pokémon menu either through battle or a text box that brings it up (i.e. by talking to the Day Care man, talking to a trade NPC, or by talking to the Name Rater).

Examples include: dokokashira door glitch (Pokémon 2->Pokémon 1, or #No. of Pokémon +1->Pokémon 1*), second type glitch (item 13->any Pokémon), fossil conversion glitch (Pokémon 32->any Pokémon), item creation glitch (Pokémon 14->any Pokémon), etc.

(*): Note that though for the dokokashira door glitch swapping [number of Pokémon in the party +1] with the first Pokémon also 'works', the warping effects may not occur with more Pokémon, due to the game finding an FF terminator before decreasing the map destination ID, even though the effect of Professor Oak being outside of his lab can occur with six Pokémon. Additionally, the dokokashira door glitch does not work if the player has deposited party Pokémon before.

A large degree of memory corruption is possible through select glitches where the player swaps Pokémon, because of the size of the Pokémon data structure. Altering Pokémon past position 6 will alter unrelated data; because addresses for Pokémon data past position 6 are not valid here, and may also be used for non-Pokémon data.

Swapping moves
These select glitches involve having the cursor be white on the 'Fight' screen inside of battle. If the player swaps a non-existing move 2-4 (through item 2-4) with the first existing move, it is possible to get the hex:00 move. If the player uses an item position greater than 4, it is possible to 'trade' the index numbers between a move and an unrelated memory address greater than move 4's address.

For example, D136 reads Pokémon 1's move 4. D137 reads the Pokémon's Trainer ID byte 1 (which through extrapolation is 'move 5'). D136 may be (hex:0A) and D137 may be  (hex:39), (Trainer ID is between 14592-14847). In this example, swapping move 5 with move 4 would replace Scratch with Surf, in exchange for making Pokémon 1's Trainer ID byte 1 hex:0A (Trainer ID is between 02560-02815).

Unlike swapping Pokémon, only two bytes can be altered by swapping moves.

Examples: experience alteration glitch (7th/8th/9th move->any move), level altering glitch (26th move->any move), etc.

Mechanics
The memory address CC35 controls whether the cursor is white on an option, with a value of 00 meaning it isn't white on any option, and values of 01 and up meaning it is white on that entry number (e.g. hex:1A or dec:26 means that the cursor is highlighted white on option 26). In the Japanese versions, the developers didn't make it so that this address is reset back to 00 when the menu is closed.

In version 1.0 of Pokémon Red and Green, CC35 remains at the value it previously was when the items menu is closed from within battle too, but version 1.1 (or rev A) addressed this by resetting CC35 to 00 after closing the items menu from within battle.

When the player opens the Pokémon menu or items screen via the start menu, the value is reset back to 00, meaning that the glitch won't work through opening the start menu. However, CC35 stays at the value it was when the Pokémon screen is not opened through the start menu, or when a Pokémon's list of moves is accessed through battle.

The Japanese version of Pokémon Yellow and the localizations made it so that CC35 is reset back to 00 after closing the items menu with B, before the start menu is even closed.

Special list Select glitches
These glitches involve pressing Select in either a list of elevator destinations, or a list of badges from Cerulean City's badge describer. They can cause memory corruption, and can cause the list type to change. At least through the elevator glitch, it is possible to corrupt the player's name, party Pokémon and items.

To exploit a special list Select glitch, all the player has to do is press Select on an entry, and then press Select again on another, to 'swap it'.