Guide: Advanced Controller Mappings
-
@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" -
Glad that solved it. I ran into that same issue with Atari800.
-
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"
-
@mediamogul Well done! That's terrific. I've got a landscape mode too, so I'll use these for that setup too.
-
@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.
-
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.
-
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
-
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?
-
yes, it works fine. i even used
evtest /dev/input/event*
to pull what was coming up and it wasBTN_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
-
Do you have the mouse attached when using the xboxdrv mapping? It could be that it can only use mouse0 for game play.
-
@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.
-
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
-
@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 - ~ #
-
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.
-
@mediamogul that makes sense .. i'm just trying to eliminate the keyboard usage all together
-
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.
-
@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 ### ;;
-
@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"
-
the dpad spits out nothing at all when I run evtest
I've never come across that. If it's not seen by evtest at all, then there might be no way to map it in xboxdrv. I revised your example above to include a common entry for
ABS_HAT0X
andABS_HAT0Y
that might do the job. I also removed the last line, as it doesn't need to be there.#!/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_HAT0X=dpad_x,ABS_HAT0Y=dpad_y,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 \ &
-
@mediamogul thanks .. ill give that a try. One question about ,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y.
I dont see dpad_x or dpad_y in the ui-buttonmap or ui-axismap. I thought (probably incorrectly) that the evdev lines were like definitions and the ui- lines were assignments. Is this the wrong way to think about this ?
Thanks
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.