- Identify the Product ID and Vendor ID of your controller: Ensure that the directory /storage/emulated/0/RetroArch/autoconfig/ remains empty, then restart RetroArch. This action will compel RetroArch to enter fallback mode, displaying a message like "[Controller name] ([Vendor ID]/[Product ID]) not configured, using fallback". Record the four-digit numbers for both IDs.
* **Back**: Needed to return to `Main Menu -> Quit` after configuring `Settings -> Directory -> Controller Profiles`, ensuring the settings are saved to retroarch.cfg.
- Modification Restrictions: You are not allowed to change existing autoconfig files. Files that are initially disabled have "(default-off)" in their names. Without root access, you cannot modify these files to toggle the input_vendor_id and input_product_id settings. This restriction applies to both the "(default-off)" files and the "original" autoconfig files, which are more widely used and have been set to be enabled by default. These original files must also be commented to make changes. This limitation affects both HID and non-HID files, as well as controllers with multiple autoconfig files, such as the Sony DualSense controller, which includes several Android autoconfig files.
- **Modification Restrictions:** Existing autoconfig files cannot be altered. Non-HID files (with "(default-off)" in their names) are disabled by default and require uncommenting of `input_vendor_id` and `input_product_id`. Conversely, these IDs must be commented in HID files.
- Comment above input_device: `# "Nintendo Co., Ltd. Pro Controller.cfg", and "Nintendo Switch Pro Controller.cfg", are copies except for the `input_device` variable value, which is modified to ensure the `linuxraw` driver can detect the controller across various Linux kernel versions.`
1. **Variable Replacement:**
- Replace `input_l2_btn` with `input_l2_axis`
- Replace `input_r2_btn` with `input_r2_axis`
2. **Suffix Importance:**
The `_axis` suffix is essential for ensuring proper analog functionality. Simply changing values without updating the suffix from `_btn` to `_axis` will not achieve the desired result.
3. **Common Pitfall:** Users often unintentionally incorporate analog variable values without properly adjusting the existing variable names to reflect their analog nature. This oversight frequently results in configuration problems within the system.
Emphasizes the importance of creating new entries for "input_l2_axis" and "input_r2_axis" instead of altering existing "input_l2_btn" and "input_r2_btn" settings
Update controller-autoconfiguration.md: Updated the axis labels for analog L2 and R2 inputs. Replaced "controller name" with "Device Index". Described that linxraw does not provide Vendor ID (VID) and Product ID (PID) info
It's important to note an exception involving the linuxraw driver. This driver uses an interface that does not provide Vendor ID (VID) and Product ID (PID) information. Instead, it only supplies a device name, which can be accessed using the `JSIOCGNAME` ioctl command from the Linux kernel. As a result, matching for controllers using the linuxraw driver relies more heavily on the device name rather than the usual vid:pid identifiers.
In-depth and structured explanation of the mapping and labeling process, with a particular emphasis on analog inputs and PlayStation controllers.
Most notably, changed
```
input_l2_axis_label = "L2"
input_r2_axis_label = "R2"
```
to
```
input_l2_axis_label = "L2 Analog"
input_r2_axis_label = "R2 Analog"
```
Apple TV version of RetroArch can only load content if the user places their game files/folders inside the downloads folder. I don't believe this is covered in the documentation already, and it's a crucial bit of info I was searching for when I first started trying to use RA on Apple TV.
1. When multiple autoconfig files exist for a single device, causing confusion in the system. This primarily occurs with controllers that require different configurations based on kernel versions. For example, the Nintendo Switch Pro Controller on Linux, where older kernels necessitate a different button mapping compared to newer kernels.
2. With unlicensed controllers that mimic the vendor ID and product ID of official controllers but require their own specific autoconfig because they only partially emulate the original device's mappings. For example, the Data Frog P02 mimics a PlayStation 4 controller's vendor ID and product ID, but features a different input_menu_toggle_btn value, necessitating a unique configuration.