TIMER1 Good, Timer0 Bad

Without all the Arduino stuff pulled in, it can work

bool state = HIGH;

int main(void) {
  pinMode(8, OUTPUT);

  noInterrupts();
  TCCR0A = 0;

  TCCR0B = 0;
  TCCR0B |= (1 << CS02);
  
  TIFR0 |= (1 << TOV0);
  TIMSK0 |= (1 << TOIE0);
  interrupts();
  while(1){};
}


ISR(TIMER0_OVF_vect) {
  static bool state = LOW;
  digitalWrite(8, state);
  state = !state;
}