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 464.2k 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 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
                          • mediamogulM
                            mediamogul Global Moderator @ExarKunIv
                            last edited by

                            @ExarKunIv

                            Do you have the mouse attached when using the xboxdrv mapping? It could be that it can only use mouse0 for game play.

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

                            1 Reply Last reply Reply Quote 0
                            • D
                              dunnieboy @mediamogul
                              last edited by dunnieboy

                              @mediamogul by any chance do you have a config for wing commander 3 or 4 ?

                              Here is an xpadder 360 example :

                              Pitch Up (Arrow UP) -> UP on Left stick (via XPadder) 
                              Pitch Down (Arrow DOWN) -> DOWN on Left stick (via XPadder) 
                              Yaw Left (Arrow LEFT) -> LEFT on Left stick (via XPadder) 
                              Yaw Right (Arrow RIGHT) -> RIGHT on Left stick (via XPadder) 
                              Roll left (INS) -> LEFT on Right stick (via XPadder) 
                              Roll right (DEL) -> RIGHT on Right stick (via XPadder) 
                              Double movement (SHIFT) -> Downclick on Left stick (Button 8) 
                              Afterburn Toggle: (`) -> Select 
                              Increase throttle (=+) -> UP on Right stick 
                              Decrease throttle (-_) -> DOWN on Right stick 
                              AutoPilot (A) -> Start 
                              Match speed of target (Y) -> Y 
                              Cycle displays (0) -> X 
                              Drop decoy (E) -> B 
                              Lock target (toggle) (L) -> A 
                              Select next target (T) -> R shoulder 
                              Select next turret (R) -> L shoulder 
                              Fire guns (Spacebar) -> R trigger 
                              Fire missiles (Enter) -> L trigger 
                              Switch gun(s) (G) -> D-Pad UP (via XPadder) 
                              Select full guns (F) -> D-Pad LEFT (via XPadder) 
                              Select all missiles (B) -> D-Pad RIGHT (via XPadder) 
                              Select missile (M) -> D-Pad DOWN (via XPadder) 
                              

                              Ill give it a go ... but yikes.

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

                                @dunnieboy

                                by any chance do you have a config for wing commander 3 or 4 ?

                                I don't, but your example is easy enough to convert. Everything you listed above can be achieved by adding the lines below to a base xboxdrv command that is tailored for your controller.

                                --dpad-as-button \
                                --ui-axismap x1=KEY_LEFT:KEY_RIGHT,y1=KEY_UP:KEY_DOWN,x2=KEY_INSERT:KEY_DELETE,y2=KEY_EQUAL:KEY_MINUS \
                                --ui-buttonmap tl=KEY_RIGHTSHIFT,back=KEY_GRAVE,start=KEY_A,y=KEY_Y,x=KEY_0,b=KEY_E,a=KEY_L,rb=KEY_T,lb=KEY_R,rt=KEY_SPACE,lt=KEY_ENTER,du=KEY_G,dd=KEY_M,dl=KEY_F,dr=KEY_B
                                

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

                                D 1 Reply Last reply Reply Quote 0
                                • D
                                  dunnieboy @mediamogul
                                  last edited by dunnieboy

                                  @mediamogul said in Guide: Advanced Controller Mappings:

                                  you listed above can be achieve

                                  Thanks .. its the axis sticks that i am having trouble wrapping my head around. Also there are more controls i'd like to map ... any suggestions for additional mappings (maybe to combination buttons ?)

                                  One question you are using dd,du,dl,dr etc for the dpad ... I thought those were referred to as dpad_x or dpad_y .... or is the naming arbitrary ?

                                  #!/bin/bash
                                  sudo killall >/dev/null xboxdrv
                                  sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                  	--evdev /dev/input/event3 \
                                  	--silent \
                                  	--detach-kernel-driver \
                                  	--force-feedback \
                                  	--deadzone-trigger 15% \
                                  	--deadzone 4000 \
                                  	--device-name "donotroller" \
                                  	--calibration x1=-32767:0:32767,y1=-32767:0:32767,x2=-32767:0:32767,y2=-32767:0:32767 \
                                  	--trigger-as-button \
                                  	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_RX=lt,ABS_RY=rt,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
                                  	--evdev-keymap BTN_EAST=a,BTN_C=b,BTN_SOUTH=x,BTN_NORTH=y,BTN_WEST=lb,BTN_Z=rb,BTN_START=tl,BTN_SELECT=tr,BTN_THUMBL=guide,BTN_TL2=back,BTN_TR2=start \
                                  	
                                          --axismap -Y1=Y1,-Y2=Y2 \
                                  	
                                  	--ui-axismap \
                                  	x1=KEY_LEFT:KEY_RIGHT,\
                                  	y1=KEY_UP:KEY_DOWN,\
                                  	x2=KEY_INSERT:KEY_DELETE,\
                                  	y2=KEY_EQUAL:KEY_MINUS \
                                  
                                  	--ui-buttonmap \
                                  	
                                  	#sticks
                                  
                                  	tl=KEY_RIGHTSHIFT,\ # Double Movement
                                  	dd=KEY_M,\ #down - select missile
                                  	du=KEY_G,\ #up - switch guns
                                  	dl=KEY_F,\ #left - full guns
                                  	dr=KEY_B,\ #right - all missiles
                                  	lt=KEY_ENTER,\ # fire missiles
                                  	rt=KEY_SPACE,\ # fire guns
                                  	a=KEY_L,\ # Lock Target
                                  	b=KEY_E,\  # Drop Decoy
                                  	x=KEY_X,\ # Cycle Displays
                                  	y=KEY_Y,\ # Match speed of target
                                  
                                  	lb=KEY_T,\ #next target
                                  	rb=KEY_R,\ #next turret
                                  
                                  	start=KEY_A, #autopilot
                                  	back=KEY_GRAVE #Afterburn
                                  	
                                  	# Eject Ctrl-E
                                  	# Nav Map - N
                                  	# Lock Targets - L
                                  	# Comms Select - C
                                  	# Autopilot - A
                                  	# Jump - J
                                  	# Options Menu - Alt-O
                                  	# Synchro Guns Ctrl-G
                                  
                                  	# Look left - F2
                                  	# Look Right - F3
                                  	# Look Forward - F1
                                  	# Look Backward - F4
                                  
                                  	# Full Stop  - Backspace
                                  	# Full Speed - ~
                                  	# 
                                  
                                  mediamogulM 1 Reply Last reply Reply Quote 0
                                  • mediamogulM
                                    mediamogul Global Moderator @dunnieboy
                                    last edited by

                                    @dunnieboy

                                    One question you are using dd,du,dl,dr etc for the dpad ... I thought those were referred to as dpad_x or dpad_y .... or is the naming arbitrary ?

                                    You can map them either way. It seems like there's a reason I always map mine as buttons, but I can't remember it now.

                                    any suggestions for additional mappings (maybe to combination buttons ?)

                                    Not off hand. I often get my best ideas on how to improve a control scheme only after testing my initial attempt for a while. Also, you'll sometimes find that an idea you were sure would work doesn't play well at all in practice. One thing I always like to do is bring program functionality in line with RetroArch as closely as possible, so that exiting, save states, screeenshots and resets are always the same in any game I play.

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

                                    D 1 Reply Last reply Reply Quote 0
                                    • D
                                      dunnieboy @mediamogul
                                      last edited by

                                      @mediamogul that makes sense .. i'm just trying to eliminate the keyboard usage all together

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

                                        @dunnieboy

                                        i'm just trying to eliminate the keyboard usage all together

                                        It can be done almost completely. The only time I need to use a keyboard is for system maintenance, Z-Machine emulation and certain computer games.

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

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

                                          @mediamogul As per the "Advmame controller problem" thread which I started where I was unable to get Advmame to recognise Player 2's controls separate from Player 1, I've gone back to using lr-mame2003 for both Portrait and Landscape mode oriented roms.

                                          For my 4 player arcade table (2 in portrait mode and 2 in landscape mode), xboxdrv allows me to map all 4 joysticks to the same keyboard controls, meaning that it doesn't matter whether I'm playing the game in portrait or landscape orientation, a joystick is going to work.

                                          I've mapped Joysticks 1 and 3 to Player 1's keyboard controls and Joysticks 2 and 4 to Player 2's keyboard controls. I've tested this setup with Ms Pacman and it seems to work in both orientations.

                                          Hopefully, this code helps someone else with an arcade table similar to mine.

                                          #!/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 and then map to keyboard.
                                          ### Remove " > /dev/null 2>&1 " from first line to see information when xboxdrv starts
                                          ### First: Using the TAB menu in lr-mame2003 and other emulators, either make note of the default keyboard controls and map the code below accordingly or in TAB map Player 1's and Player 2's controls to the keyboard controls you want and then map the code below.
                                          ### Second: Remember to change the 99-xboxdrv file to the following:
                                          ### SUBSYSTEM=="input", ATTRS{name}=="Player_1", GROUP="users", MODE="0666", ENV{ID_INPUT_KEYBOARD}="1"
                                          ### SUBSYSTEM=="input", ATTRS{name}=="Player_2", GROUP="users", MODE="0666", ENV{ID_INPUT_KEYBOARD}="1"
                                          ### SUBSYSTEM=="input", ATTRS{name}=="Player_3", GROUP="users", MODE="0666", ENV{ID_INPUT_KEYBOARD}="1"
                                          ### SUBSYSTEM=="input", ATTRS{name}=="Player_4", GROUP="users", MODE="0666", ENV{ID_INPUT_KEYBOARD}="1"
                                          
                                          
                                          ### Player1_4Way and Player2_4Way map Joysticks 1 and 2 with four way restriction for use with lr-mame2003.
                                          Player1_4Way="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --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 \
                                          --four-way-restrictor \
                                          --evdev-keymap BTN_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start \
                                          --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"
                                          
                                          Player2_4Way="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick \
                                          --device-name "Player_2" \
                                          --evdev-absmap ABS_X=y1,ABS_Y=x1 \
                                          --four-way-restrictor \
                                          --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start \
                                          --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"
                                          
                                          
                                          ### Player3_4Way and Player4_4Way map Joysticks 3 and 4 with four way restriction for use with lr-mame2003.
                                          Player3_4Way="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick \
                                          --device-name "Player_3" \
                                          --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-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"
                                          
                                          Player4_4Way="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick \
                                          --device-name "Player_4" \
                                          --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-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"
                                          
                                          ### Player1_8Way and Player2_8Way map Joysticks 1 and 2 with no restriction for use with lr-mame2003
                                          Player1_8Way="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --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_TRIGGER=x,BTN_THUMB=y,BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start \
                                          --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"
                                          
                                          Player2_8Way="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick \
                                          --device-name "Player_2" \
                                          --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-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"
                                          
                                          ### Player3_8Way and Player4_8Way map Joysticks 3 and 4 with no restriction for use with lr-mame2003
                                          Player3_8Way="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick \
                                          --device-name "Player_3" \
                                          --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-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"
                                          
                                          Player4_8Way="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick \
                                          --device-name "Player_4" \
                                          --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-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"
                                          
                                          ### Player1_Amiga and Player2_Amiga are for the UAE4ARM emulator and fixes the axes for Players 1 and 2
                                          Player1_Amiga="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --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"
                                          
                                          Player2_Amiga="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                          --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 \
                                          --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"
                                          
                                          ### Arcade Games that use 4 way restricted joysticks - 208 of 208 identified games
                                          RestrictedArcadeGames=""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""
                                          
                                          
                                          ### 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
                                          			$RestrictedArcadeGames) # Configuration used only for these ROMs
                                          				$xboxkill
                                          				joycommand="$Player1_4Way & $Player2_4Way & $Player3_4Way & $Player4_4Way &"
                                          				eval $joycommand
                                          			;;
                                          			*) # Configuration for every other ROM in respect of this emulator
                                          				$xboxkill
                                          				joycommand="$Player1_8Way & $Player2_8Way & $Player3_8Way & $Player4_8Way &"
                                          				eval $joycommand
                                          			;;
                                          		esac
                                          	;;
                                          	
                                          	uae4arm)
                                          		$xboxkill
                                          		joycommand="$Player1_Amiga & $Player2_Amiga &"
                                          		eval $joycommand
                                          	;;
                                          
                                          esac
                                          
                                          ###	lr-fbalpha)
                                          ###	case $rom in
                                          ###			$RestrictedArcadeGames) # Configuration used only for these ROMs
                                          ###				$xboxkill
                                          ###				joycommand="$Player1_4Way & $Player2_4Way & $Player3_4Way & $Player4_4Way &"
                                          ###				eval $joycommand
                                          ###			;;
                                          ###			*) # Configuration for every other ROM in respect of this emulator
                                          ###				$xboxkill
                                          ###				joycommand="$Player1_8Way & $Player2_8Way & $Player3_8Way & $Player4_8Way &"
                                          ###				eval $joycommand
                                          ###			;;
                                          ###		esac
                                          ###	;;
                                          
                                          ###	advmame-1.4)
                                          ###	case $rom in
                                          ###			$RestrictedArcadeGames) # Configuration used only for these ROMs
                                          ###				$xboxkill
                                          ###				joycommand="$Player1_4Way & $Player2_4Way & $Player3_4Way & $Player4_4Way &"
                                          ###				eval $joycommand
                                          ###			;;
                                          ###			*) # Configuration for every other ROM in respect of this emulator
                                          ###				$xboxkill
                                          ###				joycommand="$Player1_8Way & $Player2_8Way & $Player3_8Way & $Player4_8Way &"
                                          ###				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

                                          1 Reply Last reply Reply Quote 1
                                          • D
                                            dunnieboy @mediamogul
                                            last edited by dunnieboy

                                            @mediamogul any idea why the following is not accepting my dpad as buttons .. the dpad spits out nothing at all when I run evtest ? Also ... i'm not sure wing commander is seeing this remap at all. I should be configuring the game as keyboard not joystick right ?

                                            #!/bin/bash
                                            sudo killall >/dev/null xboxdrv
                                            sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                            	--evdev /dev/input/event3 \
                                            	--detach-kernel-driver \
                                            	--deadzone-trigger 15% \
                                            	--deadzone 4000 \
                                            	--device-name "donotroller" \
                                            	--calibration x1=-32767:0:32767,y1=-32767:0:32767,x2=-32767:0:32767,y2=-32767:0:32767 \
                                            	--trigger-as-button \
                                            	--dpad-as-button \
                                            	--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_RX=lt,ABS_RY=rt \
                                            	--evdev-keymap BTN_EAST=a,BTN_C=b,BTN_SOUTH=x,BTN_NORTH=y,BTN_WEST=lb,BTN_Z=rb,BTN_START=tl,BTN_SELECT=tr,BTN_THUMBL=guide,BTN_TL2=back,BTN_TR2=start \
                                            	--axismap -Y1=Y1,-Y2=Y2 \
                                            	--ui-axismap x1=KEY_LEFT:KEY_RIGHT,y1=KEY_UP:KEY_DOWN,x2=KEY_INSERT:KEY_DELETE,y2=KEY_EQUAL:KEY_MINUS \
                                            	--ui-buttonmap tl=KEY_RIGHTSHIFT,dd=KEY_M,du=KEY_G,dl=KEY_F,dr=KEY_B,lt=KEY_ENTER,rt=KEY_SPACE,a=KEY_L,b=KEY_E,x=KEY_X,y=KEY_Y,lb=KEY_T,rb=KEY_R,start=KEY_A,back=KEY_GRAVE \
                                            	-- \
                                            /opt/retropie/emulators/dosbox/bin/dosbox -conf "/home/pi/RetroPie/roms/pc/wc/wc_3.conf"
                                            
                                            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.