• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
RetroPie forum home
  • Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Guide: Advanced Controller Mappings

Scheduled Pinned Locked Moved Help and Support
joystickcontrollermappingxboxdrvscummvm
626 Posts 35 Posters 461.4k 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.
  • M
    mediamogul Global Moderator @spud11
    last edited by 17 Apr 2017, 04:18

    @spud11

    @EctoOne is right on the money. Using his example, where he mapped the 'Escape' key (27) to exit, you could also mirror RetroArch's functionality and exit immediately with:

    --ui-buttonmap back+start=KEY_ESC
    

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

    S 1 Reply Last reply 17 Apr 2017, 06:46 Reply Quote 1
    • S
      spud11 @mediamogul
      last edited by 17 Apr 2017, 06:46

      @mediamogul and @EctoOne Thanks to both of you.

      But with xboxdrv am I just able to map one key alone eg the escape key?

      At the moment, I'm finding none of the keys work with UAE4ARM/xboxdrv (eg up/down/left/right won't work with or without xboxdrv). So can I just map --ui-buttonmap back+start=KEY_ESC and not worry about mapping any of the other keys? Or do I have to map everything in which case I seem to be having a problem with UAE4ARM? With all my other keyboard mappings eg for lr-mame2003, I've mapped every key I need and thought that's what had to be done in every case.

      Thanks.

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

      M 1 Reply Last reply 17 Apr 2017, 06:53 Reply Quote 0
      • M
        mediamogul Global Moderator @spud11
        last edited by mediamogul 17 Apr 2017, 06:53

        @spud11

        So can I just map --ui-buttonmap back+start=KEY_ESC and not worry about mapping any of the other keys?

        If the goal is to have 'select+start' quit immediately, then you'll need set key_for_quit=27 in whatever .uae file you're using for Amiberry (UAE4ARM doesn't have this ability) and then use xboxdrv to make the 'select+start' combination with --ui-buttonmap back+start=KEY_ESC.

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

        S 1 Reply Last reply 17 Apr 2017, 08:05 Reply Quote 0
        • S
          spud11 @mediamogul
          last edited by spud11 17 Apr 2017, 08:05

          @mediamogul Thanks.

          So I've switched to amiberry, inserted key_for_quit=27 in the relevant .uae and added --ui-buttonmap back+start=KEY_ESC to the command as so:

          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-buttonmap back+start=KEY_ESC
          

          You will see that I haven't mapped any other keys at this stage. However, both pressing the escape on the keyboard or pressing both buttons back and start will exit the game completely. So that now definitely works. Thanks.

          However, nothing else works. I have tried without loading xboxdrv ie just trying to use the keyboard "in game" but again it's as though amiberry isn't recognising any keys, other than the escape. I understand the default keys for amiberry are the same as for UAE4ARM and are hardcoded as follows:

          lctrl - joy 1/mouse 1 (button X in gui)
          lalt - joy 2/mouse 2 (button Y in gui)
          lshift - joy 1 autofire (button A in gui)
          z - mouse 1 (button B in gui)
          5 - switch input between mouse/joystick
          arrow keys - up / down / left / right

          These keys should just work in game if xboxdrv isn't loaded, shouldn't they? I just can't seem to get any of them to work with or without loading xboxdrv. Could it be that the ports being mapped to my DragonRise joysticks are a problem? Or do I need to map all other keys in the .uae?

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

          M 1 Reply Last reply 17 Apr 2017, 14:15 Reply Quote 0
          • M
            mediamogul Global Moderator @spud11
            last edited by mediamogul 17 Apr 2017, 14:15

            @spud11

            I've never had any luck key-mapping joystick controls to any of the variants of UAE4ALL. As I understand it, the Amiberry developer is looking into the issue, but I'm not sure about the extent of the problem. Instead, I lean into the skid on this one and just map my controller to be seen as a standard XBox 360 controller that can then be selected from the pull-down menu in the 'Input' settings of the software. The only changes I make are to map a toggle that allows me to switch the left joystick and A/B buttons to mouse control, a combination to open the menu, and a combination for the quit function, as you've now done.

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

            S 1 Reply Last reply 17 Apr 2017, 23:42 Reply Quote 0
            • S
              spud11 @mediamogul
              last edited by 17 Apr 2017, 23:42

              @mediamogul Thanks. I won't bother trying to map all keys as that clearly isn't working.

              I've now tested the code a bit more. If I have the following extracts in runcommand-onstart, xboxdrv won't start:

              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 "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-buttonmap back+start=KEY_ESC"
              
              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 "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"
              
              ;;
              	
              	uae4arm)
              		$xboxkill
              		joycommand="$Player1_Amiga & $Player2_Amiga &"
              		eval $joycommand
              	;;
              

              The only difference being the --ui-buttonmap back+start=KEY_ESC line. Without it, xboxdrv works as per normal.

              Output of runcommand.log for the above is:

              Parameters: 
              Executing: /opt/retropie/emulators/amiberry/amiberry.sh rp-a1200.uae "/home/pi/RetroPie/roms/amiga/Alien Breed Special Edition '92.uae"
              Amiberry v2.1.1, by Dimitris (MiDWaN) Panokostas and Olly Aigner
              Based on previous work by Chips and TomB (Pandora)
              Joystick 0 : DragonRise Inc.   Generic   USB  Joystick  
                  Buttons: 12 Axis: 4 Hats: 1
              Joystick 1 : DragonRise Inc.   Generic   USB  Joystick  
                  Buttons: 12 Axis: 4 Hats: 1
              Joystick 2 : DragonRise Inc.   Generic   USB  Joystick  
                  Buttons: 12 Axis: 4 Hats: 1
              Joystick 3 : DragonRise Inc.   Generic   USB  Joystick  
                  Buttons: 12 Axis: 4 Hats: 1
              starting sound thread..
              stopping sound thread..
              /opt/retropie/supplementary/runcommand
              

              So xboxdrv isn't loading.

              But if I run the following code for each joystick separately from the commandline, xboxdrv will work and my "back" button (but not back+start) will exit the game:

              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-buttonmap back+start=KEY_ESC \
              &
              

              And:

              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 \
              &
              

              For some reason, on the commandline, the xboxdrv code for each joystick needs to be entered separately too - I can't just have a & in between and start them in one block of code. I'm not sure why that is the case but that might be what's causing xboxdrv not to start up when using runcommand-onstart which basically starts both joysticks automatically using the & in between.

              The only difference between my "normal" xboxdrv code and this is that one line of code relating to the escape button. Without it, xboxdrv works perfectly from runcommand-onstart.

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

              M E 2 Replies Last reply 18 Apr 2017, 00:06 Reply Quote 0
              • M
                mediamogul Global Moderator @spud11
                last edited by 18 Apr 2017, 00:06

                @spud11

                The only difference between my "normal" xboxdrv code and this is that one line of code relating to the escape button. Without it, xboxdrv works perfectly from runcommand-onstart.

                It's formatted correctly. the only thing I can guess is that unwanted characters are being introduced from your text editor. What are you using to edit the script?

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

                1 Reply Last reply Reply Quote 0
                • E
                  EctoOne @spud11
                  last edited by EctoOne 18 Apr 2017, 02:05

                  @spud11 you still have uae4arm in your onstart file. If you're using amiberry now you need to replace it with amiberry.

                  Edit: I just looked at my script and i'm suprised that it worked with uae4arm. In my script it says that you need to call the system not the software.
                  Thats why i didn't had that problem when i made the official change to amiberry because i had set amiga instead of uae4arm or amiberry.

                  ### Execute the driver with the configuration you need
                  # $1 is the name of the emulation, not the name of the software used
                  # it is intellivision not jzintv
                  case $1 in
                  amiga)
                  $xboxkill
                  joycommand="$LogiF710 $amiga &"
                  eval $joycommand
                  ;;
                  esac
                  S M 2 Replies Last reply 18 Apr 2017, 05:56 Reply Quote 2
                  • S
                    spud11 @EctoOne
                    last edited by 18 Apr 2017, 05:56

                    @EctoOne and @mediamogul Oh cripes. That was silly of me. Thank you both. I'm at work at the moment, but once home will replace uae4arm with amiberry in the runcommand-onstart and then see what happens.

                    Also, I haven't had any problems with the line break issue for some time now, because I've got the editor now set to show 'LF' after each return so I don't think it will be that but will look at it again if the above doesn't work.

                    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
                    • M
                      mediamogul Global Moderator @EctoOne
                      last edited by 18 Apr 2017, 06:52

                      @EctoOne

                      you still have uae4arm in your onstart file

                      Good eye, sir!

                      @spud11

                      I haven't had any problems with the line break issue for some time now, because I've got the editor

                      Ah, so this is something you've been through earlier. I didn't remember.

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

                      S 2 Replies Last reply 18 Apr 2017, 09:29 Reply Quote 1
                      • S
                        spud11 @mediamogul
                        last edited by 18 Apr 2017, 09:29

                        @mediamogul and @EctoOne

                        Brilliant! All good now. The change from uae4arm to amiberry-a1200 in the runcommand-onstart fixed the problem. Also, I realised I'd already added button_for_quit=8 in the .uae so pressing my back button automatically led to it exiting. I've replaced that with button_for_quit=-1 and I've got the key_for_quit=27 in there too so all is working as it should with back+start now exiting the game.

                        Thank you!

                        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
                        • S
                          spud11 @mediamogul
                          last edited by spud11 22 Apr 2017, 01:01

                          @mediamogul Hi. With 2 player alternate games (ie games where 1 player takes a turn and then the next player takes their turn), Advance Mame (or actually the game itself) defaults to Player 1's joystick. Advance Mame works fine for 2 Player simultaneous games - in that case Player 1's joystick controls Player 1; Player 2's joystick controls Player 2.

                          But as I have an arcade table with 4 joysticks, I was hoping to use xboxdrv to get Advance Mame to recognise Player 2's joystick for 2 player alternate games by having Player 2's joystick mirror Player 1's keys so that there is no need to change seats each time. I have set up Advance Mame using TAB to give Player 1 and Player 2 different keys.

                          As I don't want Player 2 to mimic Player 1's keys when I'm playing 2 player simultaneous/co-operative games, I'm trying to "carve out" the 2 Player simultaneous games eg Mario Bros. Then with the * class, every other game including 1 player and 2 player alternate games will have Player 2's joystick mapped to Player 1's keys.

                          With Mario Bros, I've tested my code in commandline and it does work 100% (Player 1's joystick is mapped to Player 1's keys and Player 2's joystick is mapped to Player 2's keys), but I can't get it to work properly in runcommand-onstart. What happens is that Mario Bros, instead of being treated as a "carved out" 2 player simultaneous game, it is treated among the * class ie like every non-simultaneous game - that is, both Player 1's joystick and Player 2's joystick controls Player 1.

                          An extract of the code from runcommand-onstart is here:

                          ### Code begins
                          ### Game/ROM full path
                          rom="${3##*/}"
                          Player1_AdvMame_Sim="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_AdvMame_Sim="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"
                          Player1_AdvMame_Alt="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_AdvMame_Alt="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_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"
                          ### 2 Player Co-operative or 2 Player Simultaneous Arcade games - for Advance Mame. These are games where 2 players are playing at the same time with different joysticks. With 2 Player Co-operative games, Player 1 uses Player 1's joystick and Player 2 uses Player 2's joystick. For 2 player alternate games using Advance Mame (ie games where one person takes their turn and then the next player takes their turn), Player 1 and Player 2 use Player 1's joystick. Player 2 can't use a separate joystick. To avoid this "hot seating", these xboxdrv configurations allow 2 Player Co-operative games to continue to use 2 joysticks while for 2 Player alternate games which use hotseating normally, Player 1's and 2's joystick controls now mirror each other by using the same keys, so there is no need for "hotseating".
                          TwoPlayerSim=""aerofgt.zip"|"aerofgtb.zip"|"aerofgtc.zip"|"sonicwi2.zip"|"sonicwi3.zip"|"alien3.zip"|"avspu.zip"|"aliens.zip"|"alpham2.zip"|"altbeast.zip"|"altbeas2.zip"|"altbeas4.zip"|"altbeas5.zip"|"altbeaj1.zip"|"altbeaj.zip"|"altbeaj3.zip"|"androdun.zip"|"armwar.zip"|"baddudes.zip"|"batcir.zip"|"btoads.zip"|"bnzabros.zip"|"bublbobl.zip"|"bublbobr.zip"|"bublbob1.zip"|"bublbob2.zip"|"bubblebobbleultra.zip"|"bubblem.zip"|"bubsympe.zip"|"bubsymph.zip"|"bubsympu.zip"|"burnforc.zip"|"burnfrco.zip"|"burningf.zip"|"burningh.zip"|"dino.zip"|"dinoj.zip"|"dinou.zip"|"captaven.zip"|"captavna.zip"|"captavne.zip"|"captavnj.zip"|"captavnu.zip"|"captavuu.zip"|"captcomm.zip"|"captcomu.zip"|"captcomj.zip"|"cawing.zip"|"cawingj.zip"|"cawingr1.zip"|"cawingu.zip"|"edrandy.zip"|"edrandy1.zip"|"edrandyj.zip"|"ctribe.zip"|"ctribeb.zip"|"contra.zip"|"contrab.zip"|"contraj.zip"|"contrajb.zip"|"crimfght.zip"|"crimfgt2.zip"|"crimfgtj.zip"|"crsword.zip"|"darius.zip"|"darius2.zip"|"darius2d.zip"|"dariuse.zip"|"dariusg.zip"|"dariusgj.zip"|"dariusgu.zip"|"dariusgx.zip"|"dariusj.zip"|"dariuso.zip"|"diehard.zip"|"ddrgn2u.zip"|"ddrgnw1.zip"|"ddrago3b.zip"|"ddragon.zip"|"ddragon2.zip"|"ddragon3.zip"|"ddragonb.zip"|"ddragonu.zip"|"ddragonw.zip"|"ddsom.zip"|"ddsoma.zip"|"ddsomj.zip"|"ddsomjr1.zip"|"ddsomr1.zip"|"ddsomr2.zip"|"ddsomu.zip"|"ddsomur1.zip"|"ddtod.zip"|"ddtoda.zip"|"ddtodh.zip"|"ddtodj.zip"|"ddtodjr1.zip"|"ddtodr1.zip"|"ddtodu.zip"|"ddtodur1.zip"|"dynamcop.zip"|"dynwar.zip"|"dynwarj.zip"|"exedexes.zip"|"ffight.zip"|"ffightj.zip"|"ffightj1.zip"|"ffightu.zip"|"ffightua.zip"|"gdarius.zip"|"gdarius2.zip"|"gdariusb.zip"|"gground.zip"|"gaun2pg1.zip"|"gaun2pg2.zip"|"gaun2pr3.zip"|"gaun22p1.zip"|"gaun22pg.zip"|"gaunt2.zip"|"gaunt2g.zip"|"gaunt2p.zip"|"gaunt2pg.zip"|"gaunt2pj.zip"|"gaunt22p.zip"|"gauntdl.zip"|"gauntg.zip"|"gauntgr3.zip"|"gauntgr6.zip"|"gauntgr8.zip"|"gauntj.zip"|"gauntj12.zip"|"gauntr1.zip"|"gauntr2.zip"|"gauntr4.zip"|"gauntr5.zip"|"gauntr7.zip"|"gauntr9.zip"|"gpilots.zip"|"gokuparo.zip"|"goldnax1.zip"|"goldnax2.zip"|"goldnax3.zip"|"goldnaxe.zip"|"goldnaxj.zip"|"goldnaxu.zip"|"ga2.zip"|"ga2j.zip"|"ga2u.zip"|"mt_gaxe.zip"|"mt_gaxe2.zip"|"gwar.zip"|"gwara.zip"|"gwarb.zip"|"gwarj.zip"|"hbarrel.zip"|"hbarrelw.zip"|"iceclimb.zip"|"iceclmbj.zip"|"iceclmrj.zip"|"joust.zip"|"joustr.zip"|"joustwr.zip"|"knights.zip"|"knightsj.zip"|"knightsu.zip"|"lresort.zip"|"lwings.zip"|"lwings2.zip"|"lwingsjp.zip"|"lifefrce.zip"|"lifefrcj.zip"|"mario.zip"|"mariojp.zip"|"mslug.zip"|"mslug2.zip"|"mslug3.zip"|"mslug3b6.zip"|"mslug3n.zip"|"mslug4.zip"|"mslug5.zip"|"mslugx.zip"|"mwalk.zip"|"mwalkbl.zip"|"mwalkj.zip"|"mwalku.zip"|"nbbatman.zip"|"gaiden.zip"|"progear.zip"|"progeara.zip"|"progearj.zip"|"punisher.zip"|"punishrj.zip"|"punishru.zip"|"rampage.zip"|"rampage2.zip"|"rmpgwt.zip"|"rmpgwt11.zip"|"robocop2.zip"|"robocp2j.zip"|"robocp2u.zip"|"rtypeleo.zip"|"rtypelej.zip"|"salamand.zip"|"salamanj.zip"|"salamndr2.zip"|"sengokh.zip"|"sengokmj.zip"|"sengoku.zip"|"sengoku2.zip"|"sengoku3.zip"|"sexyparo.zip"|"shocktro.zip"|"shocktr2.zip"|"sscope2.zip"|"simpsn2p.zip"|"skullfng.zip"|"skykid.zip"|"skykidd.zip"|"skykiddo.zip"|"skykiddx.zip"|"smashtv.zip"|"smashtv4.zip"|"smashtv5.zip"|"smashtv6.zip"|"spclorda.zip"|"spclordb.zip"|"spclordg.zip"|"spclords.zip"|"spidman.zip"|"spidmanu.zip"|"streetsm.zip"|"streets1.zip"|"streetsj.zip"|"streetsw.zip"|"ssriders.zip"|"scobra.zip"|"scobrab.zip"|"scobras.zip"|"scobrase.zip"|"tmnt.zip"|"tmnt2.zip"|"tmnt2a.zip"|"tmnt2pj.zip"|"tmnt2po.zip"|"tmnt22p.zip"|"tmntj.zip"|"tmntu.zip"|"tmntua.zip"|"timecrs2.zip"|"twinbee.zip"|"unsquad.zip"|"vendet2p.zip"|"viostorm.zip"|"viostrma.zip"|"viostrmj.zip"|"viostrmu.zip"|"vcop.zip"|"vcop2.zip"|"wof.zip"|"wofa.zip"|"wofj.zip"|"wofu.zip"|"wow.zip"|"xmen.zip"|"xenophob.zip""
                          case $2 in
                          advmame)
                          case $rom in
                          $TwoPlayerSim) # Configuration used only for these 2 Player Co-Operative / Simultaneous ROMs
                          $xboxkill
                          joycommand="$Player1_AdvMame_Sim & $Player2_AdvMame_Sim &"
                          eval $joycommand
                          ;;
                          *) # Configuration for every other ROM in respect of this emulator including 2 Player "hotseating" ROMS
                          $xboxkill
                          joycommand="$Player1_AdvMame_Alt & $Player2_AdvMame_Alt &"
                          eval $joycommand
                          ;;
                          esac
                          ;;

                          I wondered whether it might have something to do with having .zip in the game name, but I have removed that, tested it and there is no change. I've also checked the code by replacing in the * class $Player1_AdvMame_Alt and $Player2_AdvMame_Alt with $Player1_AdvMame_Sim and $Player2_AdvMame_Sim and in that case it does work - both players can play simultaneously using separate joysticks mapped to the respective keys. That means that for some reason Mario Bros is defaulting to the * class no matter what I do.

                          There are no errors in the log either.

                          Could you please help me? Thank you.

                          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

                          S 1 Reply Last reply 22 Apr 2017, 01:26 Reply Quote 0
                          • S
                            spud11 @spud11
                            last edited by 22 Apr 2017, 01:26

                            @mediamogul Hi.

                            While testing I have narrowed down the problem to my definition of TwoPlayerSim by changing the code to the following:

                            ### Mario Bros
                            Mario=""mario.zip""
                            advmame)
                            case $rom in
                            $Mario) # Configuration used only for these 2 Player Co-Operative / Simultaneous ROMs
                            $xboxkill
                            joycommand="$Player1_AdvMame_Sim & $Player2_AdvMame_Sim &"
                            eval $joycommand
                            ;;
                            *) # Configuration for every other ROM in respect of this emulator including 2 Player "hotseating" ROMS
                            $xboxkill
                            joycommand="$Player1_AdvMame_Alt & $Player2_AdvMame_Alt &"
                            eval $joycommand
                            ;;
                            esac
                            ;;

                            The above code definitely works.

                            I'm just not sure what the problem is with TwoPlayerSim.

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

                            M 1 Reply Last reply 22 Apr 2017, 05:30 Reply Quote 0
                            • M
                              mediamogul Global Moderator @spud11
                              last edited by mediamogul 22 Apr 2017, 05:30

                              @spud11

                              I'm afraid I'm not going to be much help tonight. It was one dollar shots night down at the Regal Beagle. Plus, I overheard half of a conversation that makes me think my two roommates might have kidnapped our landlord, so I have to deal with that now. I'll take a closer look at this in the morning, but is 'Mario Bros.' the only game not working here, or are all the TwoPlayerSim titles not triggering?

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

                              S 2 Replies Last reply 22 Apr 2017, 08:52 Reply Quote 1
                              • S
                                spud11 @mediamogul
                                last edited by 22 Apr 2017, 08:52

                                @mediamogul That's no problem at all - your roommates will probably need some assistance anyway burying your landlord's body. I'll play around with the code a bit later and see what eventuates.

                                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 spud11 22 Apr 2017, 11:21

                                  @mediamogul Hi. I've now tested the code. It's definitely a problem with TwoPlayerSim. I've tested with The Punisher, Bubble Bobble and a couple of other games. The same thing happens - both Player 2's and Player 1's joysticks control Player 1, so all games are treated as though they fall into *. For the sake of completeness, the runcommand.info for The Punisher is:

                                  mame-advmame
                                  advmame
                                  /home/pi/RetroPie/roms/mame-advmame/punisher.zip
                                  /opt/retropie/emulators/advmame/bin/advmame "punisher"

                                  And the runcommand.log is:

                                  Parameters: 
                                  Executing: /opt/retropie/emulators/advmame/bin/advmame "punisher"
                                  

                                  Nothing to report there. I'm hoping not to have to rewrite TwoPlayerSim from scratch as it took a couple of hours, but I can't see any obvious error in it.

                                  I've now figured out a bit more. If I add another game to my Mario definition as so, it no longer works:

                                  Mario=""mario.zip"|"bublbobl.zip""
                                  

                                  So it appears to have something to do with the " or the |.

                                  What's strange is that the same construction works perfectly for my 4-way setup RestrictedArcadeGames, as you know, and I basically copied and pasted from that to produce TwoPlayerSim and Mario. I've gone back and checked that the RestrictedArcadeGames still works and it does - Ms Pacman works perfectly - it's 4-way restricted.

                                  There's also definitely no problem with the carriage returns either.

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

                                  M 1 Reply Last reply 22 Apr 2017, 15:34 Reply Quote 0
                                  • M
                                    mediamogul Global Moderator @spud11
                                    last edited by 22 Apr 2017, 15:34

                                    @spud11

                                    So it appears to have something to do with the " or the |.

                                    To further test your theory try:

                                    Mario=""mario.zip"|"mario.zip""
                                    

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

                                    S 1 Reply Last reply 22 Apr 2017, 21:45 Reply Quote 1
                                    • S
                                      spud11 @mediamogul
                                      last edited by 22 Apr 2017, 21:45

                                      @mediamogul Hi. Thanks. I copied your code and pasted it into my runcommand-onstart in case there was a problem at my end. Tried below and it does not work. It's a bit weird that this does not work.

                                      Mario=""mario.zip"|"mario.zip""
                                      

                                      I also tested 3 variations without success:

                                      Mario='"mario.zip"|"mario.zip"'
                                      
                                      Mario="'mario.zip'|'mario.zip'"
                                      
                                      Mario=''mario.zip''|''mario.zip''
                                      

                                      I thought it might have something to do with how advmame parses the rom name, but if it it works with Mario=mario.zip as it does, then that seems fairly unlikely.

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

                                      M 1 Reply Last reply 22 Apr 2017, 21:48 Reply Quote 0
                                      • M
                                        mediamogul Global Moderator @spud11
                                        last edited by 22 Apr 2017, 21:48

                                        @spud11 said in Guide: Advanced Controller Mappings:

                                        I also tested 3 variations without success:

                                        Yeah, I threw together a similar setup to yours and tested test those as well. Perhaps it's something outside that particular case that is somehow interfering.

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

                                        S 2 Replies Last reply 22 Apr 2017, 22:01 Reply Quote 1
                                        • S
                                          spud11 @mediamogul
                                          last edited by 22 Apr 2017, 22:01

                                          @mediamogul Yes, I was wondering that too. I'm not sure how to string together cases eg case $2 in and case $1 in in the one statement or even if it is possible. case $2 in has worked very well for me so far.

                                          To test, I switched to case $1 in using the mame-advmame parameter and xboxdrv starts so that's working, but it makes no difference. Same result as before.

                                          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
                                          439 out of 626
                                          • First post
                                            439/626
                                            Last post

                                          Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                          Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.

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