You need to beat all other 7 gyms first. Giovanni then comes back if you have defeated him at Silph Co.
Chat with our AI personalities
You can obtain the 8th gym badge (the earth badge) in fire red from Giovanni in Viridian City.
in Viridian city. the one that was locked.
go to viridian city after the 7th gym
to get the eight badge go to viridian city after you have 7 badges and enter the gym
Defeat every other gym. The Viridian City gym is actually your last gym, not your first.