Grass/rock Surfing glitch

From Glitch City Wiki
Jump to navigation Jump to search
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

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)

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)

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

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))

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

Pomeg glitch (Generation III)

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

Voiding (Generation IV)


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

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

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)

Large storage box byte shift glitch

Storage box remaining HP glitch | Generation I max stat trick

Pikachu off-screen glitch

Trainer corruption glitch

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

Trainer escape glitch

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

Walk through walls

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

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♂ data Squirtle 0x00XX current HP 0xXX32 current HP Unknown byte Status Type 1 Type 2 Unknown byte Move 1 Move 2 Move 3 Move 4 Trainer ID byte 1 Trainer ID byte 2
Water encounter data Encounter rate=B1 Water Pokémon 1 level = 31 Water Pokémon 1 species= 32 (MissingNo.) Water Pokémon 2 level =00 Water Pokémon 2 species = 'M (00) Water Pokémon 3 level = 21 Water Pokemon 3 species = $15 (Mew) Water Pokemon 4 level = 45 Water Pokemon 4 species = $21 (Growlithe) Water Pokemon 5 level = 39 Water Pokemon 5 species = $91 (Golem) Water Pokemon 6 level = 55 Water Pokemon 6 species = any Water Pokemon 6 level = any
Code; D8B7 $00
Jr. Trainer♂ data Experience byte 1
Water encounter data 'M (00)

YouTube video by ChickasaurusGL


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.

External links