-
-
Notifications
You must be signed in to change notification settings - Fork 91
Setting up Input Controllers
From Amiberry 2.5 onwards, support is provided for universal gamepad / controller mapping.
There are two options available for this purpose:
- A standard USB or Bluetooth connected device, automatically detected by the host system
- Remapping of keyboard controls (or a keyboard controller device, such as Ultimarc's I-PAC devices) to act as a controller.
To use a keyboard controller as a joystick device,
You can use the controller for regular in-emulation play (mapped to any Amiga port, including the optional Parallel port input), as either a classic Amiga Joystick, or a CD32 controller, or you can customise your settings to allow keyboard controls to be mappe to the controller also.
The 'first' detected controller on the host system will also be able to navigate the Amiberry menus.
Any controller which is currently picked up by the host system should be availble for use within Amiberry.
If you want, you can verify that your controller is available by using the command jstest
with the input number for your device by typing into a command prompt jstest /dev/input/js0
This will display information regarding the first connected "joystick" device (i.e. a controller) and allow you to see the number of buttons, hats (often used for d-pads) and axis (thumbsticks and d-pads) available.
jstest /dev/input/js1
jstest /dev/input/js2
etc can be used if you wish to perform the same check on additional devices.
Click here to view an example output.
By default, Amiberry will assume that the "fire button" (aka 'Red' on the Amiga CD32 layout) is mapped to the button #0 of any connected device. The second button (aka 'Blue') will be on button #1 etc.
For some devices with smaller number of buttons, this may be acceptable. However, for some controllers this may not be ideal, for example where Sony's Playstation DS3 controller has the 'select' button as button #0. For these situations, a controller map will be required (see below.)
In order to ensure your controller is laid out appropriately, regardless of button numbering/ordering, you will need to create a controller map, which will tell Amiberry which buttons to map to which Amiga controls.
For this, Amiberry follows the conventions of RetroArch, as an existing standard. This is also used by the popular emulation distro RetroPie. RetroArch controller maps (.cfg files) are simply plain text files which are used to associate any part of a device (buttons, axis etc) to specific actions - this means you will be able to get the same function regardless of device used.
If you are using a pre-packaged system, such as RetroPie, controller mapping, your controller will have already had a RetroArch configuration set up, and you can skip this section.
If you require the creation of your own .cfg
file, or wish to use a layout specifically for Amiberry, you can create a file for this purpose with a plain text editor.
You must name the file after the device, as it appears in jstest /dev/input/js0
and append the file name with '.cfg' (you should ensure that any .txt extension is removed) for example, Sony PLAYSTATION(R)3 Controller.cfg
would be the filename for a common Sony Playstation DS3 controller.
If you are not using an existing RetroArch system build such as RetroPie, it is recommended you save the .cfg file to a Controllers
sub-folder within Amiberry's installed location.
input_up_btn = "4"
input_down_btn = "6"
input_left_btn = "7"
input_right_btn = "5"
input_a_btn = "13"
input_b_btn = "14"
input_y_btn = "15"
input_x_btn = "12"
input_select_btn = "0"
input_start_btn = "3"
input_l_btn = "10"
input_l2_btn = "8"
input_l3_btn = "1"
input_r_btn = "11"
input_r2_btn = "9"
input_r3_btn = "2"
input_l_y_minus_axis = "-1"
input_l_y_plus_axis = "+1"
input_l_x_minus_axis = "-0"
input_l_x_plus_axis = "+0"
input_r_y_minus_axis = "-3"
input_r_y_plus_axis = "+3"
input_r_x_minus_axis = "-2"
input_r_x_plus_axis = "+2"
input_menu_toggle_btn = "12"
input_enable_hotkey_btn = "0"
input_reset_btn = "14"
input_exit_emulator_btn = "3"
If your device does not use button numbering for the HAT (d-pad) of your controller, but instead uses a 'hat', this can be specified as per the following example, which would use hat 0 as standard up/down/left/right controls:
input_up_btn = "h0up"
input_right_btn = "h0right"
input_down_btn = "h0down"
input_left_btn = "h0left"
The following picture will help you associate the correct buttons with your controller. Common names are given with associated RetroArch names.
From the Amiberry GUI you should navigate to the Paths panel. From here you will need to select the location where your .cfg file(s) have been stored.
For RetroPie, you should select /opt/retropie/configs/all/retroarch/autoconfig/
Once selected, click the 'Rescan Paths' button shown at the bottom of the panel.
The easiest way to verify if your RetroArch controller map has been recognised, is to check for the [R] on the Custom Control panel, adjacent to the Input Device name. This will otherwise be displayed as [N] (Normal Controller}
It is possible to use the RetroArch settings for emulator quit, GUI/menu activation and emulation reset. More information on this can be found on the RetroArch commands page.
You can also set game-specific control customisations, e.g. mapping individual keyboard keys to controller buttons. More information for this can be found on the Custom Controls page.
- First Installation
- RetroPie Installation
- Kickstart ROMs (BIOS)
- Compiling from source
- Frequently Asked Questions
- Default Options
- How to enable Integer Scaling