Map a Controller

This gives you the ability to connect a new controller or remap an existing controller to your preference.

From this menu, you can define one mapping per controller. As a result, choose a mapping that will fit most games naturally. The problem we have in the emulation world is that there is not such thing as one unique mapping for all emulated systems. Nintendo, Sony, Sega, Microsoft have all chosen different layouts… plus the multiple arcade systems that Batocera supports: you get the idea.

It's maddening!

As mentioned above, unfortunately there is no “One gamepad for all” which covers all different original console gamepads.

When plugging in your controller to your machine (or when booting up Batocera with the controller already plugged in) ensure that the sticks, buttons and triggers are in their neutral position. Batocera will read the current values of all the controller's inputs when it first “sees” the controller and use those as their neutral positions.

But there are some pads like the PS3 controllers for example, which have enough buttons to cover a large part of original controllers of different systems (GB, NES, SNES, PS1, N64, Genesis/MegaDrive, Dreamcast and many more) as long as the layout somewhat matches. Batocera will prefer the closest physical position of the buttons over the button labels.

If a system controller has digital shoulder buttons, it is mapped to the L1/R1 buttons. If a system controller has analog triggers for shoulder controls, they will be mapped to L2/R2 triggers instead. Systems with both sets will utilize all shoulder buttons/triggers.

The four action buttons [X], [A], [B], [Y] (or Triangle, Circle, Cross and Square) are either already mapped in the same way/orientation as the original pad, or their closest physical approximation. These are represented graphically as North button (X SNES)/East button (A SNES)/South button (B SNES)/West button (Y SNES). Arcade layouts are an exception, and they usually substitute using the left and middle buttons for West button (Y SNES) (Light Punch)/South button (B SNES) (Light Kick)/North button (X SNES) (Medium Punch)/East button (A SNES) (Medium Kick) and the right buttons for [R1] (Heavy Punch) and [R2] (Heavy Kick). D-pad and analog stick(s) should of course be mapped appropriately.

For [HOTKEY] it is either a special key on the pad (like PS button in the middle of PS3/4 controller, or the Guide button on an Xbox 360/One controller) or if no special key is available it should be the [SELECT] button.

If you assign the hotkey to a button other than the [SELECT] button or a dedicated [HOME] button, you may instantly trigger hotkey shortcuts!

Here are pictures of a small selection of controllers for original consoles with their button layout as a guide/orientation:

From left to right, top to bottom: Xbox 360, PSP, PS3, NES, SNES, N64, Gamecube, GBA, NDS, Dreamcast.

And here pictures of the most commonly used controllers for emulation, with the corresponding button mapping/layout:

This may come up if say you're using a classic SNES-styled controller without sticks or [L2]/[R2] triggers. Or maybe you're using an original NES pad with a USB adapter. Don't worry, you can skip any buttons which you don't have by holding down any button. The absolute minimum Batocera requires for most functions are:

  • D-pad to navigate menus (in cases where no analog stick is available, it can usually be emulated with the D-pad)
  • South button (B SNES) to confirm/launch games
  • East button (A SNES) to cancel/back out of a system's game list

If you have the luxury, the next most important buttons are:

  • [START] to access the Main Menu in EmulationStation (some retro games require this to even start)
  • [SELECT] to function as both the secondary menu button in EmulationStation and as the [HOTKEY] (some retro games require this to start alternate game-modes or insert virtual coins)

If you have a dedicated home/guide button, you should use that instead (some games may have some important function tied to [SELECT], rendering the Quick Menu ([HOTKEY]+South button (B SNES)) interruptive).

From there, the rest of the buttons are auxiliary. In order of importance:

  • West button (Y SNES) for quick functions in EmulationStation (and for systems with three-button layouts)
  • North button (X SNES) for utility options in EmulationStation (and for systems with four-button layouts)
  • [L1]/[R1] for pageup/pagedown in EmulationStation (a lot of unorthodox systems use shoulder buttons, such as DOS pad2key)
  • [L2]/[R2] for category switching, remaining hotkey shortcuts and analog trigger controls
  • The left analog stick for systems that support it (in cases where the D-pad is unavailable, the left analog stick can usually emulate the D-pad)
  • The right analog stick for systems that support it (N64 in particular needs the right stick for its C-buttons)
  • Dedicated [HOTKEY] button for convenience

If your controller wasn't recognized by EmulationStation and you had to manually configure it, your configuration will be appended to /userdata/system/configs/emulationstation/es_input.cfg. The last controller used appears at /userdata/system/configs/emulationstation/es_last_input.cfg, which contains just that controller's configuration. You can send your controller configuration over to this pinned forum post in order to add it to Batocera's controller database. That way, future users who use that controller will have their controller auto-magically configured out of the box! It's all a community effort, thank you for helping Batocera!

First, map your controller as you normally would for menu navigation. Then, refer to the remapping controls per emulator page.

  • configure_a_controller.txt
  • Last modified: 7 months ago
  • by atari