Glitch City Laboratories Archives

Glitch City Laboratories closed on 1 September 2020 (announcement). This is an archived copy of an article from Glitch City Laboratories wiki.

A live version of this article is available at the Glitch City Wiki here.

You can join Glitch City Research Institute to ask questions or discuss current developments.

You may also download the archive of the wiki in .tar.gz or .xml.gz formats.

Grass/rock Surfing glitch

Major glitches of the Pokémon series

Arbitrary code execution

0x1500 control code arbitrary code execution (Crystal) | Cart-swap arbitrary code execution | Generation I custom map script pointer | Generation I invalid meta-map scripts | Generation I item ("8F", "ws m", "-g m", "5かい", "てへ" etc.) | Generation I move ("-", "TM42") | Generation I Trainer escape glitch text boxes | Generation II bad clone | Generation II Burned Tower Silver | Japanese Crystal Pokémon Communication Center SRAM glitches | Coin Case glitch | Generation II glitch Pokédex sortings | Pikachu off-screen glitch ACE | OAM DMA hijacking | Pikachu glitch emote | Generation III glitch Pokémon summary | Generation III glitch move animation) | Remote code execution | TM/HMs outside of the TM/HM pocket | ZZAZZ glitch Trainer FC

[hr] No further extensions

Cloning | Item duplication glitch (Generation I) | Pokémon merge glitch ("Q Glitch", Generation I) | Time Capsule exploit | Bug-Catching Contest data copy glitch (Generation II, Japan only) | Berry glitch | Battle Tower Lati@s glitch (Generation III) | (Mimic) Transform Rage glitch (Generation IV)

Transform held item glitch (Generation IV, Japan only) | Mimic glitch (Generation IV, Japan only)

[hr] Buffer overflow techniques

99 item stack glitch | LOL glitch | Rival LOL glitch | Instant LOL glitch | RAM LOL glitch | Out of bounds LOL glitch | blockoobLG | Instant encounter infinite chain glitch | LGFly | Super Glitch (Generation I) | Party remaining HP glitch | Super Glitch (Generation III) | Text pointer manipulation mart buffer overflow glitch | CoolTrainer♀-type move | Double distort CoolTrainer♀ corruption | Yami Shop glitch | Party Pokémon box data shift glitch | Unterminated name glitch item instant encounter (Japanese Red/Green)

[hr] Item stack duplication glitch (Generation I)

