• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
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.9k 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.
  • J
    javisousa20 @mediamogul
    last edited by 11 Apr 2018, 23:36

    @mediamogul said in Guide: Advanced Controller Mappings:

    I believe defining the outer deadzones as defined in the guide should take care of that. Have you given that a go?

    Yes, I tried to do it but I do not get anything
    This is the code I use

    sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
    --evdev /dev/input/by-id/usb-6901_2701-if01-event-mouse \
    --mimic-xpad \
    --dpad-as-button \
    --trigger-as-button \
    --deadzone 3
    --evdev-keymap BTN_LEFT=LB,BTN_RIGHT=RB,KEY_CONFIG=LT,KEY_SEARCH=RT,KEY_PLAYPAUSE=A,KEY_PREVIOUSSONG=dl,KEY_NEXTSONG=dr,KEY_VOLUMEUP=du,KEY_VOLUMEDOWN=dd,KEY_MAIL=back,KEY_HOMEPAGE=start,KEY_MIN_INTERESTING=B,KEY_WWW=guide \
    --ui-axismap x2=REL_X,y2=REL_Y \
    --calibration x2=-150:0:150,y2=-150:0:150 \
    --evdev-debug
    

    And here part of the test

    EV_REL REL_X 10
    EV_REL REL_Y -26
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X 6
    EV_REL REL_Y -14
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X 2
    EV_REL REL_Y -6
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X 4
    EV_REL REL_Y -4
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X 2
    EV_REL REL_Y -4
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X 2
    EV_REL REL_Y -2
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_Y -2
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X -2
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X -2
    EV_REL REL_Y 4
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X -4
    EV_REL REL_Y 4
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X -4
    EV_REL REL_Y 10
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    EV_REL REL_X -8
    EV_REL REL_Y 30
    X1:     0 Y1:     0  X2:     0 Y2:     0  du:0 dd:0 dl:0 dr:0  back:0 guide:0 start:0  TL:0 TR:0  A:0 B:0 X:0 Y:0  LB:0 RB:0  LT:  0 RT:  0
    

    It can be seen that in this case xboxdrv is not reading the REL axes, but I don't know why

    1 Reply Last reply Reply Quote 0
    • S
      spud11
      last edited by 16 Jun 2018, 05:23

      @mediamogul Hi. I thought you might be interested in something I've just found out with xboxdrv. Not sure if you've already discovered this. It is possible to use the $3 case in runcommand-onstart.sh to make an xboxdrv script that works just for one game. I've been messing around with SimCoupe trying to see whether it has any standardised controls either for keyboard or joystick. It doesn't seem to have any, so, as I only want to play a couple of Sam Coupe games, I thought that it would be a good idea to try to create xboxdrv scripts for individual games. I've got one to work with the extract from my runcommand-onstart.sh file as follows:

      I've included some case $1 scripts just so you can see it in context and, at the bottom , you will see the case $3 script for Manic Miner. This works for me.

      #!/bin/sh
      
      ### Code begins
      ### Game/ROM full path
      rom="${3##*/}"
      
      ### SAM COUPE - 
      Player1_SAM="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \
      --silent \
      --detach-kernel-driver \
      --deadzone=4000 \
      --deadzone-trigger 15% \
      --force-feedback \
      --mimic-xpad \
      --trigger-as-button \
      --ui-buttonmap tl=void,tr=void,guide=void \
      --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \
      --device-name "Player_1" \
      --evdev-absmap ABS_X=y1,ABS_Y=x1 \
      --evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_TRIGGER=x,BTN_THUMB=y,BTN_TOP2=lb,BTN_TOP=rb,BTN_BASE3=back,BTN_BASE6=start,BTN_BASE2=lt,BTN_BASE5=rt \
      --ui-axismap X1=KEY_Q:KEY_W,Y1=KEY_UP:KEY_DOWN \
      --ui-buttonmap a=KEY_SPACE,b=KEY_X,x=KEY_C,y=KEY_UNKNOWN,lb=KEY_UNKNOWN,rb=KEY_UNKNOWN,back=KEY_UNKNOWN,start=KEY_UNKNOWN,lt=KEY_UNKNOWN,rt=KEY_ENTER,rt+back=KEY_F10,back+rt=KEY_LEFTCTRL+KEY_F12"
      
      case $1 in
      
      	crvision)
      		$xboxkill
      		joycommand="$Player1_CreatiVision  &"
      		eval $joycommand
      	;;
      
      	crvision2)
      		$xboxkill
      		joycommand="$Player1_CreatiVision2  &"
      		eval $joycommand
      	;;
      
      	pop1)
      		$xboxkill
      		joycommand="$Player1_POP1 &"
      		eval $joycommand
      	;;
      
      	pop2)
      		$xboxkill
      		joycommand="$Player1_POP2 &"
      		eval $joycommand
      	;;
      esac
      
      case $3 in
      
      	"/home/pi/RetroPie/roms/samcoupe/Manic Miner (1992) (Revelation Software).sad")
      	$xboxkill
      		joycommand="$Player1_SAM &"
      		eval $joycommand
      	;;
      esac
      

      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

      M 1 Reply Last reply 16 Jun 2018, 08:53 Reply Quote 1
      • M
        mediamogul Global Moderator @spud11
        last edited by mediamogul 16 Jun 2018, 08:53

        @spud11 said in Guide: Advanced Controller Mappings:

        Not sure if you've already discovered this. It is possible to use the $3 case in runcommand-onstart.sh to make an xboxdrv script that works just for one game.

        I'm glad you posted this and I really should have put it into the guide by now. Individual game mapping comes in handy so often that it needs to be documented. A great example are all the Atari 2600/5200, Intellivision and Colecovision games that use unique keypad controls. Mapping them to something more sane on a modern controller increases their playability so much. Another good example is the Atari 2600 games that originally made use of two joysticks for extra buttons. I just recently made a map for the 2600 port of 'Stargate', that moves 'smartbombs', 'inviso' and 'hyperspace' alongside the normal 'fire' button on the same controller and it plays great.

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

        S 1 Reply Last reply 16 Jun 2018, 09:22 Reply Quote 0
        • S
          spud11 @mediamogul
          last edited by 16 Jun 2018, 09:22

          @mediamogul That's interesting. I'd just been setting up Defender for the Sam Coupe and had been doing the same - hyperspace and smart bombs alongside the fire button. If you have enough buttons, you can even make reverse and thrust work with buttons.

          The other thing that I just checked before you replied was that you can retain a standard $1 or $2 configuration for a system whilst the specific $3 will override for the individual game only, and you've confirmed that that works too.

          As you said, the Colecovision (which I set up about a month ago) will really benefit from this. I was finding that, despite having about 12 buttons on my arcade cabinet, it was getting pretty hard to create a standardised control scheme. It'll be much easier now that I know I can just do per-game schemes while maintaining a standard default scheme for those games that just require the default.

          No sweat on changing the guide, but I must admit both this individualised process and the "launch executable" process you discovered a couple of months ago probably should end up being documented. (Also, I can't recall whether the "launch macro" process is also covered in the guide, but suspect not).

          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

          P 1 Reply Last reply 3 Jan 2019, 17:03 Reply Quote 0
          • G
            guydot
            last edited by guydot 18 Jun 2018, 19:55

            Is there any performance impact to using xboxdrv for all games? My need for xboxdrv is only for 4-way restriction - for arcade. I use Controlblock and I found that the following logic works to use xboxdrv only for restricted games and Controlblock for the rest:

            One time:

            • Using Joystick Selection (https://github.com/meleu/RetroPie-joystick-selection) I mapped the xboxdrv #1 to player 1 and #2 to player 2 for "arcade" only. I used the "by-name" method, which seems to have some logic for "not connected"

            Scripts:

            • launch xboxdrv/restricted (for player 1 + player 2) when emulationstation starts
            • a runcommand-onstart.sh script checks if launched rom is in RestrictedArcade list. If it is - do nothing. If it is not in the list - kill xboxdrv.
              (the Controlblock joystics are automatically mapped if xboxdrive is killed)
              *runcommand-onend.sh checks if xboxdrv is running. If not - launches for each player/restricted.

            Thoughts?

            Disclaimer: newbie, limited programming skills, haven't tested it for long enough :-)

            M 1 Reply Last reply 18 Jun 2018, 20:35 Reply Quote 1
            • M
              mediamogul Global Moderator @guydot
              last edited by 18 Jun 2018, 20:35

              @guydot said in Guide: Advanced Controller Mappings:

              Is there any performance impact to using xboxdrv for all games?

              None that I've noticed. I usually launch two instances for player one and two controls and have never had a problem.

              Thoughts?

              No, not really. That's more or less how I use it myself.

              Disclaimer: newbie, limited programming skills, haven't tested it for long enough :-)

              You're doing pretty good. Most people, including myself, struggle with this in the beginning. It really does pay off though. Games like Pac-Man just can't be played well with more than four available directions. Sure, you can boot them up and show them off, but you'll never get very far without the restriction.

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

              G 1 Reply Last reply 19 Jun 2018, 21:28 Reply Quote 0
              • G
                guydot @mediamogul
                last edited by guydot 19 Jun 2018, 21:28

                @mediamogul I was too happy too soon. It is not working consistently. I am almost ready to give up. The driver works well first time I launch a game (creates JS2 and JS3), but in subsequent launches I noticed that the driver creates JS4 and the game does not respond. I wonder if anybody has been successful with Contronlblock + xboxdrv...

                The one thing that I noticed, but I am not sure if it has any significance, is that the Controlblock joystics are not listed in /dev/input/by-id/

                In the xboxdrv command line I used the (controlblock joysticks) event numbers.

                Not sure if it makes sense...

                M 1 Reply Last reply 19 Jun 2018, 21:52 Reply Quote 0
                • M
                  mediamogul Global Moderator @guydot
                  last edited by mediamogul 19 Jun 2018, 21:52

                  @guydot said in Guide: Advanced Controller Mappings:

                  in subsequent launches I noticed that the driver creates JS4 and the game does not respond.

                  It could be that the previous instances of xboxdrv are not being killed when the emulator/port exits. Looking back over your previous post, I don't see you mention a command to killall xboxdrv in the runcommand-onend script. If it is in fact there, make sure you're using sudo before the killall command. Otherwise it won't have the proper permissions.

                  I am not sure if it has any significance, is that the Controlblock joystics are not listed in /dev/input/by-id/

                  You might also try looking at /dev/input/by-path/.

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

                  G 1 Reply Last reply 20 Jun 2018, 12:39 Reply Quote 0
                  • S
                    spud11
                    last edited by 19 Jun 2018, 22:17

                    @mediamogul Hi. I'm having a few problems with ScummVM and mapping my joystick 1 to operate like a mouse.

                    I have a bluetooth keyboard which has a built in touchpad and I can use that to navigate in game perfectly. My joystick 2 is also natively working as a joystick, albeit the axes are mixed up.

                    I've followed the guide, but I think I've got myself confused. This is the first time I've tried to mimic a mouse.

                    Do I need to start from scratch and determine what event number is the keyboard/touchpad and go from there (using cat /proc/bus/input/devices)?

                    So far I have:

                    Player1_ScummVM="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \
                    --silent \
                    --detach-kernel-driver \
                    --deadzone=4000 \
                    --deadzone-trigger 15% \
                    --force-feedback \
                    --mimic-xpad \
                    --trigger-as-button \
                    --ui-buttonmap x=void,y=void,lb=void,rb=void,tl=void,tr=void,guide=void,lt=void \
                    --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \
                    --device-name "Player_1" \
                    --evdev-absmap ABS_X=y1,ABS_Y=x1 \
                    --evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_TRIGGER=x,BTN_THUMB=y,BTN_TOP2=lb,BTN_TOP=rb,BTN_BASE3=back,BTN_BASE6=start,BTN_BASE2=lt,BTN_BASE5=rt \
                    --axismap -Y1=Y1,-Y2=Y2 \
                    --ui-axismap X1=REL_X:10,Y1=REL_Y:10 \
                    --ui-buttonmap a=BTN_LEFT,b=BTN_RIGHT,back=KEY_UNKNOWN,start=KEY_UNKNOWN,rt=KEY_F5,back+rt=KEY_LEFTALT+KEY_X"
                    

                    And

                    
                    	scummvm)
                    		$xboxkill
                    		joycommand="$clear & $Player1_ScummVM & $silence &"
                    		eval $joycommand
                    	;
                    

                    This code doesn't work at all at present. Thanks for any help you can provide.

                    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

                    M 1 Reply Last reply 19 Jun 2018, 23:47 Reply Quote 0
                    • M
                      mediamogul Global Moderator @spud11
                      last edited by mediamogul 19 Jun 2018, 23:47

                      @spud11

                      Does xboxdrv throw up any errors? At some point I changed the guide to suggest redirecting all errors to the Runcommand log rather than /dev/null. That might be helpful here. Just replace:

                      > /dev/null 2>&1
                      

                      with

                      >> /dev/shm/runcommand.log 2>&1
                      

                      As long as you have an otherwise working xboxdrv command, the following two lines should be all that's required to add full mouse control to whatever the first axis is on the controller you're trying to map, with buttons 'A' and 'B' acting as left/right click..

                      --ui-axismap X1=REL_X:10,Y1=REL_Y:10 \
                      --ui-buttonmap a=BTN_LEFT,b=BTN_RIGHT
                      

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

                      S 1 Reply Last reply 19 Jun 2018, 23:59 Reply Quote 0
                      • S
                        spud11 @mediamogul
                        last edited by 19 Jun 2018, 23:59

                        @mediamogul Thanks. You were 100% right. I found an error - just a missing ; which I've added back in. Thanks again.

                        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

                        M 1 Reply Last reply 20 Jun 2018, 00:06 Reply Quote 0
                        • M
                          mediamogul Global Moderator @spud11
                          last edited by 20 Jun 2018, 00:06

                          @spud11

                          Not a problem.

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

                          1 Reply Last reply Reply Quote 0
                          • G
                            guydot @mediamogul
                            last edited by guydot 20 Jun 2018, 12:39

                            @mediamogul said in Guide: Advanced Controller Mappings:

                            @guydot said in Guide: Advanced Controller Mappings:
                            I don't see you mention a command to killall xboxdrv in the runcommand-onend script. If it is in fact there, make sure you're using sudo

                            I changed the logic to use xboxdrv for all games in "Arcade" - some with 4-way restriction and some without. It is launched by runcommand-onstart and killed by runcommand-onend. I do use sudo. The issue that I am still having is that (and I am not sure what the sequence is to reproduce,) the order of joysticks changes: first few times, when a game starts I see the yellow text on the bottom of the screen showing the mapped controllers and the Controlblock joystics map to #0 and #1 and xbox to #2 and #3. Then at some point, xboxdrv maps to #0 and #1 and Controlblock to #2 and #3 and the game does not respond (because the arcade folder retroarch.cfg maps 2 and 3 to player 1 and 2 and the Controlblock joystick is not active anymore.)

                            You might also try looking at /dev/input/by-path/.

                            It does not show my Controlblock joysticks, just like /dev/input/by-id/

                            M 1 Reply Last reply 20 Jun 2018, 15:37 Reply Quote 0
                            • M
                              mediamogul Global Moderator @guydot
                              last edited by mediamogul 20 Jun 2018, 15:37

                              @guydot

                              Have you updated RetroArch in a while? This may not be the issue, but recently a fix was implemented to avoid controller ordering based on detection. Before hand this was messing with tools like joystick selection utility. If you haven't already, try updating and see if the behavior continues.

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

                              G 1 Reply Last reply 20 Jun 2018, 17:00 Reply Quote 0
                              • G
                                guydot @mediamogul
                                last edited by guydot 20 Jun 2018, 17:00

                                @mediamogul said in Guide: Advanced Controller Mappings:

                                @guydot

                                Have you updated RetroArch in a while?

                                I did a Retroarch update but it did not solve the issue. I am running RPi3 B+/Stretch/RetroPie 4.4, so it is a very recent image.

                                At some point, Retroarch (yellow text on bottom just before the game starts) shows an incorrect port joystick mapping and the game does not work. Killing xboxdrive restores the use of Controlblock to exit the game, but Retroarch would not get the right mapping if I launch a new game unless I reboot. Frustrating.

                                M 1 Reply Last reply 20 Jun 2018, 22:30 Reply Quote 0
                                • M
                                  mediamogul Global Moderator @guydot
                                  last edited by 20 Jun 2018, 22:30

                                  @guydot

                                  This may be able to be sorted out as-is, but if you're open to an alternative, let me suggest something more reliable. I avoid the uncertainty of these particular situations by having a keyboard map set for players one and two in RetroArch. To correspond with this, I also have my two controllers fully key-mapped with xboxdrv to match. Once everything is launched, it really doesn't matter which controller RetroArch tries to grab hold of, because it'll be acknowledging the keyboard map regardless.

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

                                  S G 2 Replies Last reply 21 Jun 2018, 00:58 Reply Quote 0
                                  • S
                                    spud11 @mediamogul
                                    last edited by 21 Jun 2018, 00:58

                                    @mediamogul @guydot I agree 100% with this approach. Mediamogul put me onto this method about 2 years ago and it just works. 99% of cores and emulators have keyboard mapping. I've only struggled with one or two eg reicast; otherwise, all good.

                                    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

                                    1 Reply Last reply Reply Quote 0
                                    • G
                                      guydot @mediamogul
                                      last edited by guydot 21 Jun 2018, 02:23

                                      @mediamogul I will give it a shot, as all other methods failed. The closest I got was with Joystick Selection "by name" method: the games work well even when Retroarch shuffled the ports, but Emulationstation crashes when I exit a "port-confused" game.

                                      If I understand the method correctly - I will have to change Controlblock to "MAME" mode = keyboard emulation and then run 2 xboxdrv configured to match the keys generated by my controllers. Correct?

                                      M 1 Reply Last reply 21 Jun 2018, 04:06 Reply Quote 0
                                      • M
                                        mediamogul Global Moderator @guydot
                                        last edited by mediamogul 21 Jun 2018, 04:06

                                        @guydot said in Guide: Advanced Controller Mappings:

                                        If I understand the method correctly - I will have to change Controlblock to "MAME" mode = keyboard emulation and then run 2 xboxdrv configured to match the keys generated by my controllers. Correct?

                                        Actually, you would just change your xboxdrv maps to be complete key-mappings of the Controlblock. From there, you'd assign those keys to players one and two in RetroArch.

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

                                        G 1 Reply Last reply 21 Jun 2018, 12:27 Reply Quote 0
                                        • G
                                          guydot @mediamogul
                                          last edited by 21 Jun 2018, 12:27

                                          @mediamogul @spud11 I am missing something here.

                                          Right now:
                                          (1) Controlbox is creating 2 joypads: JS0/JS1 and event 2/3
                                          (2) I use 2 xboxdrv commands, each has --evdev-absmap and --evdev-keymap that correspond to a joypad joystick + buttons
                                          (3) In Retroarch.cfg, I tried to use input_player1_joypad_index = "2" and input_player2_joypad_index = "3" to map

                                          Is proposed method to add --ui-buttonmap to map xboxdrv to keyboard keys? I guess I need more steps... Thanks for all your help!

                                          M 1 Reply Last reply 21 Jun 2018, 13:15 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.

                                            This community forum collects and processes your personal information.
                                            consent.not_received