At Dewford town-Go up and go in the cave there will be a hiker and he gives to you if you beat the 2nd gym
Steven will give it to you
talk with steven in the MOSSDEEP
There is a house in Rustboro with a man who will give you the HM if you talk to him.
You get Hm flash from the hiker in granite cave in dewford.BEWARE!You can only use flash if you get the knuckle badge from Brawly
Wally's dad gives it to you after getting the 5th badge.
You need to get the hm cut then teach it to a grass Pokemon
by going to lilycove and talking to the move deleter
Go to LilyCove City, and Go to the house of the Move Deleter. That is the house next to the warehouse. He will make your Pokémon forget HM's and TM's.
go to Sootopolis, then go to the cave of origin. You will find a pokeballl in there in which contains the TM Waterfall
There is no such HM available.
In Pokémon Ruby Sapphire and Emerald versions, HM7 contains the move waterfall. You can find the HM in the Cave of Origin.
go to mossdeep city. Go to the house behind the house that's to the left of the Pokemon center. this is steven's house. talk to him, and he will give you HM Dive.