     if (game_state == PRE_GAME) return;
     serprintf("Controller reset...\r\n");
     game_state = PRE_GAME;
+    active_player = NONE;
+    clock_being_set = 0;
 
     for(unsigned int i = 0; i < NUM_PLAYERS; i++) {
       serprintf("player %d clock...\r\n", i);

  const unsigned long mode_button_reset_ms = 3000;
  const unsigned long mode_button_settime_ms = 5000;
  const unsigned long mode_button_poweroff_ms = 7000;
  enum { INIT, PRE_GAME, IN_PROGRESS, PAUSED, SET_TIME } game_state;
  bool mode_button_last_pressed_state;
  unsigned long blink_start_ms;
public:


    switch (game_state) {
      case INIT:
        return;
        break;
      case PRE_GAME:
        handle_pre_game_player_buttons();
        break;
      case IN_PROGRESS:
        handle_in_progress_player_buttons();
        if (players[active_player]->out_of_time()) {
          players[active_player]->flag();
          break;
        } 
        players[active_player]->tick();
        break;
      case SET_TIME:
      case SET_TIME_CLOCK_1:
      case SET_TIME_CLOCK_2:
        handle_set_time_player_buttons();
        break;
      case PAUSED:
        handle_paused_player_buttons();
        break;
      default:
        serprintf("Should not get here; default case of controller tick switch!\r\n");
        break;
    }
    handle_mode_button();
/*
    if (interrupt_fired != NONE) {
      // Someone pressed a button since the last time we checked.
