If you are playing heartgold or soulsilver , you need a physic or ground type pokemon.
KANTO
you have to get all of the other gym badges in kanto and then go to Cinnabarr island and talk to blue. then go to viridian city and go in the Pokemon gym!
The last gym badge is in viridian city for Kanto. For Johto it is in Blackthorn city.
you have to use the HM surf and surf behind the gym and go in the cave. go to the other side of the dragon temple and go in. awnser the old man's questions and the gym leader will come in and give you the badge. This is to get the 8th Johto gym badge. To get the Kanto one search: how do you get to the 8th Kanto gym badge
misty
Go to the gym in Vermillion City in Kanto and battle Lt. Surge, the Gym Leader. He'll give you the 9th Gym Badge after you defeat him.
You beat the 6th gym leader.
i think its the rainbow badge from erika in celadon city
To get the last gym badge you have to go to cinnabar island and you will meet blue. he will tell you that he will be waiting in veridian city to battle you. when you go to veridian city you go to the gym and fight him at the end of the gym.
You have to fight the fire gym leader which is located at cinnabar island. i dont know his name though
In the Pokémon games, the six gym badges can vary depending on the region. However, in the Kanto region, the first six gym badges are the Boulder Badge, Cascade Badge, Thunder Badge, Rainbow Badge, Soul Badge, and Marsh Badge. Each badge is earned by defeating the respective gym leader, showcasing the player's skill and progress in their Pokémon journey. Other regions have their own unique badges with different names.
* Pewter Gym - Rock Badge * Cerulean Gym - Cascade Badge * Vermillion Gym - Thunder Badge * Celadon Gym - Rainbow Badge * Fuchsia Gym - Soul Badge * Saffron Gym - Marsh Badge * Cinnabar Gym - Volcano Badge * Viridian Gym - Earth Badge