Generation I expanded items pack (Glitch Rocket HQ maps, Map FE (English and non-English European Yellow) | Map script pointer manipulation (arbitrary code execution | Map script pointer item ball manipulation) | Text pointer manipulation (arbitrary code execution | Item ball manipulation | Mart buffer overflow) | Trainerless instant encounter glitch

[hr] Bad clone glitch (Generation II)

????? party overloading (Type 0xD0 move glitch | ????? map corruption | Celebi trick | Celebi Egg trick | Shiny Celebi trick | Glitch move map corruption | Overloaded party map corruption | Glitch Unown (Glitch Unown map corruption) | Duplicate key items glitch (Infinite items and item creation, Expanded Balls pocket (Wrong pocket TM/HMs, Glitch Pokédex categories))

[hr] Closed menu Select glitches (Japanese Red/Green)

Dokokashira door glitch (International) | Fossil conversion glitch (international) | Second type glitch | Skip to Level 100 glitch | Trainer mutation glitch | Walk through walls (International) | Lift glitch | Badge describer glitch

[hr] Pomeg glitch (Generation III)

Pomeg data corruption glitch ("Glitzer Popping") | Charm glitch

[hr] Voiding (Generation IV)


Broken escalator glitch (Japan only) | Elite Four door glitch (Japan only)

[hr] 2x2 block encounter glitches (Generation I)

Left-facing shore tile glitch (in-game trade shore encounter trick, Old man trick, Trade link up shore encounter trick, Fight Safari Zone Pokémon trick) | Viridian Forest no encounter grass tiles glitch

[hr] Glitch City

Safari Zone exit glitch | RAM manipulation | Out of bounds Glitch City (Generation II) | Slowpoke Well out of bounds corruption (French Gold/Silver/Crystal)

[hr] Large storage box byte shift glitch

Storage box remaining HP glitch | Generation I max stat trick

[hr] Pikachu off-screen glitch

Trainer corruption glitch

[hr] SRAM glitches

Generation I save corruption | 255 Pokémon glitch | Expanded party encounter table manipulation (Generation I) | Send party Pokémon to a new game (Generation I) | Generation II save corruption | Mailbox glitches | Mystery Gift item corruption | Trainer House glitches

[hr] Trainer escape glitch

Death-warp | Ditto trick | Experience underflow glitch | Mew trick | Text box ID matching | Meta-map script activation

[hr] Walk through walls

Ledge method | Museum guy method | Rival's effect | Select glitch method (International Select glitch method), Brock Through Walls

[hr] Surf down glitch

Grass/rock Surfing glitch (Spanish/Italian only) (adaptions: Submerge glitch (international)) | 8 8 (0x7C) grass/rock surfing glitch (English Red/Blue))

(view, talk, edit)

'''Please note that this glitch only exists in the Spanish and Italian versions of the game.

The Grass/rock Surfing glitch applies to Spanish and Italian versions of Pokémon Red and Blue only. It does not work in any localization of Pokémon Yellow.


1) Encounter a Trainer, and then perform the Surf down glitch to surf into the grass or a rock tile (i.e. a rock in Cerulean Cave. To do this, press Start whilst walking towards the water's edge, then save and when you reset the game Surf will go down as its neutral position.

2) Use Surf to go down into the grass or a rock tile, then carefully spin around to try and encounter a Pokémon. If you fail simply reset the game. The Pokémon found depend on the Trainer.


The Pokémon in the grass or rock tile are taken from memory addresses D8A9 (the equivalent of D8A4 in English versions) onward, which is usually reserved for water encounters.

Upon fighting a Trainer this area of the memory is written to (in a similar fashion to the old man's demonstration writing to grass encounters in the old man trick).

Hence Trainer data can affect the water encounters in a location in which there are normally no water encounters, such as Route 24 north of Cerulean City.

For illustration is an example of a Jr. Trainer♂ on Route 24.

His data is written into $D8A9 in memory, which maps out in the following way for Jr. Trainer♂ data and water encounter data.

Code; $D8A9...$B1$00$32$00$00$15$15$2d$21$27$91$37(PLAYER'S)(PLAYER'S)
Jr. Trainer♂ dataSquirtle0x00XX current HP0xXX32 current HPUnknown byteStatusType 1Type 2Unknown byteMove 1Move 2Move 3Move 4Trainer ID byte 1Trainer ID byte 2
Water encounter dataEncounter rate=B1Water Pokémon 1 level = 31Water Pokémon 1 species= 32 (MissingNo.)Water Pokémon 2 level =00Water Pokémon 2 species = 'M (00)Water Pokémon 3 level = 21Water Pokemon 3 species = $15 (Mew)Water Pokemon 4 level = 45Water Pokemon 4 species = $21 (Growlithe)Water Pokemon 5 level = 39Water Pokemon 5 species = $91 (Golem)Water Pokemon 6 level = 55Water Pokemon 6 species = anyWater Pokemon 6 level = any

Code; D8B7$00
Jr. Trainer♂ dataExperience byte 1
Water encounter data'M (00)

  • REDIRECT Template:YouTube


    According to Paco81, the grass/rock Surfing glitch, also known as the 'MissingNo. trick for Spanish versions' was documented on a Spanish forum. Paco81 originally thought it was a fake trick, until his friend stumbled across a wild Pokémon glitch with it.

    On the Spanish Pokémon Stats forum Paco81 started a thread called "¿Tentacools en la hierba?" (Tentacools in the grass) mentioning the glitch, and people did research on it and found that Pokémon other than Tentacool can appear in the grass. Paco81 found that this is based on the last Trainer you encounter.

    In English versions

    There are two known ways of porting an approximation of this glitch over to English versions. The first (8 8 (0x7C) grass/rock surfing glitch) does not require arbitrary code execution, but does not work in Yellow without it. The second called submerge glitch currently requires it, but will work in Yellow as well.

  • Thread on technical information by Torchickens.