RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    how to configure PS3 Compatible wireless controller? (Universal Controller xboxdrv)

    Scheduled Pinned Locked Moved Help and Support
    xboxdrvcontrollermapppingmapping keys
    13 Posts 2 Posters 1.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mituM
      mitu Global Moderator
      last edited by

      Looks like the udev rule is not working as expected and the /dev/input/ps3controller is not created correctly. You're using the PS3 controller via bluetooth, right ?

      D 1 Reply Last reply Reply Quote 0
      • D
        derebo @mitu
        last edited by

        @mitu Yes, via bluetooth. Thank you. And previously it's been correctly configured in EmulationStation (Menu > Configure Input). Here it is:

        pi@retropie:/opt/retropie/configs/all/retroarch/autoconfig $ cat Sony\ PLAYSTATION\(R\)3\ Controller.cfg 
        input_device = "Sony PLAYSTATION(R)3 Controller"
        input_driver = "udev"
        input_r_y_plus_axis = "+4"
        input_r_x_minus_axis = "-3"
        input_l_btn = "4"
        input_load_state_btn = "4"
        input_start_btn = "9"
        input_exit_emulator_btn = "9"
        input_r_y_minus_axis = "-4"
        input_down_btn = "14"
        input_l_x_plus_axis = "+0"
        input_r_btn = "5"
        input_save_state_btn = "5"
        input_right_btn = "16"
        input_state_slot_increase_btn = "16"
        input_select_btn = "8"
        input_left_btn = "15"
        input_state_slot_decrease_btn = "15"
        input_l3_btn = "11"
        input_l_y_minus_axis = "-1"
        input_up_btn = "13"
        input_a_btn = "1"
        input_b_btn = "0"
        input_reset_btn = "0"
        input_enable_hotkey_btn = "8"
        input_l_y_plus_axis = "+1"
        input_r3_btn = "12"
        input_x_btn = "2"
        input_menu_toggle_btn = "2"
        input_l_x_minus_axis = "-0"
        input_y_btn = "3"
        input_r_x_plus_axis = "+3"
        
        mituM 1 Reply Last reply Reply Quote 0
        • mituM
          mitu Global Moderator @derebo
          last edited by

          @derebo I'll see about that udev rule and post an update later on.

          1 Reply Last reply Reply Quote 1
          • D
            derebo
            last edited by

            Just as additional feedback in case it may be of help as there is reference to --udev failing with exit code 1.
            Upon synching PS3 Compatible wireless Controller:

            pi@retropie:~ $ sudo tail -f /var/log/syslog 
            Apr 28 10:48:57 retropie kernel: [   41.829806] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
            Apr 28 10:48:57 retropie kernel: [   41.829839] Bluetooth: HIDP socket layer initialized
            Apr 28 10:48:57 retropie kernel: [   41.852274] hid_sony: loading out-of-tree module taints kernel.
            Apr 28 10:48:57 retropie kernel: [   41.855251] sony 0005:054C:0268.0002: unknown main item tag 0x0
            Apr 28 10:48:57 retropie kernel: [   41.863446] input: Sony PLAYSTATION(R)3 Controller Motion Sensors as /devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:054C:0268.0002/input/input2
            Apr 28 10:48:57 retropie kernel: [   41.864633] input: Sony PLAYSTATION(R)3 Controller as /devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:054C:0268.0002/input/input1
            Apr 28 10:48:57 retropie kernel: [   41.865267] sony 0005:054C:0268.0002: input,hidraw1: BLUETOOTH HID v80.00 Joystick [Sony PLAYSTATION(R)3 Controller] on b8:27:eb:91:6d:8e
            Apr 28 10:48:57 retropie systemd[1]: Created slice system-sixaxis.slice.
            Apr 28 10:48:57 retropie systemd[1]: Started sixaxis helper (sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:054C:0268.0002/input/input1).
            Apr 28 10:48:57 retropie systemd-udevd[710]: Process '/usr/bin/jscal-restore /dev/input/js1' failed with exit code 1.
            Apr 28 10:48:57 retropie systemd-udevd[710]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
            Apr 28 10:48:57 retropie systemd-udevd[708]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
            Apr 28 10:48:57 retropie systemd-udevd[711]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
            Apr 28 10:48:57 retropie systemd[1]: Started sixaxis helper (/dev/input/event2).
            Apr 28 10:48:57 retropie sixaxis-helper.sh[728]: Calibrating: Sony PLAYSTATION(R)3 Controller (06:26:64:A1:63:25)
            Apr 28 10:48:58 retropie sixaxis-helper.sh[728]: Setting 600 second timeout on: Sony PLAYSTATION(R)3 Controller (06:26:64:A1:63:25)
            Apr 28 10:49:07 retropie kernel: [   52.311582] sony 0005:054C:0268.0002: failed to send raw request, attempting fallback
            

            I reiterate, that the controller works perfectly in EmulationStation and running Atari 2600 or Megadrive videogames, as is. No more posts from my side now. I await your update.

            Thank you and regards,

            1 Reply Last reply Reply Quote 0
            • mituM
              mitu Global Moderator
              last edited by

              Try this for your udev rule, replacing what you have right now.

              ACTION=="add", SUBSYSTEMS=="input", ATTRS{name}=="Sony PLAYSTATION(R)3 Controller", ENV{DEVNAME}=="/dev/input/event*", SYMLINK+="input/ps3controller"
              

              NOTE: this works only if you have a single PS3 controller, if you attach a 2nd one, the symlink will move to the 2nd one.

              1 Reply Last reply Reply Quote 0
              • D
                derebo
                last edited by

                Thank you once more, indeed. In short, /dev/input/ps3controller is now detected (great!) but I can't find a way to configure VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 as detailed below.

                As per your comment, there are two controllers connected to RPi3:

                • SNES Compatible USB controller, via USB
                • PS3 Compatible Wireless controller, via bluetooth

                File edited as per indication and

                sudo reboot
                
                pi@retropie:~ $ sudo cat /etc/udev/rules.d/85-jseventname.rules
                ACTION=="add", SUBSYSTEMS=="input", ATTRS{name}=="Sony PLAYSTATION(R)3 Controller", ENV{DEVNAME}=="/dev/input/event*", SYMLINK+="input/ps3controller"
                
                pi@retropie:~ $ cat /proc/bus/input/devices
                I: Bus=0003 Vendor=0810 Product=e501 Version=0110
                N: Name="usb gamepad           "
                P: Phys=usb-3f980000.usb-1.5/input0
                S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/0003:0810:E501.0001/input/input0
                U: Uniq=
                H: Handlers=js0 event0 
                B: PROP=0
                B: EV=1b
                B: KEY=3ff 0 0 0 0 0 0 0 0 0
                B: ABS=3
                B: MSC=10
                
                pi@retropie:~ $ ls -alh /dev/input/
                total 0
                drwxr-xr-x   4 root root     140 Apr 28 19:44 .
                drwxr-xr-x  14 root root    3.3K Apr 28 19:44 ..
                drwxr-xr-x   2 root root      80 Apr 28 19:44 by-id
                drwxr-xr-x   2 root root      80 Apr 28 19:44 by-path
                crw-rw----+  1 root input 13, 64 Apr 28 19:44 event0
                crw-rw----+  1 root input 13,  0 Apr 28 19:44 js0
                crw-rw----   1 root input 13, 63 Apr 28 19:44 mice
                
                pi@retropie:~ $ ls -alh /dev/input/by-id/
                total 0
                drwxr-xr-x 2 root root  80 Apr 28 19:44 .
                drwxr-xr-x 4 root root 140 Apr 28 19:44 ..
                lrwxrwxrwx 1 root root   9 Apr 28 19:44 usb-0810_usb_gamepad-event-joystick -> ../event0
                lrwxrwxrwx 1 root root   6 Apr 28 19:44 usb-0810_usb_gamepad-joystick -> ../js0
                
                pi@retropie:~ $ ls -alh /dev/input/by-path/
                total 0
                drwxr-xr-x 2 root root  80 Apr 28 19:44 .
                drwxr-xr-x 4 root root 140 Apr 28 19:44 ..
                lrwxrwxrwx 1 root root   9 Apr 28 19:44 platform-3f980000.usb-usb-0:1.5:1.0-event-joystick -> ../event0
                lrwxrwxrwx 1 root root   6 Apr 28 19:44 platform-3f980000.usb-usb-0:1.5:1.0-joystick -> ../js0
                pi@retropie:~ $
                

                Now, I switch on my PS3 Compatible Wireless Controller and inmediately after synching /dev/input/ps3controller does show, good thing!

                pi@retropie:~ $ sudo tail -f /var/log/syslog 
                Apr 28 19:49:51 retropie kernel: [  301.907884] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
                Apr 28 19:49:51 retropie kernel: [  301.907928] Bluetooth: HIDP socket layer initialized
                Apr 28 19:49:51 retropie kernel: [  301.933904] hid_sony: loading out-of-tree module taints kernel.
                Apr 28 19:49:51 retropie kernel: [  301.936812] sony 0005:054C:0268.0002: unknown main item tag 0x0
                Apr 28 19:49:51 retropie kernel: [  301.944278] input: Sony PLAYSTATION(R)3 Controller Motion Sensors as /devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:054C:0268.0002/input/input2
                Apr 28 19:49:51 retropie kernel: [  301.945575] input: Sony PLAYSTATION(R)3 Controller as /devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:054C:0268.0002/input/input1
                Apr 28 19:49:51 retropie kernel: [  301.946305] sony 0005:054C:0268.0002: input,hidraw1: BLUETOOTH HID v80.00 Joystick [Sony PLAYSTATION(R)3 Controller] on b8:27:eb:91:6d:8e
                Apr 28 19:49:51 retropie systemd[1]: Created slice system-sixaxis.slice.
                Apr 28 19:49:51 retropie systemd[1]: Started sixaxis helper (sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:054C:0268.0002/input/input1).
                Apr 28 19:49:51 retropie systemd-udevd[766]: Process '/usr/bin/jscal-restore /dev/input/js1' failed with exit code 1.
                Apr 28 19:49:51 retropie systemd-udevd[766]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                Apr 28 19:49:51 retropie systemd-udevd[763]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                Apr 28 19:49:51 retropie systemd-udevd[764]: Process '/usr/sbin/th-cmd --socket /var/run/thd.socket --passfd --udev' failed with exit code 1.
                Apr 28 19:49:51 retropie systemd[1]: Started sixaxis helper (/dev/input/event2).
                Apr 28 19:49:51 retropie sixaxis-helper.sh[781]: Calibrating: Sony PLAYSTATION(R)3 Controller (06:26:64:A1:63:25)
                Apr 28 19:49:52 retropie sixaxis-helper.sh[781]: Setting 600 second timeout on: Sony PLAYSTATION(R)3 Controller (06:26:64:A1:63:25)
                Apr 28 19:50:01 retropie kernel: [  312.152865] sony 0005:054C:0268.0002: failed to send raw request, attempting fallback
                
                pi@retropie:~ $ cat /proc/bus/input/devices
                I: Bus=0003 Vendor=0810 Product=e501 Version=0110
                N: Name="usb gamepad           "
                P: Phys=usb-3f980000.usb-1.5/input0
                S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/0003:0810:E501.0001/input/input0
                U: Uniq=
                H: Handlers=js0 event0 
                B: PROP=0
                B: EV=1b
                B: KEY=3ff 0 0 0 0 0 0 0 0 0
                B: ABS=3
                B: MSC=10
                
                I: Bus=0005 Vendor=054c Product=0268 Version=8000
                N: Name="Sony PLAYSTATION(R)3 Controller Motion Sensors"
                P: Phys=b8:27:eb:91:6d:8e
                S: Sysfs=/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:054C:0268.0002/input/input2
                U: Uniq=06:26:64:a1:63:25
                H: Handlers=event1 
                B: PROP=40
                B: EV=9
                B: ABS=7
                
                I: Bus=0005 Vendor=054c Product=0268 Version=8000
                N: Name="Sony PLAYSTATION(R)3 Controller"
                P: Phys=b8:27:eb:91:6d:8e
                S: Sysfs=/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:054C:0268.0002/input/input1
                U: Uniq=06:26:64:a1:63:25
                H: Handlers=js1 event2 
                B: PROP=0
                B: EV=20001b
                B: KEY=f 0 0 0 0 0 0 0 7fdb0000 0 0 0 0 0 0 0 0 0
                B: ABS=3f
                B: MSC=10
                B: FF=1 7030000 0 0
                
                pi@retropie:~ $ ls -alh /dev/input/
                total 0
                drwxr-xr-x   4 root root     200 Apr 28 19:49 .
                drwxr-xr-x  14 root root    3.3K Apr 28 19:49 ..
                drwxr-xr-x   2 root root      80 Apr 28 19:44 by-id
                drwxr-xr-x   2 root root      80 Apr 28 19:44 by-path
                crw-rw----+  1 root input 13, 64 Apr 28 19:44 event0
                crw-rw----+  1 root input 13, 66 Apr 28 19:49 event2
                crw-rw----+  1 root input 13,  0 Apr 28 19:44 js0
                crw-rw----+  1 root input 13,  1 Apr 28 19:49 js1
                crw-rw----   1 root input 13, 63 Apr 28 19:44 mice
                lrwxrwxrwx   1 root root       6 Apr 28 19:49 ps3controller -> event2
                
                pi@retropie:~ $ ls -alh /dev/input/by-id/
                total 0
                drwxr-xr-x 2 root root  80 Apr 28 19:44 .
                drwxr-xr-x 4 root root 200 Apr 28 19:49 ..
                lrwxrwxrwx 1 root root   9 Apr 28 19:44 usb-0810_usb_gamepad-event-joystick -> ../event0
                lrwxrwxrwx 1 root root   6 Apr 28 19:44 usb-0810_usb_gamepad-joystick -> ../js0
                
                pi@retropie:~ $ ls -alh /dev/input/by-path/
                total 0
                drwxr-xr-x 2 root root  80 Apr 28 19:44 .
                drwxr-xr-x 4 root root 200 Apr 28 19:49 ..
                lrwxrwxrwx 1 root root   9 Apr 28 19:44 platform-3f980000.usb-usb-0:1.5:1.0-event-joystick -> ../event0
                lrwxrwxrwx 1 root root   6 Apr 28 19:44 platform-3f980000.usb-usb-0:1.5:1.0-joystick -> ../js0
                pi@retropie:~ $
                

                At this stage, the PS3 controller cannot be used in EmulationStation yet as it must be configured. evtest does not even show yet VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3...

                pi@retropie:~ $ evtest 
                No device specified, trying to scan all of /dev/input/event*
                Not running as root, no devices may be available.
                Available devices:
                /dev/input/event0:	usb gamepad           
                /dev/input/event2:	Sony PLAYSTATION(R)3 Controller
                Select the device event number [0-2]:
                

                RetroPie > RetroArch
                shows
                Sony PLAYSTATION(R)3 Controller configured in port #0
                usb gamepad configured in port #1

                When launching MSX videogame (lr-bluemsx), the screen shows:

                xboxdrv 0.8.8
                [...]
                /dev/input/js2
                /dev/input/event1
                

                The launbox is displayed, next videogame welcome screen and at the same time at the bottom left of the screen:

                Sony PLAYSTATION(R)3 Controller configured in port #0
                usb gamepad configured in port #1
                VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 (0/0) not configured

                From that moment on, the PS3 Compatible Wireless Controller is irresponsive.

                So if VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 is not configured, I will try to configure it. So...

                sudo reboot
                

                From EmulationStation > Start > Configure Input (2 gamepads detected)
                which are

                • usb gamepad
                • Sony PLAYSTATION(R)3 Controller

                I understand VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 is not detected because xboxdrv has not been launched - it's run only when running an MSX videogame. So I don't know how to configure it from EmulationStation.

                So, let's try from Retropie > Retroarch > Settings > Input >
                Port 1 Binds > Device Index > Sony PLAYSTATION(R)3
                Port 2 Binds > Device Index > usb gamepad

                Device index does not show VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 so I can't see a way to configure VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3. Advice is appreciated indeed.

                As a workaround, I have run in terminal just for the sake of creating a .cfg that may be used in EmulationStation at least:

                sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                        --evdev /dev/input/event2 \
                        --silent \
                        --detach-kernel-driver \
                        --force-feedback \
                        --deadzone-trigger 15% \
                        --deadzone 4000 \
                        --device-name "VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3" \
                        --dpad-as-button \
                        --evdev-keymap BTN_DPAD_UP=du,BTN_DPAD_DOWN=dd,BTN_DPAD_LEFT=dl,BTN_DPAD_RIGHT=dr \
                        --evdev-keymap BTN_EAST=a,BTN_SOUTH=b,BTN_NORTH=x,BTN_WEST=y \
                        --evdev-keymap BTN_SELECT=back,BTN_START=start \
                        --evdev-keymap BTN_TL=lb,BTN_TR=rb \
                        --evdev-keymap BTN_TL2=lt,BTN_TR2=rt \
                        --evdev-keymap BTN_THUMBL=tl,BTN_THUMBR=tr \
                        --evdev-keymap BTN_MODE=guide \
                	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2 \
                        &
                

                which has allowed configuring input for VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 in EmulationStation
                /opt/retropie/configs/all/retroarch-joypads/VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3.cfg
                is automatically created after configuration.

                RetroPie > RetroArch
                still shows
                Sony PLAYSTATION(R)3 Controller configured in port #0
                usb gamepad configured in port #1
                which makes sense as xboxdrv is not run yet

                When launching MSX videogame (lr-bluemsx), the screen shows:

                xboxdrv 0.8.8
                [...]
                /dev/input/js2
                /dev/input/event1
                

                The launbox is displayed, next videogame welcome screen and at the same time at the bottom left of the screen:

                Sony PLAYSTATION(R)3 Controller configured in port #0
                usb gamepad configured in port #1
                VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 configured in port #2

                So there it is in port #2. Good! So this part at leat is solved.

                However, controller is irrensponsive. Pressing PS3 button = xboxdrv guide button should map to SPACE to start game. Eg. Thumb left should toggle F1 and Thumb Right toggle F2 for the trainer infinite lives and infinite time respectively. As said, not just PS3 button but every button is irresponsive at this time.

                pi@retropie:~ $ cat /opt/retropie/configs/all/runcommand-onstart.sh 
                #!/bin/sh
                if [ "$1" = "msx" ]
                then
                sudo killall >> /dev/shm/runcommand.log 2>&1 xboxdrv
                sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                        --evdev /dev/input/ps3controller \
                        --silent \
                        --detach-kernel-driver \
                        --force-feedback \
                        --deadzone-trigger 15% \
                        --deadzone 4000 \
                        --device-name "VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3" \
                        --dpad-as-button \
                        --evdev-keymap BTN_DPAD_UP=du,BTN_DPAD_DOWN=dd,BTN_DPAD_LEFT=dl,BTN_DPAD_RIGHT=dr \
                        --evdev-keymap BTN_EAST=a,BTN_SOUTH=b,BTN_NORTH=x,BTN_WEST=y \
                        --evdev-keymap BTN_SELECT=back,BTN_START=start \
                        --evdev-keymap BTN_TL=lb,BTN_TR=rb \
                        --evdev-keymap BTN_TL2=lt,BTN_TR2=rt \
                        --evdev-keymap BTN_THUMBL=tl,BTN_THUMBR=tr \
                        --evdev-keymap BTN_MODE=guide \
                        --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2 \
                        --ui-buttonmap lb=KEY_SPACE,rb=KEY_1,lt=KEY_2,rt=KEY_0 \
                        --ui-buttonmap tl=KEY_F1,tr=KEY_F2 \
                        --ui-buttonmap guide=KEY_SPACE \
                        &
                fi
                

                I am under the impression that at this stage the full solution is so close. Thank you once more for your time and support.

                1 Reply Last reply Reply Quote 0
                • mituM
                  mitu Global Moderator
                  last edited by

                  The VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 will not appear unless you start xboxdrv, so yes, it must start xboxdrv before you configure it in EmulationStation.

                  RetroPie > RetroArch
                  still shows
                  Sony PLAYSTATION(R)3 Controller configured in port #0
                  usb gamepad configured in port #1

                  This means your PS3 controller is still P1, so maybe the joystick re-ordering doesn't work. Since the PS3 controller is 'masked' by xboxdrv, its inputs might not be registering.

                  As I said, I don't have experiene with xboxdrv so I don't know why it's not working in-game, but I say you fix the joystick ordering first - so that VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 comes up as port #0 - and then re-test.

                  1 Reply Last reply Reply Quote 0
                  • D
                    derebo
                    last edited by

                    Thank you, as always. How would you suggest fixing joystick reordering, please? Can it be achived by tweaking some config file? I had thought about using RetroPie-joystick-selection script but still, since xboxdrv is not loaded, Retropie > Configuration / Options > joystick-selection does not show VIRTUAL-XBOX360-CONTROLLER-FOR-PSX3 so maybe you could help with some advice?

                    Thank you & regards,

                    mituM 1 Reply Last reply Reply Quote 0
                    • mituM
                      mitu Global Moderator @derebo
                      last edited by mitu

                      For joystick reordering, I recommend you disable/uninstall the joystick selection tool and try to do it with a simple configuration in /opt/retropie/configs/msx/retroarch.cfg. Add the following lines before the last line in the file (which has the #include).

                      input_player1_joypad_index = 2
                      input_player3_joypad_index=0
                      

                      This should switch P1 and P3 gamepads so P1 = PS3, P3 = Xboxdrv should become P1 = XboxDrv and P3 = PS3. Give it a try.

                      EDIT: you can also use the joystick tool, but you'll have to start xboxdrv before and start the tool from the RetroPie-Setup, I think it should work.

                      1 Reply Last reply Reply Quote 0
                      • D
                        derebo
                        last edited by

                        I have tried it with the simple configuration you suggest in /opt/retropie/configs/msx/retroarch.cfg and have not been successful. I have run different combinations and, after no luck, I have reintalled from scracth:

                        Latest RetroPie 4.6
                        Only SNES Compatible USB Controller
                        Installed only xboxdrv and lr-bluemsx

                        to reach the same situation in previous message. Briefly:

                        pi@retropie:~ $ ls -alh /dev/input/by-id/
                        total 0
                        drwxr-xr-x 2 root root  80 Apr 29 21:26 .
                        drwxr-xr-x 4 root root 200 Apr 29 21:26 ..
                        lrwxrwxrwx 1 root root   9 Apr 29 21:26 usb-0810_usb_gamepad-event-joystick -> ../event0
                        lrwxrwxrwx 1 root root   6 Apr 29 21:26 usb-0810_usb_gamepad-joystick -> ../js0
                        
                        pi@retropie:~ $ sudo cat /etc/rc.local 
                        if [ "$_IP" ]; then
                          printf "My IP address is %s\n" "$_IP"
                        fi
                        
                        sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                --evdev /dev/input/by-id/usb-0810_usb_gamepad-event-joystick \
                                --silent \
                                --detach-kernel-driver \
                                --force-feedback \
                                --deadzone-trigger 15% \
                                --deadzone 4000 \
                                --device-name "VIRTUAL-SNES2XBOX-CONTROLLER" \
                                --evdev-absmap ABS_X=dpad_x,ABS_Y=dpad_y \
                                --evdev-keymap BTN_THUMB=a,BTN_THUMB2=b,BTN_TRIGGER=x,BTN_WEST=y \
                                --evdev-keymap BTN_BASE3=back,BTN_BASE4=start \
                                --evdev-keymap BTN_TOP2=lb,BTN_PINKIE=rb \
                                --dpad-only \
                                --ui-axismap lt=void,rt=void \
                                --ui-buttonmap y=KEY_SPACE \
                        	--ui-buttonmap lb=void,rb=KEY_0 \
                        	&
                        
                        exit 0
                        
                        pi@retropie:~ $ sudo cat /opt/retropie/configs/all/retroarch-joypads/VIRTUAL-SNES2XBOX-CONTROLLER.cfg 
                        input_device = "VIRTUAL-SNES2XBOX-CONTROLLER"
                        input_driver = "udev"
                        input_enable_hotkey_btn = "4"
                        input_up_axis = "-1"
                        input_left_axis = "-0"
                        input_state_slot_decrease_axis = "-0"
                        input_select_btn = "4"
                        input_right_axis = "+0"
                        input_state_slot_increase_axis = "+0"
                        input_y_btn = "3"
                        input_x_btn = "2"
                        input_menu_toggle_btn = "2"
                        input_down_axis = "+1"
                        input_start_btn = "5"
                        input_exit_emulator_btn = "5"
                        input_b_btn = "1"
                        input_reset_btn = "1"
                        input_a_btn = "0"
                        
                        pi@retropie:~ $ cat /opt/retropie/configs/all/runcommand-onstart.sh 
                        pi@retropie:~ $ cat /opt/retropie/configs/all/runcommand-onend.sh
                        cat: /opt/retropie/configs/all/runcommand-onend.sh: No such file or directory
                        

                        runcommand-onstart.sh is an empty file and runcommand-onend.sh does not exist

                        pi@retropie:~ $ evtest 
                        No device specified, trying to scan all of /dev/input/event*
                        Not running as root, no devices may be available.
                        Available devices:
                        /dev/input/event0:	usb gamepad           
                        /dev/input/event1:	VIRTUAL-SNES2XBOX-CONTROLLER - Keyboard Emulation
                        /dev/input/event2:	VIRTUAL-SNES2XBOX-CONTROLLER
                        Select the device event number [0-2]: ^C
                        

                        Mind it is event2 that responds to SNES Compatible USB Controller (not event1) and mind controller configuration is set to global (all).

                        pi@retropie:~ $ sudo cat /opt/retropie/configs/all/retroarch.cfg
                        [...]
                        input_player1_joypad_index = "1"
                        input_player2_joypad_index = "0"
                        input_player3_joypad_index = "2"
                        input_player4_joypad_index = "3"
                        [...]
                        

                        With the configuration above SNES Compatible USB Controller is usable in EmulationStation. When entering RetroPie > Retroarch (usable as well)...
                        usb gampead configured in port #0
                        VIRTUAL-SNES2XBOX-CONTROLLER configured in port #1

                        Retroarch > Settings > Input >
                        Port 1 Binds VIRTUAL-SNES2XBOX-CONTROLLER
                        Port 2 Binds usb gamepad

                        So the correlation between /opt/retropie/configs/all/retroarch.cfg and Port Binds is obvious.

                        Entering MSX videogame...

                        usb gampead configured in port #0
                        VIRTUAL-SNES2XBOX-CONTROLLER configured in port #1

                        Controller is irresponsive. However, Select+Start (exit emulator) works at least and I can return to EmulationStation. At this stage, I don't know what else to test...

                        Many thanks in advance for your support all the way.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                        Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.