The English grass/rock Surfing glitch is a port of the Grass/rock Surfing glitch in Spanish and Italian versions of Pokémon Red and Blue for English Pokémon Red and Blue.
It does not actually involve Surfing on grass or a rock, but allows for the same encounters possible through the original glitch.
The encounters are unintended Pokémon in the water based on the data of the last Trainer in memory.
This port for getting the same encounters as in Spanish and Italian Red's grass surf glitch was documented by Luckytyphlosion.
Sadly, it doesn't seem to work in Yellow (unless you use arbitrary code execution) due to no Yellow glitch item working like Red/Blue's "8 8" (hex:7C).
The Trainer escape glitch is easier for obtaining rare Pokémon that cannot normally be obtained with the old man trick such as Mew (unless a player's name is corrupted in a specific way by a glitch like Super Glitch to have a non selectable character in it). However, "grass surf port" can be a fun glitch to try due to the unexpected encounters.
In English Pokémon Red and Blue, data about the last enemy Trainer still affects the water encounter rate and level/species table.
Surfing in the grass or a cave seemingly brings up no water encounters in the English version unlike the Spanish and Italian versions (where it brought up water Pokémon).
We can still get Pokémon from the water encounter table with the values the Trainer made them via a special trick involving the glitch items 9F (hex:5E), 8 8 (hex:7C). A WTW item is also needed, such as the hex:94 item called "E tE" on the overworld.
All glitch items can be obtained in an expanded items pack via the Celadon looping map trick.
The grass surfing port trick has the player:
1) Entering a route with no water encounters (this leaves the Trainer-based water Pokémon data intact which is expected behaviour).
2) Using the glitch items, you prevent the game from resetting the water encounter rate back to 00, leaving it as the value dictated by the Trainer (first enemy Pokémon ID).
1) Do the long-range Trainer glitch on a route with water (the water rate does not matter). You can encounter another Trainer and fight them to get the start menu back and the ability to get an encounter as has traditionally been done, or you can change boxes, reset the game and then be guided by the museum guy in Pewter City (if using this method, this is important because you will not be able to get an encounter if you aren't guided).
8 8 (to be used on the original route you Fly/Teleport from later) can/will freeze the game on certain routes such as Route 24. A safe route to Trainer-Fly from is Route 6.
2) Have the Special stat of the last Pokémon seen be the value of any Trainer (any stat 201-247 modulo 256). This can be done if Ditto transforms into a Pokémon with the Special stat of your choice.
3) Return to the route you escaped from the Trainer. Once the start menu opens, use 8 8 to force the Special stat battle without closing the menu.
4) Once the battle starts, use 9F. The start menu will pop up.
5) Save and reset. After you save and before resetting, an encounter will likely appear based on the Special stat of the enemy Pokémon in battle. This is normal.
6) When you reload your save, the waves in the water should no longer move. This is a sign that the glitch worked. When it works, the leaves the water encounter rate as it was from when the Trainer data overwrote it and the water encounters instead of resetting it to 0.
7) Exit the start menu and use the walk through walls item to get into water without surfing (as surfing doesn't work anymore for some reason).
8) Move around on the tile to find Pokémon that were not on the route, based on the last Trainer.
If the battle with the wild Pokémon is finished normally, then the waves will start to move again and you can't encounter Pokémon you aren't supposed to again (until repeating the glitch).
If you reset the game without saving, the broken waves should still be there and you have a chance of obtaining another Pokémon.
Alternatively, after getting an encounter you can use 9F and save/reset the game like in the initial steps to ensure the water rate is never 0.
1) Using 9F partly makes the game think you are outside of battle, but the item permissions still work as in you're in a battle and the battle music will still play.
2) Ditto can be captured many times if the player uses 9F and a Master Ball more than once (the 'battle' does not end).
3) If the enemy Trainer's first Pokémon was 'M (00), then it may cause the glitch not to work because of the water encounter rate (which depends on the first species) being set to 00.
We can do the steps as described but force the Trainer as the Jr. Trainer ♂ from Route 24 who has a Squirtle.
Squirtle's type 2 Water (single-typed Pokémon have two types that are the same internally) is hex:15, the same ID as Mew, and will control water Pokémon species 3, allowing for Mew.
The Special stat required for Jr. Trainer ♂ is 205. To get the specific Jr. Trainer ♂ with Squirtle, one must manipulate the Attack stage of transformed Ditto because that will control the roster.
The attack stage is 07 by default. The Squirtle roster has a value of 04, meaning three Growls are required to lower the Attack stage to 04.
Alternative 'Death-warp' method
This trick is possible with "death warping", which is escaping from a Trainer by getting a wild Pokémon encounter in a Trainer's sight but losing the wild battle (so the Trainer has to be next to a grass tile or in a cave). A way to work around the luck-based element to it is to save the game one step before the tile so that if you don't get an encounter you can reset the game and try again.
Unlike a normal Trainer-Fly, in "death-warping" neither the start menu (which is normally enabled by fighting another Trainer or changing boxes) or the ability to encounter a Pokémon on the original route (which is normally enabled by fighting another Trainer or being guided by the museum guide in Pewter City or watching the Hall of Fame ending sequence) is disabled.
If the player immediately returns to the original route without encountering a Pokémon and the start menu was the last menu opened, the start menu will open and an encounter with the original Trainer is stored, to be loaded when the menu is closed or the glitch item "8 8" is used.
Here are steps for this glitch that involve death warping rather than Trainer-Fly:
1) Death warp from an applicable Trainer, such as the Bug Catcher in grass on Route 6. There are others, however, there is a risk that 8 8 might freeze the game on another route.
2) Return to Route 6 and use "8 8" to start a battle with the Trainer.
3) Once the battle starts, use 9F. The start menu will pop up.
4) Save and reset. After you save and before resetting, an encounter will likely appear based on the Special stat of the enemy Pokémon on the field. This is normal.
5) When you reload your save, the waves in the water should no longer move. This is a sign that the glitch worked - the game is supposed to set the water encounter rate to 00 but left it as it was from when the Trainer data overwrote it and the water encounters.
6) Exit the start menu and use the walk through walls item to get into water without surfing (as surfing doesn't work anymore for some reason).
7) Move around on the tile to find Pokémon that were not on the route, based on the last Trainer.
This alternative method to pull off the grass surfing glitch port sadly does not allow for total freedom of which Trainer you get; hence there is less potential of manipulating the Pokémon you encounter in the water (though it can be used without needing a Pokémon with a high Special stat).
There is still room for manipulation as one of the encounterable Pokémon in the table (water Pokémon 6) is based on enemy Pokémon 1's Trainer ID byte 1, which is actually equivalent to the player's Trainer ID byte 1. The Trainer ID byte 1 (D359) can be manipulated by changing item 30's quantity in an expanded item pack obtained with dry underflow glitch.