I only found heart scales in Ruby, Sapphire and Emerald but I'm not sure of the other games.
get an action replay and find a cheat for it (i forget what it is called) but there are 2 types, heart scale and master ball. i prefer the heart scale cheat.
Heart scales are only in Pokemon emerald, ruby and sapphire but you can get one if you trade a heart scale from ruby or emerald or sapphire to leafgreen then take it but it will not do anything in the game.
You can find them underwater and if you catch a luvdisc they may be holding a heart scale.
you have to use hm rock smash on rocks to find them.
all over the place
OK... so there is this guy in solaceon town that gives you a heart scale and 3 pokeballs. U can also find them under ground. ;D
you check in a baby's diaper then you find it:)
There's a man in Fallabur town who will re-teach a Pokemon a move for a heart scale. But you must find a heart scale, they are in several places on the map but are mostly in or near water.
Go under ground & dig for it!
Well its very very rare but its in rocks that can be smashed with rock smash. Or you can use your diamond or pearl game and trade a Pokemon over holding it.
Heart Scales can be purchased in the Pokeathlon shop for 1000P
all you have to do is go on Serribi.net