You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/guides/controller-autoconfiguration.md
+18-1Lines changed: 18 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@ The matching algorithm considers several key factors:
53
53
-**Device Index (input_device)**: The name of the controller as recognized by the system. The **Device Index** can be identified by navigating to **Settings -> Input -> RetroPad Binds -> Port 1 Controls**.
54
54
-**Vendor ID (input_vendor_id)**: A unique identifier assigned to the controller's manufacturer.
55
55
-**Product ID (input_product_id)**: A specific identifier for the particular controller model.
56
-
-**Physical ID (input_phys_id)**: A manually generated identifier, only valid for one specific controller / USB port. Documentation [in github](https://github.com/libretro/RetroArch/pull/18190) for the time being.
56
+
-**Physical ID (input_phys)**: A locally generated identifier in supported drivers, only valid for one specific controller instance / USB port.
57
57
58
58
### Matching process
59
59
RetroArch compares these factors against the files in the autoconfig directorys. It calculates a matching score for each profile, selecting the one with the highest score to configure the controller.
@@ -62,6 +62,23 @@ The combination of Vendor ID and Product ID is often referred to as "vid:pid" in
62
62
63
63
This automated matching system allows RetroArch to support a vast array of controllers, reducing the need for manual setup in most situations.
64
64
65
+
### Physical identifier customization
66
+
67
+
Supported controller drivers (currently, this is only Linux/udev) will interrogate further physical details about the controller: USB port and serial number. The value of this attribute can be determined from RetroArch debug logs. A few examples (serial redacted):
68
+
```
69
+
[DEBUG] [Autoconf] Config files scanned: driver udev, pad name Microsoft Xbox Series S|X Controller (045e/0b12), phys usb-0000:04:00.0-2/input0, affinity 41
70
+
[DEBUG] [Autoconf] Config files scanned: driver udev, pad name Sony Interactive Entertainment Wireless Controller (054c/09cc), phys 28:c1:3c:__:__:__, affinity 50
71
+
```
72
+
73
+
Both identifiers will be queried, but support is not guaranteed. In the example above, one has the USB port, the other has the serial number.
74
+
75
+
To use the physical identifier for matching, duplicate the existing autoconfig file (to avoid overwriting it when pulling an update), and extend it with the `input_phys` attribute. Partial matches are supported.
76
+
```
77
+
input_phys = "usb-0000:04:00.0-2"
78
+
```
79
+
80
+
It is also worth to change `display_name`, to immediately see if the match went as expected.
|`udev`| Access to the udev interface (see below) | Yes | Yes |
54
+
|`udev`| Access to the udev interface (see below) | Yes | Yes (+[physical ID support](../../guides/controller-autoconfiguration/#physical-identifier-customization)) |
55
55
|`sdl2`| - | Yes | Yes |
56
56
|`linuxraw`| - | No | Yes |
57
57
|`parport`|[Special adapter](../../development/retroarch/input/parallel-port-controllers/) on physical parallel port | No | No |
0 commit comments