Encounter Guide


HOW TO ENCOUNTER MISSINGNO
~ The Old Man Method, tested and verified ~

The Old Man Glitch (Step by Step)

REQUIREMENTS: Pokemon Red or Blue version (does NOT work on Yellow). An orignal Game Boy, Game Boy Pocket, Game Boy Color, or Game Boy Advance. You need to have reached Cinnabar Island and have a pokemon that knows Fly and one that knows Surf.

NOTE: I highly reccomend putting your most valueable item (like Rare Candies or Master Ball) in the 6th slot of your bag before starting. Youll thank me later. See the Safety page for why.

Step 1: Go to Viridian City

Fly to Viridian City. Walk north until you find the old man near the top of the city. Hes the one who was laying on the ground earlier in the game blocking the road because he "hadnt had his coffee yet." Hes standing just south of the route exit.

Step 2: Talk to the Old Man

Talk to him and when he asks if your in a hurry, say NO. He will then show you how to catch a pokemon by demonstrating on a wild Weedle. Watch the whole demonstration. This step is critical. You MUST watch the tutorial. Dont skip it, dont walk away.

What happens technicaly: When the tutorial starts, the game needs to temporarily replace your player name with "OLD MAN" so the battle text reads correctly. It stores your real name in a chunk of memory at addresses D887-D88C. This memory area is normaly used to store wild pokemon encounter data for whatever route your on.

Step 3: Fly DIRECTLY to Cinnabar Island

Immediatley after the tutorial ends, do not take a single step on any route. Open your menu and Fly directly to Cinnabar Island. Do not walk into the grass. Do not enter any buildings. Do not pass through any route gates. Fly straight there.

Why this matters: Every time you enter a new area (route, city, cave), the game loads that areas wild pokemon encounter table into the same memory where your name was stored. If you walk onto any route, your name gets overwritten with actual pokemon data and the glitch wont work. Flying skips all the routes between Viridian and Cinnabar, so your name stays in the encounter data memory.

Step 4: Surf the East Coast

Once on Cinnabar Island, go to the east coast, the right edge of the island where the land meets the water. Surf up and down along this strip. You want to be on the tiles where the land and water overlap.

Cinnabar Island coast
Cinnabar Island area map. Surf along the right edge of the island.

The key technical detail: These coastal tiles are coded as land tiles in the games map data, but you can Surf on them. Heres the problem for the game: land tiles use one encounter system and water tiles use another. These tiles exist in a weird in-between state.

Because the game thinks your on "land" tiles that belong to Cinnabar Island (which has no wild pokemon), it never loads new encounter data. Cinnabar dosnt have a wild encounter table for land tiles. So the game just... keeps using whatever was already in the encounter memory. Which is still your player name from the Old Man tutorial.

Step 5: Encounter MissingNo

Keep surfing up and down. Wild pokemon will start appearing. What you encounter depends on the characters in your player name. You may see:

Congratulations. You have encountered one of gamings most famous secrets.


The Technical Deep Dive

This section gets into the actual programming details of why the glitch works. If your not intrested in hexadecimal and memory addresses, feel free to skip to the Safety page.

Memory Layout

The Game Boy has a very limited amount of RAM, only 8 kilobytes of working memory for the entire game. Because of this, the developers had to reuse memory addresses for different purposes. The wild encounter table and the player name buffer happen to overlap:

Address Normal Use During Old Man Tutorial
D887Wild pokemon slot 3 speciesPlayer name character 1
D888Wild pokemon slot 3 levelPlayer name character 2
D889Wild pokemon slot 4 speciesPlayer name character 3
D88AWild pokemon slot 4 levelPlayer name character 4
D88BWild pokemon slot 5 speciesPlayer name character 5
D88CWild pokemon slot 5 levelPlayer name character 6

Each character in your name corresponds to a hex value. The game uses this value as BOTH a pokemon species identifier AND a level. So your name literaly becomes a list of wild pokemon.

Character to Pokemon Mapping

Some examples of how name characters map to encounters:

Character Hex Value Pokemon (if used as species) Level (if used as level)
A0x80Golduck128
G0x86Starmie134
w0xA8MissingNo!168
end marker0x50MissingNo!80

The end-of-name marker (hex 50) is particuarly important. If your name is shorter than 7 characters, the remaining slots are filled with 0x50, which maps to MissingNo. This is why almost everyone encounters MissingNo regardless of their name. The padding bytes guarantee it.

This also explains why the name "AAAAAAA" (7 A's) can produce different results than "AAA" (3 A's followed by four 0x50 end markers). Longer names means fewer MissingNo encounters and more "real" pokemon encounters. Shorter names means more guaranteed MissingNo slots.

Why Cinnabar Specificly?

The east coast of Cinnabar Island is the only place in the game where this particular combination of conditions exists:

  1. Tiles that are flagged as "land" but allow Surfing
  2. The parent map (Cinnabar Island) has NO wild encounter table for land
  3. Because theres no encounter table to load, the game uses stale data in RAM

Other areas in the game either have proper encounter tables (which would overwrite your name) or dont have these weird hybrid land/water tiles. Cinnabar east coast is a perfect storm of oversights that the developers never caught.

Or maybe they did catch it and left it in. We may never know.