Controlblock joysticks + USB (PS3) controllers at the same time?

Welcome Page Forums RetroPie Project Controller Configuration in RetroPie Controlblock joysticks + USB (PS3) controllers at the same time?

This topic contains 2 replies, has 2 voices, and was last updated by  colinshare84 2 years, 4 months ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
  • #105398


    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 had a shot at something very similar to this recently but gave up! I’m not experienced enough in Linux to see it through to the end.

    You could have a shot and see if you have any more luck. Here are the links to the pages I used:

    Using UDEV rules to assign persistent names to joypads

    As a rough guide, here are the steps I used:


    udevadm info –name=/dev/input/js0 –attribute-walk

    and then use the information which is returned to create a udev rule (in /etc/udev/rules.d)

    Good luck!



    For anyone that’s interested…

    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.

    Hope this is of help to someone!

Viewing 3 posts - 1 through 3 (of 3 total)

Forums are currently read only - please visit the new RetroPie forums at

PLEASE NOTE: All orders that are placed between January 14th and January 28th will be shipped on January 29th. Dismiss