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 462.1k 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.
    • H
      Hubz
      last edited by

      Got a ti99 mapping, only problem is it seems like the emulator maps fire to EVERY button so I can't get the DPAD to map to keys as the controls don't respond unless I do --evdev-no-grab on my controller config which means the emu takes priority. Any tricks that I could do to fix that? Also after reading a tip from AtariAge i was able to get rid of the annoying cursor that displays on the emu by compiling from source if anybody wants my binary I'll be happy to share.

      ti99="--ui-axismap x2=void
      --ui-axismap x1=void,y1=void
      --ui-buttonmap du=KEY_NUMERIC_8,dd=KEY_NUMERIC_2,dl=KEY_NUMERIC_4,dr=KEY_NUMERIC_6
      --ui-buttonmap lt=void,rt=void,start+back=KEY_ESC,start=KEY_1,back=KEY_2,y=KEY_NUMERIC_0,a=KEY_SPACE,b=KEY_ENTER,x=void
      --ui-buttonmap lb=void,rb=void,guide=void,tl=void,tr=void"

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

        @Hubz

        I'm having a bit of trouble fully imagining the scenario you're describing. If you're just wanting to add on a key combination to quit the software on top of the controls that already exist for the physical controller, I do have a suggestion that would work for that situation.

        Making use of --evdev-no-grab, as you already are, you can then key-map all the buttons of your controller to KEY_UNKNOWN. At that point the controller is fully key-mapped, but the software won't register the key presses as being anything it's familiar with, leaving the physical controller free to operate without conflict. From there, you can add:

        --ui-buttonmap back+start=KEY_ESC
        

        A difference from your example above is that I put 'back+start' instead of 'start+back'. It's a subtle difference in feeling, but if you're trying to bring the controls in line with RetroArch, 'select' is the modifier key and will always have to be pressed first. Mapping it the other way around in xboxdrv would required that 'start' be pressed first before the action can take place.

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

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

          @mediamogul Good catch on the backwards start+back that was bugging me!

          Yeah I didn't explain my problem well but basically the D-Pad buttons are automatically being mapped as the fire button for the TI99sim emulator. So they're basically overwriting my custom mappings for the D-Pad no matter what. If I remove the evdev-no-grab though then nothing works at all.

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

            @mediamogul Hi. I'm trying to exclude a couple of games from being mapped by xboxdrv - arkanoid and tempest (and their derivatives). In my code, I've now switched the case $1 in to case $2 in and applied it to lr-mame2003 only, rather than to all mame-libretro cores. That seems to be working.

            Basically, I would prefer for xboxdrv not to operate at all for arkanoid and tempest as the retroarch driver and the controls (dials) I've already set up work pretty seamlessly. However, these games are also lr-mame2003 games on my system and are caught by the *) code.

            Does that mean then that if I set up a new code/statement just for arkanoid and tempest with the --evdev-no-grab setting and the KEY-UNKNOWN command, I can prevent xboxdrv from operating which should "leave the physical controller free to operate without conflict" (ie the retroarch joystick driver to operate freely)?

            Or is there a simpler "exclude" command I could put in the script directed just to tempest/arkanoid?

            (If neither is possible, worst case, I'll just change the emulator/core for these 2 games.)

            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

              Does that mean then that if I set up a new code/statement just for arkanoid and tempest with the --evdev-no-grab setting and the KEY-UNKNOWN command, I can prevent xboxdrv from operating which should "leave the physical controller free to operate without conflict" (ie the retroarch joystick driver to operate freely)?

              That should work, yes.

              Or is there a simpler "exclude" command I could put in the script directed just to tempest/arkanoid?

              I've never done it myself, but you should be able to add those two as a case that just doesn't execute anything.

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

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

                @spud11

                I've now identified 132 of the 208 4-way joystick restricted games.

                I'm thinking of doing this myself. What source were you referencing for 4-way strict games?

                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 From here:

                  http://www.armchairarcade.com/neo/node/486

                  About 10 days ago, on this thread replying to hubz, I put the whole list in a code block.

                  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 1
                  • mediamogulM
                    mediamogul Global Moderator @spud11
                    last edited by

                    @spud11

                    Very keen. Thanks!

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

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

                      Just tried out the experimental PC88 emulator called Quasi88 and it works great! Here's my keymapping -

                      pc88="--axismap -Y1=Y1,-Y2=Y2
                      --ui-axismap x2=REL_X:10,y2=REL_Y:10
                      --ui-axismap x1=KEY_4:KEY_6,y1=KEY_8:KEY_2
                      --ui-buttonmap du=KEY_8,dd=KEY_2,dl=KEY_4,dr=KEY_6,back+start=KEY_F12
                      --ui-buttonmap lt=BTN_LEFT,rt=BTN_RIGHT,back=KEY_2,start=KEY_1,y=KEY_SPACE,a=KEY_ESC,b=KEY_ENTER,x=void,lb=KEY_Y,rb=KEY_N
                      --ui-buttonmap guide=void,tl=void,tr=void
                      --ui-axismap x2=void"

                      I'm not sure if this is ideal yet, but to make this work you also need to go to F12 for the menu and then the 6th tab, from there make sure the option near the bottom marked -tenkey is checked. If you're like me and like scanlines make sure and go to the third tap and mark the option -skipline near the bottom. To save your settings you need to hit the button to the left of the F12 button and confirm it to save.

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

                        Okay having the same issue with PC98 as I am TI99. I am not able to get the Numpad reliably mapped to XBoxDrv for some reason. KEY_NUMERIC_# is what I've been using but it's not recognizing it for some reason on these. Other keys are mapping fine however. Any ideas why that might be?

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

                          @Hubz

                          Try using KEY_KP1, KEY_KP2, KEY_KP3...etc. If they work for what you need, a full list of non-numeral KP keys, such as KEY_KPASTERISK can be discovered by typing /opt/supplemental/xboxdrv/bin/xboxdrv --help-key in the command line.

                          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 You're a godsend, that was my problem all along. Didn't realize it needed to be KEY_KP# on the numpad. Geez! Now PC88, PC98, and TI99 all work great!

                            Here are my revised mappings -

                            ti99="--ui-axismap x2=void
                            --ui-axismap x1=KEY_KP4:KEY_KP6,y1=KEY_KP2:KEY_KP8
                            --ui-buttonmap du=KEY_KP8,dd=KEY_KP2,dl=KEY_KP4,dr=KEY_KP6
                            --ui-buttonmap lt=void,rt=void,back+start=KEY_ESC,start=KEY_1,back=KEY_2,y=KEY_KP0,a=KEY_SPACE,b=KEY_ENTER,x=void
                            --ui-buttonmap lb=void,rb=void,guide=void,tl=void,tr=void"

                            pc88="--axismap -Y1=Y1,-Y2=Y2
                            --ui-axismap x2=REL_X:10,y2=REL_Y:10
                            --ui-axismap x1=KEY_KP4:KEY_KP6,y1=KEY_KP8:KEY_KP2
                            --ui-buttonmap du=KEY_KP8,dd=KEY_KP2,dl=KEY_KP4,dr=KEY_KP6,back+start=KEY_F12
                            --ui-buttonmap lt=BTN_LEFT,rt=BTN_RIGHT,back=KEY_2,start=KEY_1,y=KEY_SPACE,a=KEY_ESC,b=KEY_ENTER,x=void,lb=KEY_Y,rb=KEY_N
                            --ui-buttonmap guide=void,tl=void,tr=void
                            --ui-axismap x2=void"

                            pc98="--axismap -Y1=Y1,-Y2=Y2
                            --ui-axismap x2=REL_X:10,y2=REL_Y:10
                            --ui-axismap x1=KEY_KP4:KEY_KP6,y1=KEY_KP8:KEY_KP2
                            --ui-buttonmap du=KEY_KP8,dd=KEY_KP2,dl=KEY_KP4,dr=KEY_KP6,back+start=KEY_F11
                            --ui-buttonmap lt=BTN_LEFT,rt=BTN_RIGHT,back=KEY_2,start=KEY_1,y=KEY_SPACE,a=KEY_ESC,b=KEY_ENTER,x=void,lb=KEY_Y,rb=KEY_N
                            --ui-buttonmap guide=void,tl=void,tr=void
                            --ui-axismap x2=void"

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

                              @Hubz

                              Glad that solved it. I ran into that same issue with Atari800.

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

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

                                Here's my list of 4-way strict MAME games. I finished out the additional landscape-oriented parent titles missing from @spud11's list above and I added 'Pac-Man', 'Pac-Man and Chomp-Chomp' and 'Rootbeer Tapper', as those are three clone variations that I personally enjoy.

                                alibaba.zip"|"amidar.zip"|"armwrest.zip"|"astinvad.zip"|"atetris.zip"|"anteater.zip"|"armorcar.zip"|"astrob.zip"|"astrof.zip"|"bagman.zip"|"ballbomb.zip"|"barrier.zip"|"blkhole.zip"|"blasto.zip"|"blockade.zip"|"btime.zip"|"carjmbre.zip"|"carnival.zip"|"cavelon.zip"|"chameleo.zip"|"checkman.zip"|"chinhero.zip"|"circusc.zip"|"ckong.zip"|"commando.zip"|"congo.zip"|"dazzler.zip"|"devilfsh.zip"|"digdug.zip"|"digdug2.zip"|"digger.zip"|"disco.zip"|"dkong.zip"|"dkong3.zip"|"dkongjr.zip"|"docastle.zip"|"dommy.zip"|"dorodon.zip"|"frogger.zip"|"galaga.zip"|"galaxian.zip"|"galxwars.zip"|"guzzler.zip"|"invrvnge.zip"|"invinco.zip"|"jjack.zip"|"joust2.zip"|"jrpacman.zip"|"jumpcoas.zip"|"jungler.zip"|"kchamp.zip"|"kicker.zip"|"kingball.zip"|"ladybug.zip"|"lasso.zip"|"levers.zip"|"lnc.zip"|"locomotn.zip"|"logger.zip"|"lrescue.zip"|"lupin3.zip"|"mappy.zip"|"marvins.zip"|"mikie.zip"|"mmonkey.zip"|"monsterb.zip"|"moonal2.zip"|"moonqsr.zip"|"mrdo.zip"|"mrflea.zip"|"mrjong.zip"|"mrtnt.zip"|"mspacman.zip"|"mystston.zip"|"naughtyb.zip"|"netwars.zip"|"olibochu.zip"|"ozmawars.zip"|"pacnpal.zip"|"pacplus.zip"|"pengo.zip"|"perestro.zip"|"pickin.zip"|"pignewt.zip"|"pisces.zip"|"pleiads.zip"|"pooyan.zip"|"popflame.zip"|"puckman.zip"|"pacman.zip"|"pulsar.zip"|"qbert.zip"|"qbertqub.zip"|"qix.zip"|"radarscp.zip"|"retofinv.zip"|"rocnrope.zip"|"route16.zip"|"samurai.zip"|"tsamurai.zip"|"scregg.zip"|"sindbadm.zip"|"solarfox.zip"|"sonofphx.zip"|"invadpt2.zip"|"panic.zip"|"shollow.zip"|"spclaser.zip"|"sqbert.zip"|"streakng.zip"|"sbagman.zip"|"superpac.zip"|"superqix.zip"|"ssi.zip"|"swat.zip"|"tactcian.zip"|"tankbatt.zip"|"taxidrvr.zip"|"elecyoyo.zip"|"theend.zip"|"timelimt.zip"|"tomahawk.zip"|"todruaga.zip"|"tranqgun.zip"|"triplep.zip"|"tutankhm.zip"|"vanvan.zip"|"volfied.zip"|"vsgongf.zip"|"wiping.zip"|"warpwarp.zip"|"zigzag.zip"|"zzyzzyxx.zip"|"alphaho.zip"|"pacnchmp.zip"|"comotion.zip"|"copsnrob.zip"|"cosmicg.zip"|"cosmos.zip"|"crash.zip"|"crush.zip"|"redufo.zip"|"diamond.zip"|"dorunrun.zip"|"dominos.zip"|"drmicro.zip"|"drgnbstr.zip"|"dremshpr.zip"|"elvactr.zip"|"eyes.zip"|"firetrap.zip"|"40love.zip"|"galpanic.zip"|"gundealr.zip"|"hardhat.zip"|"headon.zip"|"headon2.zip"|"heiankyo.zip"|"hexa.zip"|"hustle.zip"|"intrepid.zip"|"ironhors.zip"|"karianx.zip"|"kungfum.zip"|"lvgirl94.zip"|"logicpro.zip"|"logicpr2.zip"|"msjiken.zip"|"kikcubic.zip"|"mineswpr.zip"|"mtrap.zip"|"dowild.zip"|"mrgoemon.zip"|"natodef.zip"|"rallyx.zip"|"nrallyx.zip"|"pepper2.zip"|"pettanp.zip"|"popeye.zip"|"punchout.zip"|"raiders5.zip"|"rampage.zip"|"reikaids.zip"|"robby.zip"|"rthunder.zip"|"sidetrac.zip"|"schaser.zip"|"spaceinv.zip"|"spacezap.zip"|"spectar.zip"|"springer.zip"|"stratvox.zip"|"sia2650.zip"|"spnchout.zip"|"tapper.zip"|"rbtapper.zip"|"targ.zip"|"telmahjn.zip"|"theglob.zip"|"thief.zip"|"timber.zip"|"toypop.zip"|"wwjgtin.zip"|"wndrmomo.zip"|"yamyam.zip"|"zerozone.zip"|"zookeep.zip"|"pairs.zip"|"higemaru.zip"|"elecyoy2.zip"
                                

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

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

                                  @mediamogul Well done! That's terrific. I've got a landscape mode too, so I'll use these for that setup too.

                                  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
                                  • S
                                    spud11 @mediamogul
                                    last edited by

                                    @mediamogul As Arkanoid/Tempest were in my mame-libretro folder (rather than in the arcade-vertical folder I was using for all other vertical lr-mame2003 games), I needed to set up Player 1 and 2 keys in the TAB menu once again.

                                    Once I'd done that, I could start a game and the dial controls worked as they were already mapped to left and right. In the end, I didn't really need to do anything and could have just left these games in the * category, but decided I would add a "DialGames" reference to the existing case statement anyway. Arkanoid and Tempest do seem to work equally as well with restricted 4 way joysticks as with unrestricted.

                                    Runcommand-onstart.sh looks like this:

                                    #!/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
                                    
                                    
                                    ### Code begins
                                    ### Game/ROM full path
                                    rom="${3##*/}"
                                    
                                    ### Set variables for joysticks and emulators
                                    ### Basic Configurations - Standard controller mappings for the 4 Arcade (DragonRise) joysticks - map Arcade joysticks to XBox 360 Controller
                                    ### Remove " > /dev/null 2>&1 " from first line to see information when xboxdrv starts
                                    basic="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 lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void"
                                    
                                    ### Extended Configurations
                                    ### Specific emulator configurations or any other parameters you will need only for some emulators
                                    
                                    ### Player 1 and 2 joystick settings for Amiga games - only change is to the axes which have been swapped; not mapped to UAE4ARM's default keyboard settings
                                    amigaplayer1="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \
                                    	--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"
                                    
                                    amigaplayer2="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick \
                                    	--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"
                                    
                                    ### Settings for Arcade games that require 4-Way Restricted Joysticks
                                    joy1restricted="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \
                                    	--device-name "Player_1_-_4-Way_Joystick_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"
                                    
                                    joy2restricted="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick \
                                    	--device-name "Player_2_-_4-Way_Joystick_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"
                                    
                                    joy3restricted="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick \
                                    	--device-name "Player_3_-_4-Way_Joystick_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"
                                    
                                    joy4restricted="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick \
                                    	--device-name "Player_4_-_4-Way_Joystick_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"
                                    
                                    ### Settings for Arcade games that use 8-Way Unrestricted Joysticks
                                    joy1unrestricted="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \
                                    	--device-name "Player_1_-_8-Way_Joystick_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"
                                    
                                    joy2unrestricted="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick \
                                    	--device-name "Player_2_-_8-Way_Joystick_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"
                                    
                                    joy3unrestricted="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick \
                                    	--device-name "Player_3_-_8-Way_Joystick_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"
                                    
                                    joy4unrestricted="--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick \
                                    	--device-name "Player_4_-_8-Way_Joystick_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"
                                    
                                    ### LR-MAME2003 - LANDSCAPE MODE
                                    ### Settings for lr-mame2003 Arcade games in landscape mode - joysticks emulating virtual keyboards
                                    ### The joystick buttons have been mapped to the emulator's default keys. In lr-mame 2003 in game, press TAB to determine default keys.
                                    ### Player 1's default keys are: Buttons 1-4 (LCTRL, LALT, SPACE, LSHIFT), Start (1), Coin (5), Movement (Arrow keys)
                                    ### Player 2's default keys are: Buttons 1-4 (a, s, q, w), Start (2), Coin (6), Movement (g, d, r, f)
                                    ### For Joystick 1 (Player 1), Buttons 1 to 4 are for fire and jump and so on.  Button 5 will start Player 1; Button 6 will start Player 2; Holding Button 5 and pressing Button 6 together will exit emulator in line with Retroarch hotkey
                                    ### For Joystick 2 (Player 2), Buttons 1 to 4 are for fire and jump and so on.  Button 5 will start Player 2; Button 6 does nothing; Holding Button 5 and pressing Button 6 together will exit emulator in line with Retroarch hotkey
                                    joy1keys="--ui-axismap X1=KEY_LEFT:KEY_RIGHT,Y1=KEY_UP:KEY_DOWN \
                                    	--ui-buttonmap a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_SPACE,y=KEY_LEFTSHIFT,back=KEY_5+KEY_1,start=KEY_6+KEY_2,back+start=KEY_SPACE+KEY_ESC"
                                    
                                    joy2keys="--ui-axismap X1=KEY_D:KEY_G,Y1=KEY_R:KEY_F \
                                    	--ui-buttonmap a=KEY_A,b=KEY_S,x=KEY_Q,y=KEY_W,back=KEY_6+KEY_2,start=KEY_UNKNOWN,back+start=KEY_SPACE+KEY_ESC"
                                    
                                    ### LR-MAME2003 - PORTRAIT MODE
                                    ### Settings for lr-mame2003 Arcade games in folder 'Arcade-Vertical' in portrait/cocktail mode - joysticks emulating virtual keyboards
                                    ### The joystick buttons have been mapped to the emulator's default keys. In lr-mame 2003 in game, press TAB to determine default keys.
                                    ### Player 1's default keys are: Buttons 1-4 (LCTRL, LALT, SPACE, LSHIFT), Start (1), Coin (5), Movement (Arrow keys)
                                    ### Player 2's default keys are: Buttons 1-4 (a, s, q, w), Start (2), Coin (6), Movement (g, d, r, f)
                                    ### Because Joysticks 3 and 4 are in portrait (not landscape) mode, the axes needed to be mapped differently (eg for Joystick 3, left and right became down and up).
                                    ### For Joystick 3 (Player 1), Buttons 1 to 4 are for fire and jump and so on.  Button 5 will start Player 1; Button 6 will start Player 2; Holding Button 5 and pressing Button 6 together will exit emulator in line with Retroarch hotkey
                                    ### For Joystick 4 (Player 2), Buttons 1 to 4 are for fire and jump and so on.  Button 5 will start Player 2; Button 6 does nothing; Holding Button 5 and pressing Button 6 together will exit emulator in line with Retroarch hotkey
                                    joy3keys="--ui-axismap X1=KEY_DOWN:KEY_UP,Y1=KEY_RIGHT:KEY_LEFT \
                                    	--ui-buttonmap a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_SPACE,y=KEY_LEFTSHIFT,back=KEY_5+KEY_1,start=KEY_6+KEY_2,back+start=KEY_SPACE+KEY_ESC"
                                    
                                    joy4keys="--ui-axismap X1=KEY_F:KEY_R,Y1=KEY_G:KEY_D \
                                    	--ui-buttonmap a=KEY_A,b=KEY_S,x=KEY_Q,y=KEY_W,back=KEY_6+KEY_2,start=KEY_UNKNOWN,back+start=KEY_SPACE+KEY_ESC"
                                    
                                    ### Arcade Games in Arcade-Vertical folder - lr-mame2003 - in portrait mode that use 4 way restricted joysticks - 132 of 208 identified games
                                    RestrictedArcadeGamesPortraitMode=""alibaba.zip"|"amidar.zip"|"armwrest.zip"|"astinvad.zip"|"atetris.zip"|"anteater.zip"|"armorcar.zip"|"astrob.zip"|"astrof.zip"|"bagman.zip"|"ballbomb.zip"|"barrier.zip"|"blkhole.zip"|"blasto.zip"|"blockade.zip"|"btime.zip"|"carjmbre.zip"|"carnival.zip"|"cavelon.zip"|"chameleo.zip"|"checkman.zip"|"chinhero.zip"|"circusc.zip"|"ckong.zip"|"commando.zip"|"congo.zip"|"dazzler.zip"|"devilfsh.zip"|"digdug.zip"|"digdug2.zip"|"digger.zip"|"disco.zip"|"dkong.zip"|"dkong3.zip"|"dkongjr.zip"|"docastle.zip"|"dommy.zip"|"dorodon.zip"|"frogger.zip"|"galaga.zip"|"galaxian.zip"|"galxwars.zip"|"guzzler.zip"|"invrvnge.zip"|"invinco.zip"|"jjack.zip"|"joust2.zip"|"jrpacman.zip"|"jumpcoas.zip"|"jungler.zip"|"kchamp.zip"|"kicker.zip"|"kingball.zip"|"ladybug.zip"|"lasso.zip"|"levers.zip"|"lnc.zip"|"locomotn.zip"|"logger.zip"|"lrescue.zip"|"lupin3.zip"|"mappy.zip"|"marvins.zip"|"mikie.zip"|"mmonkey.zip"|"monsterb.zip"|"moonal2.zip"|"moonqsr.zip"|"mrdo.zip"|"mrflea.zip"|"mrjong.zip"|"mrtnt.zip"|"mspacman.zip"|"mystston.zip"|"naughtyb.zip"|"netwars.zip"|"olibochu.zip"|"ozmawars.zip"|"pacnpal.zip"|"pacplus.zip"|"pengo.zip"|"perestro.zip"|"pickin.zip"|"pignewt.zip"|"pisces.zip"|"pleiads.zip"|"pooyan.zip"|"popflame.zip"|"puckman.zip"|"pulsar.zip"|"qbert.zip"|"qbertqub.zip"|"qix.zip"|"radarscp.zip"|"retofinv.zip"|"rocnrope.zip"|"route16.zip"|"samurai.zip"|"tsamurai.zip"|"scregg.zip"|"sindbadm.zip"|"solarfox.zip"|"sonofphx.zip"|"invadpt2.zip"|"panic.zip"|"shollow.zip"|"spclaser.zip"|"sqbert.zip"|"streakng.zip"|"sbagman.zip"|"superpac.zip"|"superqix.zip"|"ssi.zip"|"swat.zip"|"tactcian.zip"|"tankbatt.zip"|"taxidrvr.zip"|"elecyoyo.zip"|"theend.zip"|"timelimt.zip"|"tomahawk.zip"|"todruaga.zip"|"tranqgun.zip"|"triplep.zip"|"tutankhm.zip"|"vanvan.zip"|"volfied.zip"|"vsgongf.zip"|"wiping.zip"|"warpwarp.zip"|"zigzag.zip"|"zzyzzyxx.zip""
                                    
                                    ### Arcade Games in landscape mode that use 4 way restricted joysticks - 208 of 208 identified games
                                    RestrictedArcadeGamesLandscapeMode=""alibaba.zip"|"amidar.zip"|"armwrest.zip"|"astinvad.zip"|"atetris.zip"|"anteater.zip"|"armorcar.zip"|"astrob.zip"|"astrof.zip"|"bagman.zip"|"ballbomb.zip"|"barrier.zip"|"blkhole.zip"|"blasto.zip"|"blockade.zip"|"btime.zip"|"carjmbre.zip"|"carnival.zip"|"cavelon.zip"|"chameleo.zip"|"checkman.zip"|"chinhero.zip"|"circusc.zip"|"ckong.zip"|"commando.zip"|"congo.zip"|"dazzler.zip"|"devilfsh.zip"|"digdug.zip"|"digdug2.zip"|"digger.zip"|"disco.zip"|"dkong.zip"|"dkong3.zip"|"dkongjr.zip"|"docastle.zip"|"dommy.zip"|"dorodon.zip"|"frogger.zip"|"galaga.zip"|"galaxian.zip"|"galxwars.zip"|"guzzler.zip"|"invrvnge.zip"|"invinco.zip"|"jjack.zip"|"joust2.zip"|"jrpacman.zip"|"jumpcoas.zip"|"jungler.zip"|"kchamp.zip"|"kicker.zip"|"kingball.zip"|"ladybug.zip"|"lasso.zip"|"levers.zip"|"lnc.zip"|"locomotn.zip"|"logger.zip"|"lrescue.zip"|"lupin3.zip"|"mappy.zip"|"marvins.zip"|"mikie.zip"|"mmonkey.zip"|"monsterb.zip"|"moonal2.zip"|"moonqsr.zip"|"mrdo.zip"|"mrflea.zip"|"mrjong.zip"|"mrtnt.zip"|"mspacman.zip"|"mystston.zip"|"naughtyb.zip"|"netwars.zip"|"olibochu.zip"|"ozmawars.zip"|"pacnpal.zip"|"pacplus.zip"|"pengo.zip"|"perestro.zip"|"pickin.zip"|"pignewt.zip"|"pisces.zip"|"pleiads.zip"|"pooyan.zip"|"popflame.zip"|"puckman.zip"|"pacman.zip"|"pulsar.zip"|"qbert.zip"|"qbertqub.zip"|"qix.zip"|"radarscp.zip"|"retofinv.zip"|"rocnrope.zip"|"route16.zip"|"samurai.zip"|"tsamurai.zip"|"scregg.zip"|"sindbadm.zip"|"solarfox.zip"|"sonofphx.zip"|"invadpt2.zip"|"panic.zip"|"shollow.zip"|"spclaser.zip"|"sqbert.zip"|"streakng.zip"|"sbagman.zip"|"superpac.zip"|"superqix.zip"|"ssi.zip"|"swat.zip"|"tactcian.zip"|"tankbatt.zip"|"taxidrvr.zip"|"elecyoyo.zip"|"theend.zip"|"timelimt.zip"|"tomahawk.zip"|"todruaga.zip"|"tranqgun.zip"|"triplep.zip"|"tutankhm.zip"|"vanvan.zip"|"volfied.zip"|"vsgongf.zip"|"wiping.zip"|"warpwarp.zip"|"zigzag.zip"|"zzyzzyxx.zip"|"alphaho.zip"|"pacnchmp.zip"|"comotion.zip"|"copsnrob.zip"|"cosmicg.zip"|"cosmos.zip"|"crash.zip"|"crush.zip"|"redufo.zip"|"diamond.zip"|"dorunrun.zip"|"dominos.zip"|"drmicro.zip"|"drgnbstr.zip"|"dremshpr.zip"|"elvactr.zip"|"eyes.zip"|"firetrap.zip"|"40love.zip"|"galpanic.zip"|"gundealr.zip"|"hardhat.zip"|"headon.zip"|"headon2.zip"|"heiankyo.zip"|"hexa.zip"|"hustle.zip"|"intrepid.zip"|"ironhors.zip"|"karianx.zip"|"kungfum.zip"|"lvgirl94.zip"|"logicpro.zip"|"logicpr2.zip"|"msjiken.zip"|"kikcubic.zip"|"mineswpr.zip"|"mtrap.zip"|"dowild.zip"|"mrgoemon.zip"|"natodef.zip"|"rallyx.zip"|"nrallyx.zip"|"pepper2.zip"|"pettanp.zip"|"popeye.zip"|"punchout.zip"|"raiders5.zip"|"rampage.zip"|"reikaids.zip"|"robby.zip"|"rthunder.zip"|"sidetrac.zip"|"schaser.zip"|"spaceinv.zip"|"spacezap.zip"|"spectar.zip"|"springer.zip"|"stratvox.zip"|"sia2650.zip"|"spnchout.zip"|"tapper.zip"|"rbtapper.zip"|"targ.zip"|"telmahjn.zip"|"theglob.zip"|"thief.zip"|"timber.zip"|"toypop.zip"|"wwjgtin.zip"|"wndrmomo.zip"|"yamyam.zip"|"zerozone.zip"|"zookeep.zip"|"pairs.zip"|"higemaru.zip"|"elecyoy2.zip"|"arkangc.zip"|"arkanoid.zip"|"arkatayt.zip"|"arkatour.zip"|"arkbl2.zip"|"arkbl3.zip"|"arkbloc2.zip"|"arkblock.zip"|"arknid2j.zip"|"arknid2u.zip"|"arknoid2.zip"|"arknoidj.zip"|"arknoidu.zip"|"arknoiuo.zip"|"arkretrn.zip"|"tempest.zip"|"tempest1.zip"|"tempest2.zip"|"tempest3.zip"|"temptube.zip""
                                    
                                    ### Dial Games in mame-libretro folder - lr-mame2003 - portrait mode - Arkanoid and Tempest (and derivatives)
                                    DialGames=""arkangc.zip"|"arkanoid.zip"|"arkatayt.zip"|"arkatour.zip"|"arkbl2.zip"|"arkbl3.zip"|"arkbloc2.zip"|"arkblock.zip"|"arknid2j.zip"|"arknid2u.zip"|"arknoid2.zip"|"arknoidj.zip"|"arknoidu.zip"|"arknoiuo.zip"|"arkretrn.zip"|"tempest.zip"|"tempest1.zip"|"tempest2.zip"|"tempest3.zip"|"temptube.zip""
                                    
                                    ### Kill xboxdrv
                                    xboxkill="sudo killall xboxdrv"
                                    
                                    ### Execute the driver with the configuration you need
                                    ### $1 is the name of the system emulation (eg mame-libretro), not the name of the emulator (eg not lr-mame2003), nor the name of the folder (eg not "arcade", not "mame-libretro", not "arcade-vertical"
                                    ### $1 - The system (eg: atari2600, nes, snes, megadrive, fba, etc).
                                    ### $2 - The emulator (eg: lr-stella, lr-fceumm, lr-picodrive, pifba, etc).
                                    ### $3 - The full path to the rom file.
                                    ### $4 - The full command line used to launch the emulator.
                                    ### This information can be obtained from /dev/shm/runcommand.info
                                    case $2 in
                                    
                                    	lr-mame2003)
                                    	case $rom in
                                    			$RestrictedArcadeGamesPortraitMode|$DialGames) # Configuration used only for these ROMs
                                    				$xboxkill
                                    				joycommand="$basic $joy3restricted $joy3keys & $basic $joy4restricted $joy4keys &"
                                    				eval $joycommand
                                    			;;
                                    			*) # Configuration for every other ROM in respect of this emulator
                                    				$xboxkill
                                    				joycommand="$basic $joy3unrestricted $joy3keys & $basic $joy4unrestricted $joy4keys &"
                                    				eval $joycommand
                                    			;;
                                    		esac
                                    	;;
                                    	
                                    	uae4arm)
                                    		$xboxkill
                                    		joycommand="$basic $amigaplayer1 & $basic $amigaplayer2 &"
                                    		eval $joycommand
                                    	;;
                                    
                                    esac
                                    

                                    I'm really pleased with how things have gone, having fixed up my amiga problems and sorted out the older arcade games. I can really see the difference with Ms Pacman and am now enjoying playing it.

                                    Thanks for your assistance over the past 3 or 4 weeks to get this working.

                                    I reckon I'm just about ready now to look at Daphne and other emulators that could also benefit from xboxdrv.

                                    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

                                      Arkanoid and Tempest do seem to work equally as well with restricted 4 way joysticks as with unrestricted.

                                      If you want to get analog control for these (or any dial/paddle/wheel games) on a controller with thumbsticks, mapping mouse movement works very well. While nothing beats an actual dial/paddle/wheel for these games, having analog control of some kind makes them substantially more playable.

                                      Thanks for your assistance over the past 3 or 4 weeks to get this working.

                                      Not a problem. It's impressive that you stuck with it. As I said earlier, your setup was particularly complicated.

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

                                      S 2 Replies Last reply Reply Quote 0
                                      • ExarKunIvE
                                        ExarKunIv
                                        last edited by

                                        @mediamogul

                                        have you messed around with getting Stratagus to work with a controller.
                                        i have the mouse movement to work and f10 mapped. but the mouse button will not work....sort of.

                                        im able to move and use the menu, with the 'mouse and mouse buttons' but it will not let me move the men. it just lets me select them.

                                        Might be something that just will not work kinda like Maldita Castilla

                                        RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                                        RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                                        Maintainer of RetroPie-Extra .

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

                                          @ExarKunIv

                                          To eliminate it being a problem with the game itself, are you able to get the control you're looking for with an actual mouse?

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

                                          ExarKunIvE 1 Reply Last reply Reply Quote 0
                                          • ExarKunIvE
                                            ExarKunIv @mediamogul
                                            last edited by

                                            @mediamogul

                                            yes, it works fine. i even used evtest /dev/input/event* to pull what was coming up and it was BTN_LEFT, BTN_RIGHT just like i have it in my mapping.

                                            its odd that it kinda works.

                                            here is what the mouse that works comes up with when i press the left button

                                            Event: time 1490821100.299279, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
                                            Event: time 1490821100.299279, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
                                            Event: time 1490821100.299279, -------------- EV_SYN ------------
                                            

                                            here is just the ID info

                                            I: Bus=0003 Vendor=046d Product=101b Version=0111
                                            N: Name="Logitech M705"
                                            P: Phys=usb-3f980000.usb-1.3:1
                                            S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.2/0003:046D:C52B.0008/0003:046D:101B.0009/input/input7
                                            U: Uniq=
                                            H: Handlers=mouse1 event2
                                            B: PROP=0
                                            B: EV=17
                                            B: KEY=ffff0000 0 0 0 0 0 0 0 0
                                            B: REL=143
                                            B: MSC=10
                                            

                                            RPi3B+ / 200GB/ RetroPie v4.5.14, RPi4 Model B 4gb / 256gb / RetroPie 4.8.2
                                            RPi5 4gb / 512gb / RetroPie 4.8.9 -Basic
                                            Maintainer of RetroPie-Extra .

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