MissingNo.

Missingno (けつばん Ketsuban) is a name shared by several glitch Pokémon in Pokémon Red, Blue, and Yellow. The name is most commonly used to refer to a /-type glitch Pokémon whose sprite consists of corrupted data or a / in Pokémon Yellow. It is arguably the most well-known glitch Pokémon in the game series.

In the early Pokémon video games, the programmers had to use variables to refer to different Pokémon by number. Variable sizes must be powers of two. The smallest variable they were able to use was the size of one byte -- that is, capable of holding any value from 0 to 255. (The next smallest size could only hold 0 to 127, which would not have been enough for all 151 Pokémon.) Because 255 is greater than 151, this left several unused "slots". MISSINGNO. and other glitch Pokémon fill these empty slots, with different forms of MISSINGNO. actually using several.

Unlike most glitch Pokémon, whose names consist of data cobbled together from random locations, MISSINGNO.'s name is clearly a deliberately-added abbreviation of "missing number". This would seem to imply that MISSINGNO. was deliberately inserted as a placeholder or a removed beta Pokémon, albeit one with several odd quirks. The fact that several copies of MISSINGNO. exist (with each consuming its own "slot") would seem to support this theory.

Typical characteristics
The MISSINGNO. most commonly encountered during glitches is a Normal/Bird-type Pokémon, whose sprite is a backwards letter "L"-shaped chunk of "fuzz". Bird is a beta type that was left in the game; it functions identically to Normal. The sprite results from the game treating non-graphical data as an image. This form of MISSINGNO. almost always knows Sky Attack and Water Gun; of particular note is the fact that it knows two Water Guns.

Other forms of MISSINGNO. use the fossilized Aerodactyl and Kabutops sprites from the Pewter City museum. The fourth form uses the sprite shown when one encounters a Ghost Pokémon in the Pokemon Tower without having the Silph Scope. These are actually separate glitch Pokémon that share a name; they can be distinguished both by their sprite and by their differing characteristics. "Fuzz" MISSINGNO., for example, uses a fixed moveset, whereas the fossil MISSINGNO.s' moves and stats change depending on the last Pokémon in one's party (among other things). The fossil MISSINGNO.s also tend to turn into RHYDON upon capture, if a player hasn't yet viewed their (empty) Pokédex entries (by, of course, capturing them).

Though they are all distinct, all known MISSINGNO. forms have several properties in common. They all share the Pokédex number 000. Encountering MISSINGNO. will increase the quantity of the sixth item in a player's inventory to above 128. (This is because the bit used to keep track of whether MISSINGNO. has been caught is also part of the byte used to track the quantity of the sixth item in a player's inventory.)

The sprite MISSINGNO.s use in the party screen is composed of random 8-by-8-pixel tiles shown on-screen. This means that it is often composed of chunks of terrain and NPCs. Viewing a MISSINGNO.'s stats screen causes a similar scrambling effect: most, if not all, all in-battle Pokémon and Trainer sprites become scrambled. Viewing the stats of a normal Pokémon fixes the problem.

Encountering MISSINGNO.
There is a glitch (called the "Old Man trick") in Red, Green (Japan),and Blue that allows a player to battle nearly any Pokémon they wish, depending on the characters of their name. The player should start by viewing the Old Man's Pokémon catching tutorial in Viridian City. Immediately afterward, the player should Fly to Cinnabar Island and Surf on the east coast (the half-land half-sea tiles). They should not, at any point, swim onto a fully-water tile. Depending on the characters in the player's name, they may eventually encounter MISSINGNO.

This glitch works because of a programming oversight. When the Old Man's tutorial is displayed, the game needs to change the player's name to "OLD MAN", so that the in-game dialogue states that "OLD MAN threw a Poké Ball!". However, it would be rather unfortunate if the player's chosen name was permanently changed to "OLD MAN". Such a scenario is easily avoided, however; the game simply copies the player's chosen name to an area in memory that is not currently being used. After the tutorial, the name is copied back, replacing "OLD MAN".

Unfortunately, Game Boys do not possess a lot of free memory. In an effort to make the most of all available RAM, the game copies the player's name into the space used to keep track of what wild Pokémon can be seen in the current location. The programmers reasoned that such an action normally wouldn't cause any glitches because the correct data for wild Pokémon available is written to this area in memory whenever the player travels to an area where it is possible to catch wild Pokémon.

There was one critical mistake that the developers made, however. The Cinnabar Island map, like the maps of all cities in the game, does not contain any wild Pokémon data. However, the east coast tiles were coded to trigger wild Pokémon battles. The effect is that when the player travels from a city to Cinnabar Island directly, the wild Pokémon list is not rebuilt. This means that when sailing on Cinnabar's east coast, the player will encounter whatever wild Pokémon were available at the last area they were traveling in. (This is a useful trick for catching Safari Zone Pokémon; after exiting the Zone, fly immediately to Cinnabar and Surf on the east coast. You'll be able to battle Kangaskhans and the like on your own terms.)

However, when performing the Old Man Trick, the wild Pokémon data holds the player's name, rather than the wild Pokémon available at the last location the player explored. When a wild battle occurs on Cinnabar's east coast, the game will read the player's name as wild Pokémon. The effect is that the text characters in the player's name will determine the species and levels of wild Pokémon on the coast. Not all available text characters correspond to normal Pokémon, meaning that this glitch may be used to encounter glitch Pokémon, MISSINGNO., included.

This effect is relatively easy to exploit. The species are controlled by the third, fifth, and seventh characters of the player's name. The second, fourth, and sixth characters of the player's name determine the levels of wild Pokémon encountered via the Old Man Trick. The characters "w", "x", and "y" will yield the Kabutops, Aerodactyl, and Ghost forms of MISSINGNO., respectively.

Trivia

 * MISSINGNO.'s Japanese name (けつばん Ketsuban) means "missing number".
 * MISSINGNO. is the most well-known glitch Pokémon.
 * MISSINGNO. appeared in Let's Find Pokémon!
 * MISSINGNO. and M are the only Pokémon to have Normal as a secondary type.