Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
configure_a_controller [2021/09/15 05:18] atariconfigure_a_controller [2023/04/30 04:49] (current) – remove mention of the forum, link to discord server/git instead atari
Line 1: Line 1:
-~~NOTOC~~ +====== Map a Controller ======
-====== Configure A Controller ======+
  
-This gives you the ability to connect a new controller or remap an existing controller to your preference.+This gives you the ability to map the buttons of 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.+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 no 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.
  
 {{::x_button.jpg?nolink&600|It's maddening!}} {{::x_button.jpg?nolink&600|It's maddening!}}
  
-As mentioned aboveunfortunately there is no "One gamepad for all" which covers all differerent original console gamepads.+<WRAP center round important> 
 +When plugging in your controller to your machine (or when booting up Batocera with the controller already plugged in) ensure that the sticksbuttons 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. 
 +</WRAP>
  
-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.+That's why there is no "one gamepad for all" in regards to the physical labels which covers all different original console gamepads.
  
-If system controller has digital shoulder buttons, it is mapped to the L1/R1 buttonsIf a system controller has analog triggers for shoulder controlsthey will be mapped to L2/R2 triggers instead. Systems with both sets will utilize all shoulder buttons/triggers.+But fortunately that's not practical issue as most controllers confirm to the same physical formLeft stick/D-pad,, a right stick/four face buttons and four shoulder buttons/triggers. As long as the buttons are physically in a similar position, this should be no issue when playing games (although you will need to learn to ignore the labels on the controller itself).
  
-The four action buttons X, A, B, Y (or Triangle, Circle, X and Square) are either already mapped in the same way/orientation as the original pad, or their closest physical approximationThese are represented graphically as {{:wiki:north.png?nolink&20|North button (X SNES)}}/{{:wiki:east.png?nolink&20|East button (A SNES)}}/{{:wiki:south.png?nolink&20|South button (B SNES)}}/{{:wiki:west.png?nolink&20|West button (Y SNES)}}. [[arcade|Arcade layouts]] are an exception. D-pad and analog stick(s) should of course be mapped appropriately.+To map the four face buttons of the pad, assign them according to their physical position relative to the original controllerFor convenience, these are referred to by their cardinal directions: North {{:wiki:north.png?nolink&20|North button (X SNES)}}, East {{:wiki:east.png?nolink&20|East button (A SNES)}}, South {{:wiki:south.png?nolink&20|South button (B SNES)}} and West {{:wiki:west.png?nolink&20|West button (Y SNES)}}.
  
