I’ve successfully got a wired PS3 controller working, but the problem is that it always takes the js0 input, moving my two arcade joysticks on the controlblock to js1 and js2. Ideally, I would like the PS3 controller to be on js2.
Is there a way to force the joysticks to stay on js0 and js1? I’ve searched the forums for the past two days and tried everything! I’ve tried changing retroarch cfg files to assign player 1 to js1 and player 2 to js2, but then if I remove the PS3 controller, I will have to revert the cfg file back.
There’s got to be a better way? Any help would be greatly appreciated!
I managed to have another go at this and I think I got it working.
1. Plug in a controller to any USB port and type this command:
udevadm info –query=property –name=/dev/input/js0
2. Move the controller to the other USB ports and run the command above.
3. The information returned from each USB port allows you to create a file named 20-custom.rules in /etc/udev/rules.d with the following contents:
# Lower Left USB Port
KERNEL==”js*”, KERNELS==”1-1.3″, NAME=”input/js0″
# Lower Right USB Port
KERNEL==”js*”, KERNELS==”1-1.5″, NAME=”input/js1″
# Upper Left USB Port
KERNEL==”js*”, KERNELS==”1-1.2″, NAME=”input/js2″
# Upper Right USB Port
KERNEL==”js*”, KERNELS==”1-1.4″, NAME=”input/js3″
This results in a control pad being connected to, for example, the upper left USB port to be assigned js2. It doesn’t differentiate between devices but using their model/serial/name rather than which USB port they are connected to should generate this behaviour.