Skip to content

Commit

Permalink
Update controller-autoconfiguration.md
Browse files Browse the repository at this point in the history
Text was removed to incorporate comments into the autoconfig files following consensus: libretro/retroarch-joypad-autoconfig#1181 (comment). This user guide is sufficiently documented to serve as a reference instead of including comments within the files.
  • Loading branch information
davidhedlund authored Aug 23, 2024
1 parent 32be86d commit 09269e1
Showing 1 changed file with 1 addition and 14 deletions.
15 changes: 1 addition & 14 deletions docs/guides/controller-autoconfiguration.md
Original file line number Diff line number Diff line change
Expand Up @@ -294,12 +294,7 @@ SDL2 uses the [SDL2 Game controller community database](https://github.com/mdqin
You can check it using [SDL2 Gamepad Mapper](https://gitlab.com/ryochan7/sdl2-gamepad-mapper/-/releases).

#### Appimage issue
Currently, the SDL2 controller driver utilizes UDEV rather than SDL2 in the RetroArch Appimage package. Therfore, use the Flatpak package in order to upload SDL2 autoconfig files and include this comment in the autocomment file

```
# This autoconfig file was generated using RetroArch via the Flathub package.
# Please refrain from updating it with an autoconfig created by the AppImage: The SDL2 controller driver utilizes UDEV rather than SDL2 - https://github.com/hizzlekizzle/RetroArch-AppImage/issues/12
```
Currently, the SDL2 controller driver utilizes UDEV rather than SDL2 in the RetroArch Appimage package. Therfore, use the Flatpak package in order to upload SDL2 autoconfig files.

### linuxraw, and udev naming schemes (depends on multiple Device Indexes)
Both linuxraw, and udev controller driver relies on the `input_device` variable in the autoconfig file generated by the Device Index (described below) and does not use the `input_vendor_id` or `input_product_id` variables in the autoconfig file. The Device Index vary based on the Linux kernel version in GNU/Linux distributions. So to ensure compatibility, you must compare the Device Index across different Linux kernels and generate autoconfig files when they differ. The easiest way to do this is to run GNU/Linux distributions in live mode or as installed virtual machines.
Expand All @@ -319,15 +314,11 @@ In the above list, three unique Device Index entries are identified, which requi
- Variable: `input_device_display_name = "Nintendo Switch Pro Controller (non-HID)"`

- **Nintendo Switch Pro Controller.cfg**:
- Comment above input_device: [1]
- Variable: `input_device = "Nintendo Switch Pro Controller"`

- **Nintendo Co., Ltd. Pro Controller.cfg**:
- Comment above input_device: [1]
- Variable: `input_device = "Nintendo Co., Ltd. Pro Controller"`

1: `# The files "Nintendo Co., Ltd. Pro Controller.cfg" and "Nintendo Switch Pro Controller.cfg" should have identical content except for the input_device variable. This difference allows the controller driver to recognize the controller on various Linux kernel versions.`

#### Example: Sony DualSense

| Linux Kernel Version | HID Support | Device Index in RetroArch (USB) | Device Index in RetroArch (Bluetooth) |
Expand All @@ -339,17 +330,13 @@ In the above list, three unique Device Index entries are identified, which requi

In the above list, two unique Device Index entries are identified, which require these autoconfig files for the controller to be identified for the controller drivers:
- **Sony Interactive Entertainment DualSense Wireless Controller.cfg**:
- Comment above input_device: [1]
- Variable: `input_device = "Sony Interactive Entertainment DualSense Wireless Controller"`
- Variable: `input_device_display_name = "Sony DualSense (USB)"`

- **DualSense Wireless Controller.cfg**:
- Comment above input_device: [1]
- Variable: `input_device = "DualSense Wireless Controller"`
- Variable: `input_device_display_name = "Sony DualSense (BlueTooth)"`

1: `# The files "DualSense Wireless Controller.cfg" and "Sony Interactive Entertainment DualSense Wireless Controller.cfg" should have identical content except for the input_device variable. This difference allows the controller driver to recognize the controller on various Linux kernel versions.`

## Troubleshooting
If your joypad is not configured properly, you should [generate a RetroArch log](/docs/guides/generating-retroarch-logs.md). Your log will show if a profile has been matched for your pad and the path of the corresponding profile.

Expand Down

0 comments on commit 09269e1

Please sign in to comment.