In Pokémon Snakewood, you can obtain the Surf HM by progressing through the game until you reach the area known as the "Abandoned Ship." Inside, you'll need to explore and battle trainers to find the HM. Once you have it, you can teach it to a compatible Water-type Pokémon, allowing you to traverse water bodies in the game.
pokemon snakewood is a hacked version
nearly all water Pokemon
On Pokemon ruby to get surf you need to beat your dads gym (in petalburg) then after wallys dad will come and get you then give you surf.
Pokemon perla is a fake game.
Surf North on the beach of Sunnyshore.
by fishing or using surf
Baltoy koffing and paras
Celestic town shrine
Catch a Marill or its lesser for Ezuirel then teach it surf.
You have to get surf at the safari zone
the Secret House in the Safari Zone
in the safari zone