Grass/rock Surfing glitch

From Glitch City Wiki
Jump to navigation Jump to search
Major glitches of the Pokémon series

GB.png Arbitrary code execution GB.png

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

Bulbasaur.png No further extensions Bulbasaur.png

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)

Bruno.png Buffer overflow techniques Bruno.png

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)

Ball.png Item stack duplication glitch (Generation I) Ball.png

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

PC.png Bad clone glitch (Generation II) PC.png

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

Lab pass.png Closed menu Select glitches (Japanese Red/Green) Lab pass.png

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

Gromeg berry.png Pomeg glitch (Generation III) Gromeg berry.png

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

Darkrai.png Voiding (Generation IV) Darkrai.png


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

Lying old man.png 2x2 block encounter glitches (Generation I) Lying old man.png

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

Glitchtile.png Glitch City Glitchtile.png

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

RBYPC.png Large storage box byte shift glitch RBYPC.png

Storage box remaining HP glitch | Generation I max stat trick

Pikachu.png Pikachu off-screen glitch Pikachu.png

Trainer corruption glitch

Tereka.png SRAM glitches Tereka.png

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

Ditto.png Trainer escape glitch Ditto.png

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

Brock.png Walk through walls Brock.png

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

Surf.png Surf down glitch Surf.png

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. Spain.pngItaly.png

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.

Route 24 Jr Trainer Squirtle.png

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