KANTO
you have to get the cianwood gym badge and the olivine gym badge
by beating the gym leader
Go to the forth gym!
blackthorn city
it is bugsy the bug type leader
by beating the icicle gym leader. In mahogany town.
You must defeat Clair in the gym then do a side quest in a cave north of blackthorn.
in Goldenrod city
Defeat Clair the blackthorn city gym leader but afterward she will not give you the badge go to the dragon's den which is north of blackthorn city and find a dragon fang in there show it to Clair to get the badge.
It is attainable in poke mart after the 3 gym badge (i think)
You must go and battle Misty. Once you defeat her, she will give you a badge. You have then defeated the gym.
first get a ice type Pokemon then go threw the whole gym face gym leader and get the badge