       "s": 'action1'
       "enter": 'start'
 
-    @playerControllerGpMailbox = @postOffice.newMailbox()
-    GamepadController2.bindButtons @playerControllerGpMailbox.address,
+    # @playerControllerGpMailbox = @postOffice.newMailbox()
+    # GamepadController2.bindButtons @playerControllerGpMailbox.address,
+    @player1GpController = createGamepadSignal @postOffice,
       "DPAD_RIGHT": 'right'
       "DPAD_LEFT": 'left'
       "DPAD_UP": 'up'

    dtEvents = @dtMailbox.signal
      .map((dt) -> Map(type:'Tick',dt:dt))

    playerControlEvents = @playerControllerMailbox.signal
      .merge(@playerControllerGpMailbox.signal)
      .dropRepeats(Immutable.is)
      .map((event) -> event.set('tag','player1'))

    adminControlEvents = @adminControllerMailbox.signal
      .dropRepeats(Immutable.is)
      .map((event) -> event.set('tag','admin'))

    input = dtEvents
      .merge(playerControlEvents)
      .merge(adminControlEvents)
      .sliceOn(dtEvents)
      .map(inputBundler(@defaultInput))


    adminState = input
      .foldp(Admin.update, Admin.initialState())

    # Game state value over time:
    updateGame = (input,s) ->
      [s1,_] = TheGame.update(s,input)
      return s1

    history0 = RollingHistory.add(RollingHistory.empty, TheGame.initialState())

    updateHistory = (admin, history) ->
      input = admin.get('input')
      game = RollingHistory.current(history)
      if admin.get('paused')
        if admin.get('replay_back')
          history = RollingHistory.back(history)
        else if admin.get('replay_forward')
          history = RollingHistory.forward(history)
        else if admin.get('step_forward')
          input1 = input.set('dt', admin.get('stepDt'))
          history = RollingHistory.truncate(history)
          history = RollingHistory.add(history, updateGame(input1, game))
      else
        if admin.get('truncate_history')
          history = RollingHistory.truncate(history)
        history = RollingHistory.add(history, updateGame(input,game))

      return history


    gameState = adminState
      .foldp(updateHistory, history0)
      .dropRepeats(Immutable.is)
      .map (hist) -> RollingHistory.current(hist).get('gameState')

    # When gameState changes, update view:
    gameState.subscribe (s) =>
      @viewMachine.update2(s)

  update: (dt) ->
    @dtMailbox.address.send dt

      "FACE_3": 'action1'
      "START_FORWARD": 'start'

    # @adminControllerMailbox = @postOffice.newMailbox()
    # KeyboardController3.bindKeys @adminControllerMailbox.address,
    @adminController = createKeyboardSignal @postOffice,
      "g": 'toggle_gamepad'
      "b": 'toggle_bgm'
      "p": 'toggle_pause'
