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 Normal/Bird-type glitch Pokémon whose sprite consists of corrupted data. It is arguably the most well known glitch Pokémon in the 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.

Compared to most glitch Pokémon, MISSINGNO.s are actually very ordinary. Unlike most glitch Pokemon, 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 Pokemon, albeit one with several odd quirks. The fact that several copies of MISSINGNO. exist (with each consuming its own "slot") would seem to support both theories, though the former is generally considered more credible.

Typical characteristics
The MISSINGNO. most commonly encountered during glitches is a Normal/Bird-type Pokemon, whose sprite is an "L"-shaped chunk of "fuzz". Bird is a beta type that was left in the game; it functions identically to Normal. The sprite probably 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. take the fossilized Aerodactyl and Kabutops sprites from the Pewter City museum. The fourth form uses the sprite shown when one encounters a Ghost Pokemon in the Pokemon Tower without having the Silph Scope. These are actually separate glitch Pokemon 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 type change depending on the last Pokemon 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) Pokedex entries (by, of course, capturing them).

Though they are all distinct, all known MISSINGNO. forms have several properties in common. They all share the Pokedex number 000. Capturing 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 Pokemon and Trainer sprites become scrambled. Viewing the stats of a normal Pokemon fixes the problem.

Old Man Trick
There is a glitch (called the "Old Man trick") in Red and Blue that allows a player to battle nearly any Pokemon they wish, depending on the characters of their name. The player should start by viewing the Old Man's Pokemon 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 Poke 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 Pokemon 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 Pokemon data. However, the east coast tiles were coded to trigger wild Pokemon battles. The effect is that when the player travels from a city to Cinnabar Island directly, the wild Pokemon list is not rebuilt. This means that when sailing on Cinnabar's east coast, the player will encounter whatever wild Pokemon were available at the last area they were traveling in. (This is a useful trick for catching Safari Zone Pokemon; 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 Pokemon data holds the player's name, rather than the wild Pokemon 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 Pokemon. The effect is that the text characters in the player's name will determine the species and levels of wild Pokemon on the coast. Not all available text characters correspond to normal Pokemon, meaning that this glitch may be used to encounter glitch Pokemon, 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 Pokemon encountered via the Old Man Trick. The characters "w", "x", and "y" will yield the Kabutops, Aerodactyl, and Ghost forms of MISSINGNO., respectively.