-For Hotkey it is either a special key on the pad (like PS button in the middle of PS3/4 controlleror if no special key is available it should be the Select Button.+That means on a PlayStation-style pad the triangle button should be mapped as North {{:wiki:north.png?nolink&20|North button (X SNES)}}, the circle button as East {{:wiki:east.png?nolink&20|East button (A SNES)}}, the cross button as South {{:wiki:south.png?nolink&20|South button (B SNES)}} and the square button as West {{:wiki:west.png?nolink&20|West button (Y SNES)}}.
  
-<WRAP center round important 60%+<WRAP center round tip
-If you assign the hotkey to a button other than the ''[SELECT]'' button or a dedicated ''[HOME]'' button, you may instantly trigger [[basic_commands|hotkey shortcuts]]!+This follows along with RetroArch's "RetroPad" philosophy, which you can read more about [[https://docs.libretro.com/guides/input-and-controls/|here]]. 
 +</WRAP> 
 + 
 +[[#i_d_like_to_add_my_controller_configuration_to_the_database|Most known gamepads come configured out of the box]], no user-interaction needed. If a controller is connected which doesn't already have a mapping, a configuration screen will appear for it. 
 + 
 +If a system controller has digital shoulder buttons, they are 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. 
 + 
 +[[:arcade|Arcade layouts]] are an exception, consider the face buttons the first four buttons on the left side (diamond-shape) and the remaining ones the ''[L1]'' and ''[R1]'' shoulder buttons. In a Capcom-esque fighting game, this would translate to: 
 + 
 +^ Batocera-pad button ^ In-game input ^ 
 +| {{:wiki:west.png?nolink&20|West button (Y SNES)}} | Light Punch | 
 +| {{:wiki:south.png?nolink&20|South button (B SNES)}} | Light Kick | 
 +| {{:wiki:north.png?nolink&20|North button (X SNES)}} | Medium Punch | 
 +| {{:wiki:east.png?nolink&20|East button (A SNES)}} | Medium Kick | 
 +| ''[L1]'' | Heavy Punch | 
 +| ''[R1]'' | Heavy Kick | 
 + 
 +The arcade stick should be assigned as the D-pad. 
 + 
 +===== Hotkey ===== 
 + 
 +Commonly referred to as the "home" or "guide" button, this is what allows the use of shortcuts in Batocera. To find out which shortcuts are (generally) available, refer to the [[:basic_commands|Hotkey shortcuts page]]. 
 + 
 +If there is no dedicated hotkey button, ''[SELECT]'' should be used. 
 + 
 +<WRAP center round important> 
 +Assigning the hotkey to a button other than the ''[SELECT]'' button or a dedicated ''[HOME]'' button will instantly trigger the command assigned to that button. For instance, setting it to ''[START]'' will cause the emulator to instantly exit when attempting to pause the game.
 </WRAP> </WRAP>
  
Line 26: Line 53:
 {{::controllersfadebg.png?direct&1240|From left to right, top to bottom: Xbox 360, PSP, PS3, NES, SNES, N64, Gamecube, GBA, NDS, Dreamcast.}} {{::controllersfadebg.png?direct&1240|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 correspoding button mapping/layout:+And here pictures of the most commonly used controllers for emulation, with the corresponding button mapping/layout (in reference to their SNES pad equivalent) (FIXME this needs to be reworked to be relevant to Batocera):
  
 {{::generic.jpg?400|}} {{::generic.jpg?400|}}
Line 36: Line 63:
 ===== But my controller doesn't have that many buttons! ===== ===== But my controller doesn't have that many buttons! =====
  
-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:+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)   * D-pad to navigate menus (in cases where no analog stick is available, it can usually be emulated with the D-pad)
Line 47: Line 74:
   * ''[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)   * ''[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]''+{{:wiki:south.png?nolink&20|South button (B SNES)}}) interruptive).+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]'' + {{:wiki:south.png?nolink&20|South button (B SNES)}}) interruptive).
  
 From there, the rest of the buttons are auxiliary. In order of importance: From there, the rest of the buttons are auxiliary. In order of importance:
Line 58: Line 85:
   * The right analog stick for systems that support it ([[systems:n64|N64]] in particular needs the right stick for its C-buttons)   * The right analog stick for systems that support it ([[systems:n64|N64]] in particular needs the right stick for its C-buttons)
   * Dedicated ''[HOTKEY]'' button for convenience   * Dedicated ''[HOTKEY]'' button for convenience
 +
 +===== I'd like to add my controller configuration to the database =====
 +
 +Batocera uses a database of "known" controllers to automatically map them for you, but new controllers (or just really unknown ones) may not be in this database yet. If you had to map your controller when you plugged it in, this means it was not in that database yet. It is possible to let the devs know about this and have your controller mapping added to the default database for other users.
 +
 +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's configuration via the [[https://discord.com/invite/JXhfRTr|Discord server]] or [[:contributing-to-batocera|PR]] ([[https://github.com/batocera-linux/batocera.linux/blob/master/package/batocera/emulationstation/batocera-emulationstation/controllers/es_input.cfg|link to es_systems on Github]]) and a dev will add it to Batocera's default 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!
 +
 +<WRAP center round tip>
 +In case you've plugged in a different controller since then, all of the controller configurations can be found at ''/userdata/system/configs/emulationstation/es_input.cfg''. The newest controllers will be appended at the bottom of the list.
 +</WRAP>
 +
 +===== I want to remap my controls for just a single system =====
 +
 +First, map your controller as you normally would for menu navigation. Then, refer to [[:remapping_controls_per_emulator|the remapping controls per emulator page]].
 +
  • configure_a_controller.1631675923.txt.gz
  • Last modified: 3 years ago
  • by atari