The way to get HM-6 (which is Rock Smash) in Pokemon Emerald is by going to Mauville City. When you get to Mauville City, proceed to a house in the immediate southeast of the city. Inside there will be a professor type of man who will hand over the HM-6 because he thinks you can handle it.
machop is a good hm slave. he can learn rock smash, rock climb, strengh,. in Pokemon emerald nincada is a good hm slave but in Pokemon pearl flash is not an hm. any water type can learn waterfal or surf espacially palkia.