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

    Guide: Advanced Controller Mappings

    Scheduled Pinned Locked Moved Help and Support
    joystickcontrollermappingxboxdrvscummvm
    626 Posts 35 Posters 460.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.
    • mediamogulM
      mediamogul Global Moderator @spud11
      last edited by

      @spud11

      Glad to see you got it going.

      RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

      S 1 Reply Last reply Reply Quote 0
      • H
        Hubz
        last edited by

        Hey quick question, is it possible to map 2 controllers with Xboxdrv for two players to be able to play? It might have been discussed in the thread but I didn't find it. I found mappings for the 2nd player though so I'm assuming it's possible just wasn't sure how to pull it off.

        mediamogulM 1 Reply Last reply Reply Quote 0
        • mediamogulM
          mediamogul Global Moderator @Hubz
          last edited by mediamogul

          @Hubz

          Sure. You'd just string two commands together instead of having just one. A quick example for Intellivision would look like

          if [ "$1" = "intellivision" ]
          then
          sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
          	--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.2:1.0-event-joystick \
          	--detach-kernel-driver \
          	--force-feedback \
          	--dpad-as-button \
          	--trigger-as-button \
          	--deadzone-trigger 15% \
          	--deadzone 4000 \
          	--device-name "Logitech Rumblepad 2 (xboxdrv)" \
          	--silent \
          	--axismap -Y1=Y1,-Y2=Y2 \
          	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
          	--evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_TOP=x,BTN_TRIGGER=y,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr,BTN_BASE=lt,BTN_BASE2=rt \
          	--ui-axismap X1=KEY_S:KEY_D,Y1=KEY_E:KEY_X,X2=KEY_1:KEY_2,Y2=KEY_3:KEY_4,lt+X2=KEY_5:KEY_6,lt+Y2=KEY_7:KEY_8,rt+X2=KEY_9:KEY_0,rt+Y2=KEY_MINUS:KEY_EQUAL \
          	--ui-buttonmap b=KEY_LEFTSHIFT,a=KEY_UNKNOWN,x=KEY_LEFTCTRL,y=KEY_LEFTALT,lb=KEY_UNKNOWN,rb=KEY_UNKNOWN,lt=KEY_UNKNOWN,rt=KEY_UNKNOWN,tl=KEY_UNKNOWN,tr=KEY_UNKNOWN,du=KEY_E,dd=KEY_X,dl=KEY_S,dr=KEY_D,start=KEY_PAUSE \
          	--ui-buttonmap back=cycle-key:KEY_F6:KEY_F5 \
          	--ui-buttonmap back+start=KEY_F1,back+b=KEY_F12,back+y=KEY_F11,back+a=KEY_PAUSE \
          	--ui-buttonmap lt+a=KEY_A,lt+b=KEY_B,lt+x=KEY_X,lt+y=KEY_Y,lt+lb=KEY_L,lt+rb=KEY_R,lt+du=KEY_UP,lt+dd=KEY_DOWN,lt+dl=KEY_LEFT,lt+dr=KEY_RIGHT,lt+start=KEY_T,lt+back=KEY_E \
          	--ui-buttonmap guide=void \
          	&
          sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
          	--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.4:1.0-event-joystick \
          	--detach-kernel-driver \
          	--force-feedback \
          	--dpad-as-button \
          	--trigger-as-button \
          	--deadzone-trigger 15% \
          	--deadzone 4000 \
          	--device-name "Logitech Rumblepad 2 (xboxdrv)" \
          	--silent \
          	--axismap -Y1=Y1,-Y2=Y2 \
          	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
          	--evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_TOP=x,BTN_TRIGGER=y,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr,BTN_BASE=lt,BTN_BASE2=rt \
          	--ui-axismap X1=KEY_J:KEY_K,Y1=KEY_I:KEY_M,X2=KEY_KP1:KEY_KP2,Y2=KEY_KP3:KEY_KP4,lt+X2=KEY_KP5:KEY_KP6,lt+Y2=KEY_KP7:KEY_KP8,rt+X2=KEY_KP9:KEY_DOT,rt+Y2=KEY_0:KEY_ENTER \
          	--ui-buttonmap b=KEY_RIGHTSHIFT,a=KEY_UNKNOWN,x=KEY_RIGHTCTRL,y=KEY_RIGHTALT,lb=KEY_UNKNOWN,rb=KEY_UNKNOWN,lt=KEY_UNKNOWN,rt=KEY_UNKNOWN,tl=KEY_UNKNOWN,tr=KEY_UNKNOWN,du=KEY_I,dd=KEY_M,dl=KEY_J,dr=KEY_K,back=KEY_UNKNOWN,start=KEY_PAUSE \
          	--ui-buttonmap back+start=KEY_F1,back+b=KEY_F12,back+y=KEY_F11,back+a=KEY_PAUSE \
          	--ui-buttonmap lt+a=KEY_A,lt+b=KEY_B,lt+x=KEY_X,lt+y=KEY_Y,lt+lb=KEY_L,lt+rb=KEY_R,lt+du=KEY_UP,lt+dd=KEY_DOWN,lt+dl=KEY_LEFT,lt+dr=KEY_RIGHT,lt+start=KEY_T,lt+back=KEY_E \
          	--ui-buttonmap guide=void \
          	&
          fi
          

          You can even have both those commands set to run by default and have others run for individual games using elif. Adding a map command to the example above that will only launch for 'Masters of The Universe: The Power of He-Man' would look like:

          if [ "$1" = "intellivision" ] && [ "$3" = "/home/pi/RetroPie/roms/intellivision/Masters of the Universe-The Power of He-Man! (1983) (Mattel).int" ]
          then
          sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
          	--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.2:1.0-event-joystick \
          	--detach-kernel-driver \
          	--force-feedback \
          	--dpad-as-button \
          	--trigger-as-button \
          	--deadzone-trigger 15% \
          	--deadzone 4000 \
          	--device-name "Logitech Rumblepad 2 (xboxdrv)" \
          	--silent \
          	--axismap -Y1=Y1,-Y2=Y2 \
          	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
          	--evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_TOP=x,BTN_TRIGGER=y,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr,BTN_BASE=lt,BTN_BASE2=rt \
          	--ui-axismap X1=KEY_S:KEY_D,Y1=KEY_E:KEY_X,X2=KEY_1:KEY_2,Y2=KEY_3:KEY_4,lt+X2=KEY_5:KEY_6,lt+Y2=KEY_7:KEY_8,rt+X2=KEY_9:KEY_0,rt+Y2=KEY_MINUS:KEY_EQUAL \
          	--ui-buttonmap b=KEY_LEFTSHIFT,a=KEY_2,x=KEY_LEFTCTRL,y=KEY_LEFTALT,lb=KEY_UNKNOWN,rb=KEY_UNKNOWN,lt=KEY_UNKNOWN,rt=KEY_UNKNOWN,tl=KEY_UNKNOWN,tr=KEY_UNKNOWN,du=KEY_E,dd=KEY_X,dl=KEY_S,dr=KEY_D,start=KEY_PAUSE \
          	--ui-buttonmap back=cycle-key:KEY_F6:KEY_F5 \
          	--ui-buttonmap back+start=KEY_F1,back+b=KEY_F12,back+y=KEY_F11,back+a=KEY_PAUSE \
          	--ui-buttonmap lt+a=KEY_A,lt+b=KEY_B,lt+x=KEY_X,lt+y=KEY_Y,lt+lb=KEY_L,lt+rb=KEY_R,lt+du=KEY_UP,lt+dd=KEY_DOWN,lt+dl=KEY_LEFT,lt+dr=KEY_RIGHT,lt+start=KEY_T,lt+back=KEY_E \
          	--ui-buttonmap guide=void \
          	&
          elif [ "$1" = "intellivision" ]
          then
          sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
          	--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.2:1.0-event-joystick \
          	--detach-kernel-driver \
          	--force-feedback \
          	--dpad-as-button \
          	--trigger-as-button \
          	--deadzone-trigger 15% \
          	--deadzone 4000 \
          	--device-name "Logitech Rumblepad 2 (xboxdrv)" \
          	--silent \
          	--axismap -Y1=Y1,-Y2=Y2 \
          	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
          	--evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_TOP=x,BTN_TRIGGER=y,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr,BTN_BASE=lt,BTN_BASE2=rt \
          	--ui-axismap X1=KEY_S:KEY_D,Y1=KEY_E:KEY_X,X2=KEY_1:KEY_2,Y2=KEY_3:KEY_4,lt+X2=KEY_5:KEY_6,lt+Y2=KEY_7:KEY_8,rt+X2=KEY_9:KEY_0,rt+Y2=KEY_MINUS:KEY_EQUAL \
          	--ui-buttonmap b=KEY_LEFTSHIFT,a=KEY_UNKNOWN,x=KEY_LEFTCTRL,y=KEY_LEFTALT,lb=KEY_UNKNOWN,rb=KEY_UNKNOWN,lt=KEY_UNKNOWN,rt=KEY_UNKNOWN,tl=KEY_UNKNOWN,tr=KEY_UNKNOWN,du=KEY_E,dd=KEY_X,dl=KEY_S,dr=KEY_D,start=KEY_PAUSE \
          	--ui-buttonmap back=cycle-key:KEY_F6:KEY_F5 \
          	--ui-buttonmap back+start=KEY_F1,back+b=KEY_F12,back+y=KEY_F11,back+a=KEY_PAUSE \
          	--ui-buttonmap lt+a=KEY_A,lt+b=KEY_B,lt+x=KEY_X,lt+y=KEY_Y,lt+lb=KEY_L,lt+rb=KEY_R,lt+du=KEY_UP,lt+dd=KEY_DOWN,lt+dl=KEY_LEFT,lt+dr=KEY_RIGHT,lt+start=KEY_T,lt+back=KEY_E \
          	--ui-buttonmap guide=void \
          	&
          sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
          	--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.4:1.0-event-joystick \
          	--detach-kernel-driver \
          	--force-feedback \
          	--dpad-as-button \
          	--trigger-as-button \
          	--deadzone-trigger 15% \
          	--deadzone 4000 \
          	--device-name "Logitech Rumblepad 2 (xboxdrv)" \
          	--silent \
          	--axismap -Y1=Y1,-Y2=Y2 \
          	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
          	--evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_TOP=x,BTN_TRIGGER=y,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr,BTN_BASE=lt,BTN_BASE2=rt \
          	--ui-axismap X1=KEY_J:KEY_K,Y1=KEY_I:KEY_M,X2=KEY_KP1:KEY_KP2,Y2=KEY_KP3:KEY_KP4,lt+X2=KEY_KP5:KEY_KP6,lt+Y2=KEY_KP7:KEY_KP8,rt+X2=KEY_KP9:KEY_DOT,rt+Y2=KEY_0:KEY_ENTER \
          	--ui-buttonmap b=KEY_RIGHTSHIFT,a=KEY_UNKNOWN,x=KEY_RIGHTCTRL,y=KEY_RIGHTALT,lb=KEY_UNKNOWN,rb=KEY_UNKNOWN,lt=KEY_UNKNOWN,rt=KEY_UNKNOWN,tl=KEY_UNKNOWN,tr=KEY_UNKNOWN,du=KEY_I,dd=KEY_M,dl=KEY_J,dr=KEY_K,back=KEY_UNKNOWN,start=KEY_PAUSE \
          	--ui-buttonmap back+start=KEY_F1,back+b=KEY_F12,back+y=KEY_F11,back+a=KEY_PAUSE \
          	--ui-buttonmap lt+a=KEY_A,lt+b=KEY_B,lt+x=KEY_X,lt+y=KEY_Y,lt+lb=KEY_L,lt+rb=KEY_R,lt+du=KEY_UP,lt+dd=KEY_DOWN,lt+dl=KEY_LEFT,lt+dr=KEY_RIGHT,lt+start=KEY_T,lt+back=KEY_E \
          	--ui-buttonmap guide=void \
          	&
          fi
          

          So basically it dictates that if the system is Intellivision and the ROM is He-Man, then it will launch the He-Man map command. Otherwise, if the system is Intellivision with no specified ROM, it will always fall back to the default one and two player map commands.

          RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

          H 1 Reply Last reply Reply Quote 1
          • H
            Hubz @mediamogul
            last edited by

            @mediamogul Nice! So there are certain games you don't want to run in two player mode like He-Man?

            mediamogulM 1 Reply Last reply Reply Quote 0
            • mediamogulM
              mediamogul Global Moderator @Hubz
              last edited by

              @Hubz

              Not really. It'll just ignore the second controller input if it's a game that doesn't use it.

              RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

              1 Reply Last reply Reply Quote 0
              • S
                spud11 @mediamogul
                last edited by

                @mediamogul Thanks, mediamogul.

                I've also managed to get 2 players working (see below) based on your response to @Hubz, albeit I'm still having the same problems with the "newlines" and finding I'm manually re-doing the carriage returns to get it working.

                #!/bin/sh
                
                if [ "$1" = "amiga" ]
                then
                sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \
                --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \
                --silent \
                --detach-kernel-driver \
                --force-feedback \
                --deadzone-trigger 15% \
                --deadzone 4000 \
                --trigger-as-button \
                --mimic-xpad \
                --device-name "Amiga Joystick Player 1 (xboxdrv)" \
                --evdev-absmap ABS_X=y1,ABS_Y=x1 \
                --evdev-keymap BTN_TRIGGER=X,BTN_THUMB=Y,BTN_THUMB2=A,BTN_PINKIE=B,BTN_BASE3=BACK,BTN_BASE6=START \
                --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \
                &
                sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv >/dev/null 2>&1 \
                --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick \
                --silent \
                --detach-kernel-driver \
                --force-feedback \
                --deadzone-trigger 15% \
                --deadzone 4000 \
                --trigger-as-button \
                --mimic-xpad \
                --device-name "Amiga Joystick Player 2 (xboxdrv)" \
                --evdev-absmap ABS_X=y1,ABS_Y=x1 \
                --evdev-keymap BTN_TRIGGER=Y,BTN_THUMB=A,BTN_THUMB2=BACK,BTN_PINKIE=X,BTN_TOP=B,BTN_TOP2=START \
                --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \
                &
                fi
                

                Since getting this Amiga script working, I've tried to make a script for multiple emulators, similar to the one appearing in my response to @EctoOne at 275 above. I wasn't successful.

                As I've got the Amiga script working based on the if/then statement, I was wondering whether it's possible to adapt the existing script using another if/then statement so that I might also be able to use xboxdrv for particular Arcade games that require 4 way joysticks (like Pacman and Donkey Kong). I've got a list of about 200 arcade games that apparently use 4 way, rather than 8 way, joysticks. I suspect this script might end up being very long....

                Thanks for any help.

                RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                mediamogulM H 2 Replies Last reply Reply Quote 0
                • mediamogulM
                  mediamogul Global Moderator @spud11
                  last edited by

                  @spud11 said in Guide: Advanced Controller Mappings:

                  I'm still having the same problems with the "newlines" and finding I'm manually re-doing the carriage returns to get it working.

                  I had a similar problem with the OSX TextEdit, but was able to set it to Unicode UTF-8. That might not be the exact setting in your case, but it'll end up being easier if you can adapt Notepad++ to omit the rogue carriage returns or find another text editor that doesn't have that issue.

                  I suspect this script might end up being very long.

                  It would indeed. This would seem like a good opportunity to use @MadHorse's expanded case statement technique from the xboxdrv guide. In his example there, you'll see an area for adding just the ROM names of titles that should use a four-way restrictor, making the script much shorter and more manageable.

                  RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                  pjftP S 2 Replies Last reply Reply Quote 0
                  • pjftP
                    pjft @mediamogul
                    last edited by

                    @mediamogul Hi! Here I am, with a few naive questions if I may. This morning I managed to have some time and looked into xboxdrv. I was trying out a simple example to see if I could remap a button to a key, but it didn't seem to work in the game I was trying it in so I thought of dropping by again.
                    I got to launch xboxdrv "properly", and having it assign a new id to my controller. In this case, I was just trying to assign "select" on my controller to "escape" on the keyboard. I did the whole evtest thing.

                    I ran

                    sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                     --evdev /dev/input/by-id/usb-Sony_PLAYSTATION_R_3_Controller-event-joystick \
                    --silent \
                    --detach-kernel-driver \
                    --force-feedback \
                    --deadzone-trigger 15% \
                    --deadzone 4000 \
                    --mimic-xpad \
                    --evdev-keymap BTN_TRIGGER=b \
                    --ui-buttonmap b=KEY_ESC
                    

                    But escape didn't seem to be registered, so I'm surely doing something wrong here. I believe I also tried it with

                     --evdev /dev/input/event2
                    

                    But got similar non-results. :)

                    Is there a way I can just press the buttons on my controller and see if the keys are registering, say by sending characters to the terminal? I'm happy to map it to any other key. Is the right way for that to launch xboxdrv (for instance, via SSH), and go to the terminal on the Pi?

                    Just so I can continue testing.

                    Do I need to explicitly map all the buttons from the controller? Do I explicitly need to map app evdev-keymap definitions to -ui-buttonmap definitions?

                    Thanks, and sorry for the trouble.

                    mediamogulM 1 Reply Last reply Reply Quote 0
                    • mediamogulM
                      mediamogul Global Moderator @pjft
                      last edited by mediamogul

                      @pjft

                      it didn't seem to work in the game I was trying it in

                      If the game happened to be running from a RetroArch core, RetroArch requires a udev rule be set before it will recognize the virtual keyboard. That information is located at the tail-end of section 3A of the guide.

                      Is there a way I can just press the buttons on my controller and see if the keys are registering

                      You could map a letter for your test key and open up something like nano to see if it enters correctly. Something more substantial would be to consider that the virtual keyboard actually registers as a normal keyboard event, so you could test every keypress you map to it with evtest.

                      Do I need to explicitly map all the buttons from the controller? Do I explicitly need to map app evdev-keymap definitions to -ui-buttonmap definitions?

                      No, your example is fine and an ideal first test.

                      Thanks, and sorry for the trouble.

                      No trouble at all.

                      RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                      pjftP 1 Reply Last reply Reply Quote 0
                      • pjftP
                        pjft @mediamogul
                        last edited by

                        @mediamogul Thanks.

                        The nano test was what I had in mind - just wanted to confirm what was the right approach to test it, given that when I launch xboxdrv at the moment it just takes over the window. I suppose I could launch it as a daemon, but for quick iterations I'd rather test it like this.

                        I'll launch xboxdrv from SSH, and then in the Pi's command line I'll check for key presses.

                        It's not a RetroArch core per se, but the GameMaker port. I'll look into the udev thingie, though, if events are being registered but don't make it to the game.

                        Thank you for your excellent service here! I'll report back when I do have the chance to test this, but may only be in the coming days.

                        mediamogulM 1 Reply Last reply Reply Quote 0
                        • mediamogulM
                          mediamogul Global Moderator @pjft
                          last edited by

                          @pjft said in Guide: Advanced Controller Mappings:

                          It's not a RetroArch core per se, but the GameMaker port.

                          It seems like I remember helping someone setup xboxdrv with a GameMaker port several months ago where the same thing was required, so that could be it.

                          I'll report back when I do have the chance to test this, but may only be in the coming days.

                          Keen beans mean Gene.

                          RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                          pjftP 1 Reply Last reply Reply Quote 0
                          • pjftP
                            pjft @mediamogul
                            last edited by

                            @mediamogul Thanks.

                            So, indeed, the terminal shows the keys I'm pressing, and I can control Rick Dangerous (of all things)!

                            I can't, however, send my inputs to GameMaker. I even tried disconnecting my keyboard, thinking it could be something like it defaulting to the first keyboard it detected, but nada.

                            Here's the command I'm using:

                            sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                             --evdev /dev/input/event2 \
                             --silent \
                             --detach-kernel-driver \
                             --force-feedback \
                             --deadzone-trigger 15% \
                             --deadzone 4000 \
                             --mimic-xpad \
                             --dpad-as-button \
                             --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_#48=lt,ABS_#49=rt \
                             --evdev-keymap KEY_#302=a,KEY_#301=b,BTN_DEAD=x,KEY_#300=y,BTN_THUMB=tl,BTN_THUMB2=tr,
                            BTN_BASE5=lb,BTN_BASE6=rb,BTN_TRIGGER=back,KEY_#720=guide,
                            BTN_TOP=start,BTN_TOP2=du,BTN_PINKIE=dr,BTN_BASE=dd,BTN_BASE2=dl \
                             --ui-buttonmap a=KEY_Z,b=KEY_X,x=KEY_S,y=KEY_A,lb=KEY_F1,rb=KEY_F12,lt=KEY_HOME,
                            rt=KEY_HOME,tl=KEY_HOME,tr=KEY_HOME,du=KEY_UP,dd=KEY_DOWN,
                            dl=KEY_LEFT,dr=KEY_RIGHT,start=KEY_ESC \
                             --calibration x1=-32767:0:32767,y1=-32767:0:32767,x2=-32767:0:32767,y2=-32767:0:32767
                            &
                            

                            (yes, I broke some of the lines here deliberately, for legibility, but they're all together as they should).

                            I even added the udev thingie you have in this post, as well as the one in the wiki (in case they're different - using only one didn't do much).

                            sudo nano /etc/udev/rules.d/99-xboxdrv.rules
                            
                            SUBSYSTEM=="input", ATTRS{name}=="Microsoft X-Box 360 pad - Keyboard Emulation", GROUP="users", MODE="0666", ENV{ID_INPUT_KEYBOARD}="1"
                            

                            and

                            sudo nano /etc/udev/rules.d/55-permissions-uinput.rules
                            
                            KERNEL=="uinput", MODE="0660", GROUP="users"
                            

                            and rebooted.

                            I'm calling it a day here, but curious as to what else you'd suggest me doing here - if anything.

                            By all means, your guide was tremendously helpful, and knowing that I can at least set it up for some other games is great! Just curious to see if we could get the GameMaker ones on board as well, but it's not critical.

                            Thanks, have a great day!

                            mediamogulM 1 Reply Last reply Reply Quote 0
                            • mediamogulM
                              mediamogul Global Moderator @pjft
                              last edited by

                              @pjft said in Guide: Advanced Controller Mappings:

                              I broke some of the lines here deliberately, for legibility, but they're all together as they should

                              When I've tried to do that in the past, the command always ends prematurely at the break and xboxdrv ignores everything afterward. Is there some special carriage return that keeps them together?

                              RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                              pjftP 1 Reply Last reply Reply Quote 0
                              • pjftP
                                pjft @mediamogul
                                last edited by pjft

                                @mediamogul Oh, no, sorry.

                                What I meant is that I broke the lines here in the forum, as it was messing up my whole window when I pasted them here. Not in the terminal.

                                The command is, effectively the following - apologies for the lack of formatting as it's unwieldy:

                                sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv
                                --evdev /dev/input/event2
                                --silent
                                --detach-kernel-driver
                                --force-feedback
                                --deadzone-trigger 15%
                                --deadzone 4000
                                --mimic-xpad
                                --dpad-as-button
                                --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_#48=lt,ABS_#49=rt
                                --evdev-keymap KEY_#302=a,KEY_#301=b,BTN_DEAD=x,KEY_#300=y,BTN_THUMB=tl,BTN_THUMB2=tr,BTN_BASE5=lb,BTN_BASE6=rb,BTN_TRIGGER=back,KEY_#720=guide,BTN_TOP=start,BTN_TOP2=du,BTN_PINKIE=dr,BTN_BASE=dd,BTN_BASE2=dl
                                --ui-buttonmap a=KEY_Z,b=KEY_X,x=KEY_S,y=KEY_A,lb=KEY_F1,rb=KEY_F12,lt=KEY_HOME,rt=KEY_HOME,tl=KEY_HOME,tr=KEY_HOME,du=KEY_UP,dd=KEY_DOWN,dl=KEY_LEFT,dr=KEY_RIGHT,start=KEY_ESC
                                --calibration x1=-32767:0:32767,y1=-32767:0:32767,x2=-32767:0:32767,y2=-32767:0:32767
                                &

                                mediamogulM 1 Reply Last reply Reply Quote 0
                                • mediamogulM
                                  mediamogul Global Moderator @pjft
                                  last edited by mediamogul

                                  @pjft

                                  Ah, OK. I'll try to dig up that post from a while back and see what happened there. It could be that it didn't work in GameMaker then either.

                                  RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                                  pjftP 1 Reply Last reply Reply Quote 1
                                  • pjftP
                                    pjft @mediamogul
                                    last edited by

                                    @mediamogul no problems. I'll also do some digging and report back.

                                    Thanks, as always!

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      spud11 @mediamogul
                                      last edited by spud11

                                      @mediamogul Hi mediamogul. I've now used the expanded case statements and got it partially working. I've also resolved the Notepad++ newline problem, so that's now no longer an issue.

                                      The runcommand-onstart.sh below works with Amiga (2 player), but the remaining configurations don't.

                                      I have 4 DragonRise arcade style joysticks that move in 8 directions. I was hoping to have separate configurations for the 2 joysticks for Amiga. This part works. Then I was hoping to have a default configuration (8 way) for each of the 4 joysticks and separate default 4 way configurations for each joystick. After playing with "basic" and "extended" configurations, I found it a bit easier just to have full "basic" configurations. However, I suspect that has led to some conflicts along the way. It is the 8 way/4 way configurations that don't work at present. It spits out "no file or directory" as the error.

                                      I've got the statements all on one line, because I had to troubleshoot the Amiga configs and this appeared to work for those.

                                      For your info, I have a separate roms folder called "arcade-vertical" where games like Amidar, Pacman are.

                                      #!/bin/sh
                                      ## Uncomment one or all of the following if you need to find some information about the emulator or roms
                                      ## Name of the emulator
                                      #echo $1 >> /dev/shm/runcommand.log
                                      
                                      ## Name of the software used for running the emulation
                                      #echo $2 >> /dev/shm/runcommand.log
                                      
                                      ## Name of the rom
                                      #echo $3 >> /dev/shm/runcommand.log
                                      
                                      ##Executed command line
                                      #echo $4 >> /dev/shm/runcommand.log
                                      
                                      
                                      ### The FUN begins
                                      #Get ROM name striping full path
                                      rom="${3##*/}"
                                      
                                      ### Set variables for your joypad and emulator
                                      ### Basic Configurations - Standard controller mappings
                                      
                                      fourway="--four-way-restrictor"
                                      
                                      Amiga1="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Amiga_Joystick_Player_1_xboxdrv" --evdev-absmap ABS_X=y1,ABS_Y=x1 --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      Amiga2="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Amiga_Joystick_Player_2_xboxdrv" --evdev-absmap ABS_X=y1,ABS_Y=x1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      8way1="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_1_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      4way1="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_1_-_4_way_restricted_xboxdrv" --four-way-restrictor --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      8way2="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_2_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      4way2="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_2_-_4_way_restricted_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --four-way-restrictor --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      8way3="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_3_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      4way3="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_3_-_4_way_restricted_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --four-way-restrictor --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      8way4="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_4_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      4way4="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_4_-_4_way_restricted_xboxdrv" --four-way-restrictor --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &"
                                      
                                      ### Kill Command
                                      xboxkill="sudo killall xboxdrv"
                                      
                                      ### Execute the driver with the configuration you need
                                      # $1 is the name of the emulation, not the name of the software used
                                      # it is intellivision not jzintv
                                      case $1 in
                                      
                                          amiga)
                                              $xboxkill
                                              joycommand="$Amiga1 $Amiga2"
                                              eval $joycommand
                                          ;;
                                      
                                      	 arcade-vertical)
                                              case $rom in
                                                  "amidar.zip"|"atetris.zip"|"puckman.zip") # Configuration used only for these ROMs
                                                      $xboxkill
                                                      joycommand="$4way1 $4way2 $4way3 $4way4"
                                                      eval $joycommand
                                                  ;;
                                                  *) # Configuration for every other ROM with this emulator
                                                      $xboxkill
                                                     joycommand="$8way1 $8way2 $8way3 $8way4"
                                                     eval $joycommand
                                                  ;;
                                              esac
                                          ;;
                                      
                                      esac
                                      
                                      

                                      runcommand.log:

                                      /opt/retropie/configs/all/runcommand-onstart.sh: line 29: 8way1=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name Arcade_Joystick_Player_1_-_8_way_xboxdrv --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                      /opt/retropie/configs/all/runcommand-onstart.sh: line 31: 4way1=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name Arcade_Joystick_Player_1_-_4_way_restricted_xboxdrv --four-way-restrictor --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                      /opt/retropie/configs/all/runcommand-onstart.sh: line 33: 8way2=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name Arcade_Joystick_Player_2_-_8_way_xboxdrv --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                      /opt/retropie/configs/all/runcommand-onstart.sh: line 35: 4way2=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name Arcade_Joystick_Player_2_-_4_way_restricted_xboxdrv --evdev-absmap ABS_X=x1,ABS_Y=y1 --four-way-restrictor --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                      /opt/retropie/configs/all/runcommand-onstart.sh: line 37: 8way3=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name Arcade_Joystick_Player_3_-_8_way_xboxdrv --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                      /opt/retropie/configs/all/runcommand-onstart.sh: line 39: 4way3=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name Arcade_Joystick_Player_3_-_4_way_restricted_xboxdrv --evdev-absmap ABS_X=x1,ABS_Y=y1 --four-way-restrictor --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                      /opt/retropie/configs/all/runcommand-onstart.sh: line 41: 8way4=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name Arcade_Joystick_Player_4_-_8_way_xboxdrv --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                      /opt/retropie/configs/all/runcommand-onstart.sh: line 43: 4way4=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name Arcade_Joystick_Player_4_-_4_way_restricted_xboxdrv --four-way-restrictor --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                      Parameters: 
                                      Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so --config /opt/retropie/configs/mame-libretro/retroarch.cfg "/home/pi/RetroPie/roms/arcade-vertical/amidar.zip" --appendconfig /dev/shm/retroarch.cfg'|'"/home/pi/RetroPie/roms/arcade-vertical/amidar.zip.cfg"
                                      xboxdrv: no process found"
                                      

                                      Any help would be greatly appreciated. Thanks.

                                      RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                                      mediamogulM 1 Reply Last reply Reply Quote 0
                                      • mediamogulM
                                        mediamogul Global Moderator @spud11
                                        last edited by mediamogul

                                        @spud11

                                        It could be that the variables and --device-name arguments are both being wrapped in double quotation marks. Try wrapping the variables in single quotation marks and the --device-name arguments in doubles. For example:

                                        8way1='sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_1_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &'
                                        

                                        RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          spud11 @mediamogul
                                          last edited by

                                          @mediamogul Hi mediamogul. Thank you. That is interesting. A lot of the errors I was getting earlier on before fixing the Amiga joysticks related to the device name. The only way I solved that was by using underscores in the name, simplifying the name and having the statement on one line - eg Amiga_Joystick_Player_1_xboxdrv .

                                          I've now made the change as suggested to all configurations including the Amiga joysticks, but the response is the same in runcommand.log:

                                          /opt/retropie/configs/all/runcommand-onstart.sh: line 29: 8way1=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_1_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                          /opt/retropie/configs/all/runcommand-onstart.sh: line 31: 4way1=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_1_-_4_way_restricted_xboxdrv" --four-way-restrictor --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                          /opt/retropie/configs/all/runcommand-onstart.sh: line 33: 8way2=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_2_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                          /opt/retropie/configs/all/runcommand-onstart.sh: line 35: 4way2=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_2_-_4_way_restricted_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --four-way-restrictor --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                          /opt/retropie/configs/all/runcommand-onstart.sh: line 37: 8way3=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_3_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                          /opt/retropie/configs/all/runcommand-onstart.sh: line 39: 4way3=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_3_-_4_way_restricted_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --four-way-restrictor --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                          /opt/retropie/configs/all/runcommand-onstart.sh: line 41: 8way4=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_4_-_8_way_xboxdrv" --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                          /opt/retropie/configs/all/runcommand-onstart.sh: line 43: 4way4=sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick --silent --detach-kernel-driver --deadzone=4000 --deadzone-trigger 15% --force-feedback --mimic-xpad --trigger-as-button --device-name "Arcade_Joystick_Player_4_-_4_way_restricted_xboxdrv" --four-way-restrictor --evdev-absmap ABS_X=x1,ABS_Y=y1 --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void &: No such file or directory
                                          Parameters: 
                                          Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so --config /opt/retropie/configs/mame-libretro/retroarch.cfg "/home/pi/RetroPie/roms/arcade-vertical/amidar.zip" --appendconfig /dev/shm/retroarch.cfg'|'"/home/pi/RetroPie/roms/arcade-vertical/amidar.zip.cfg"
                                          xboxdrv: no process found
                                          

                                          RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                                          mediamogulM 1 Reply Last reply Reply Quote 0
                                          • mediamogulM
                                            mediamogul Global Moderator @spud11
                                            last edited by

                                            @spud11

                                            Just to cover the bases, you've tested that each of these commands work on their own from the command line?

                                            RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                                            S 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.