I get my 8th badge in Sootopolis gym.
Beat the 8th Gym leader.
It depends which ones are you looking for. The 8th Badge is in Sootopolis, The 7th badge is in Mossdeep, The 6th Badge is in Fortree, The 5th badge Is your dad in emerald it is found at Petalburg, the 4th Badge is in Fallabore, The 3rd badge is in Mauville, The 2nd badge is in Dewford, The 1st badge is in Rustboro.
stoopolis city
The only way to get a gym badge is to challenge the corresponding gym leader and win.
Pokemon league
Mauville city.
sootopolis city
Petalburg city he's in the gym and you battle him for your 8th badge.
Go to aquas base in Lilycove
Go back to your dads gym in petalburg
In Mauville. Just go up from slateport.
Go to the Pokemon league.