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

    Using xboxdrv with mame4all/advmame

    Scheduled Pinned Locked Moved Help and Support
    xboxdrvdevicemame4alladvmame
    49 Posts 4 Posters 5.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mediamogulM
      mediamogul Global Moderator @Lummox JR
      last edited by mediamogul

      @lummox-jr

      I have to admit, I'm almost at a loss. I know that AdvanceMAME will only use devices it discovers at launch, so perhaps the xboxdrv keyboard is being created slightly afterward for some reason. Try changing:

      advmame = "/opt/retropie/emulators/advmame/bin/advmame %BASENAME%"
      

      to

      advmame = "sleep 2; /opt/retropie/emulators/advmame/bin/advmame %BASENAME%"
      

      in /opt/retropie/configs/mame-advmame/emulators.cfg and see if that makes any difference.

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

      L 1 Reply Last reply Reply Quote 0
      • L
        Lummox JR @mediamogul
        last edited by

        @mediamogul I added sleep 2 right in runcommand-onstart.sh after the xboxdrv command, and no such luck. Both mame4all and advmame are completely oblivious to any keyboard/mouse/stick output from xboxdrv.

        The sad part is I can get this semi-working without xboxdrv, but the analog control snaps back and although the D-pad works now with the mapping I did, it's still hard to control via the D-pad. Besides, I still would like the option of using xboxdrv for other configuration issues down the road.

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

          @mediamogul My advancemame.rc settings are almost the same as your's, but I include mouse3 settings as well.

          While trawling through that file, I did see these settings which are set to auto: input_map[p1_mousex] auto and input_map[p1_mousey] auto.

          I haven't changed these at all because everything is working on my system, but perhaps @Lummox-JR could change these to:

          input_map[p1_mousex] mouse[0,x] mouse[1,x] mouse[2,x] mouse[3,x]
          input_map[p1_mousey] mouse[0,y] mouse[1,y] mouse[2,y] mouse[3,y]
          

          And see if that has any effect.

          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 @Lummox JR
            last edited by

            @lummox-jr Although I'm not using mame4all, I am using lr-mame2000 which uses the same mame romset so I'd assume that core would work with Star Wars.

            I also use xboxdrv for my libretro/retroarch cores and, on my system, xboxdrv works fine with lr-mame2000, albeit I'm not mimicking a mouse with it.

            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

            L 1 Reply Last reply Reply Quote 0
            • L
              Lummox JR @spud11
              last edited by

              @spud11 I tried changing to lr-mame2000 but the same problem happens there. xboxdrv doesn't work, and also Star Wars doesn't function properly at all in lr-mame2000. There are major glitches with the game there. (The rom loads in lr-mame2003, but then nothing functions whatsoever, even the keyboard, and I have to reboot.)

              I didn't try the mouse[3,x] and mouse[3,y] change, but at this point I don't see any value in trying that as the underlying problem definitely goes well beyond mouse input. Absolutely nothing from xboxdrv's mapping comes through in mame4all or advmame (or, when I tested, lr-mame2000 either which was super weird), whether it's keyboard, stick, or mouse.

              Just to be safe I did try adding --no-extra-events to the xboxdrv command, but no luck there.

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

                @lummox-jr

                Have you tried loading the map and then running evtest from the command line on the mouse and keyboard events created by xboxdrv? If they're not registering there, that'll at least explain why mame4all and AdvanceMAME aren't finding them.

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

                L 1 Reply Last reply Reply Quote 0
                • L
                  Lummox JR @mediamogul
                  last edited by

                  @mediamogul Yes, I've already tried evtest. The mapping works, but the mame4all and advmame emulators are not seeing it.

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

                    @lummox-jr

                    That would seem to isolate the problem to a configuration issue in the advancemame.rc file and the mame4all preferences. Why don't you post both and perhaps something will jump out.

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

                    L 2 Replies Last reply Reply Quote 0
                    • L
                      Lummox JR @mediamogul
                      last edited by

                      @mediamogul I can't post the whole files because I have no way of doing so. I can't access the Pi via SCP/SFTP, so I'm limited to typing in what I see on the screen.

                      What I can tell you for sure is this is a vanilla config. The only relevant info I see in the mame4all mame.cfg file is this:

                      #Joystick controls for frontend only
                      #Defaults to XBOX60 controller
                      J_START=7
                      J_SELECT=6
                      J_A=0
                      AXIS_LR=0
                      AXIS_UD=1
                      

                      And my advmame.rc file has:

                      device_joystick auto
                      device_keyboard raw
                      device_mouse auto
                      

                      I have an update however. My evtest runs did not check the buttons, only the analog to mouse output. When I tried testing the buttons again--I think I was confused because I had tested them for the Atari 800--I discovered they weren't set up right at all for my cheapo controller. So I made the right changes for this controller and the keyboard mapping does work now.

                      I tried to add the mouse[3,x] and mouse[3,y] stuff to advmame.rc along with the earlier mouse changes, but so far no luck with the mouse output.

                      1 Reply Last reply Reply Quote 0
                      • L
                        Lummox JR @mediamogul
                        last edited by

                        @mediamogul Adding to my previous message, I've tried setting this in advmame.rc:

                        device_raw_mousedev[0] /dev/input/js1
                        

                        ...since that's one of the devices setup by xboxdrv. (The other is /dev/input/event3 but I don't think going by number is safe if I have more controllers plugged in.) No response. I also tried setting device_mouse to auto, raw, event, and sdl but no luck with any of those so I've gone back to auto. device_raw_mousetype[0] is set to the default pnp.

                        I found some more info here which tells me I need to use the advm utility in advmame's bin files. I tried that, and it tells me there are no mice found under event or raw.

                        What I'm wondering is if the REL_X and REL_Y mappings don't work if no mouse is attached to the system. That would honestly explain a lot. But I would expect xboxdrv to have a way of dealing with that, maybe some option I'm overlooking. I did try the --mouse option just in case, and I am not currently using --no-extra-devices so that shouldn't be in the way.

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

                          @lummox-jr said in Using xboxdrv with mame4all:

                          I made the right changes for this controller and the keyboard mapping does work now.

                          Nice. That only leaves the mouse.

                          What I'm wondering is if the REL_X and REL_Y mappings don't work if no mouse is attached to the system.

                          xboxdrv creates its own mouse event, independent of any hardware mice that may or may not be attached. I believe we've narrowed the problem down to being emulator configuration in some way, but without being able to see a whole config file, I'm afraid its just a guessing game.

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

                          L 1 Reply Last reply Reply Quote 0
                          • L
                            Lummox JR @mediamogul
                            last edited by

                            @mediamogul said in Using xboxdrv with mame4all:

                            xboxdrv creates its own mouse event, independent of any hardware mice that may or may not be attached. I believe we've narrowed the problem down to being emulator configuration in some way, but without being able to see a whole config file, I'm afraid its just a guessing game.

                            I've shared the portions that are relevant already, and adopted the input-map items suggested above (including mouse[3,x] and mouse[3,y]), but I can type up a quick summary of that sometime tomorrow just to show where it's at. There isn't a lot in the config related to mouse input: just device_mouse, device_raw_mousedev, and device_raw_mousetype and any input mappings. At least as far as I know, anyway.

                            Maybe a better and more expedient question, though, is whether anyone has gotten mouse events from xboxdrv to work in advmame. Because if nobody has, maybe it's just not doable. But if someone has, maybe they could post their advmame.rc file and it'd be possible to compare.

                            mediamogulM S 2 Replies Last reply Reply Quote 0
                            • mediamogulM
                              mediamogul Global Moderator @Lummox JR
                              last edited by

                              @lummox-jr said in Using xboxdrv with mame4all/advmame:

                              Maybe a better and more expedient question, though, is whether anyone has gotten mouse events from xboxdrv to work in advmame.

                              I use the xboxdrv mouse abilities with advmame quite often. It's usually pretty easy to get going, as there's hardly any setup past what we've already tried. If we rule out the emulator config files, the only suggestion I really have left is that it might be related to your controller in some way.

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

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

                                @lummox-jr I'm not using the mouse in advmame, but I am in several other emulators.

                                I'm just wondering whether you have any other input/joysticks attached or just your 1 Shanwan joystick.

                                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

                                L 1 Reply Last reply Reply Quote 0
                                • L
                                  Lummox JR @spud11
                                  last edited by Lummox JR

                                  @spud11 At the moment no. My system came with two simple retropads that I was setting up first, but I switched to this other one (it's basically just a generic that's laid out like a PS controller) to try setting up analog options. I have others like it I eventually intend to try. The only two peripherals I currently have attached are that and a keyboard; the keyboard is in the first USB slot.

                                  @mediamogul Is there any chance you can show me what your own advmame.rc looks like, and the xboxdrv command you're using to set up the driver? Maybe something will jump out at me. In the meantime here's this:

                                  device_joystick auto
                                  device_keyboard raw
                                  device_mouse auto
                                  device_raw_firstkeyhack no
                                  device_raw_mousedev[0] auto
                                  device_raw_mousedev[1] auto
                                  device_raw_mousedev[2] auto
                                  device_raw_mousedev[3] auto
                                  device_raw_mousetype[0] pnp
                                  device_raw_mousetype[1] pnp
                                  device_raw_mousetype[2] pnp
                                  device_raw_mousetype[3] pnp
                                  ...
                                  input_map[p1_dialx] mouse[0,x] mouse[1,x] mouse[2,x] mouse[3,x]
                                  input_map[p1_dialy] mouse[0,y] mouse[1,y] mouse[2,y] mouse[3,y]
                                  input_map[p1_lightgunx] auto
                                  input_map[p1_lightguny] auto
                                  input_map[p1_mousex] auto
                                  input_map[p1_mousey] auto
                                  input_map[p1_paddlex] mouse[0,x] mouse[1,x] mouse[2,x] mouse[3,x]
                                  input_map[p1_paddley] mouse[0,y] mouse[1,y] mouse[2,y] mouse[3,y]
                                  input_map[p1_pedalbrake] auto
                                  input_map[p1_pedalgas] mouse[0,y] mouse[1,y] mouse[2,y] mouse[3,y]
                                  input_map[p1_pedalother] auto
                                  input_map[p1_stickx] mouse[0,x] mouse[1,x] mouse[2,x] mouse[3,x]
                                  input_map[p1_sticky] mouse[0,y] mouse[1,y] mouse[2,y] mouse[3,y]
                                  input_map[p1_stickz] auto
                                  input_map[p1_trackballx] mouse[0,x] mouse[1,x] mouse[2,x] mouse[3,x]
                                  input_map[p1_trackbally] mouse[0,y] mouse[1,y] mouse[2,y] mouse[3,y]
                                  

                                  And this is my current xboxdrv command:

                                  sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv >>/dev/shm/runcommand.log 2>&1 \
                                  	--evdev /dev/input/by-id/usb-ShanWan_ZD_Game_For_Windows-event-joystick \
                                  	--silent \
                                  	--detach-kernel-driver \
                                  	--force-feedback \
                                  	--deadzone-trigger 15% \
                                  	--deadzone 10% \
                                  	--mimic-xpad \
                                  	--evdev-absmap ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y,ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2 \
                                  	--evdev-keymap BTN_EAST=b,BTN_SOUTH=a,BTN_NORTH=y,BTN_WEST=x,BTN_START=start,BTN_SELECT=back,BTN_TL=lb,BTN_TR=rb,BTN_TL2=lt,BTN_TR2=rt,BTN_THUMBL=tl,BTN_THUMBR=tr \
                                  	--dpad-as-button \
                                  	--trigger-as-button \
                                  	--ui-buttonmap guide=void \
                                  	--ui-axismap x1=REL_X:10,y1=REL_Y:10,x2=void,y2=void \
                                  	--ui-buttonmap back=KEY_5,start=KEY_1,a=KEY_LEFTCTRL,b=KEY_LEFTSHIFT,back+start=KEY_ESC,tl=KEY_ENTER,back+x=KEY_TAB,back+y=KEY_P,du=KEY_UP,dd=KEY_DOWN,dl=KEY_LEFT,dr=KEY_RIGHT \
                                  	&
                                  

                                  The keyboard mappings are working very nicely now that I've finally got this controller done right.

                                  BTW, I did try switching the USB slots just to see, but it made no difference.

                                  mediamogulM 2 Replies Last reply Reply Quote 0
                                  • mediamogulM
                                    mediamogul Global Moderator @Lummox JR
                                    last edited by

                                    @lummox-jr said in Using xboxdrv with mame4all/advmame:

                                    Is there any chance you can show me what your own advmame.rc looks like, and the xboxdrv command you're using to set up the driver? Maybe something will jump out at me. In the meantime here's this:

                                    No problem.

                                    advancemame.rc

                                    debug_rawsound no
                                    debug_speedmark no
                                    device_alsa_device default
                                    device_alsa_mixer channel
                                    device_color_bgr15 yes
                                    device_color_bgr16 yes
                                    device_color_bgr24 yes
                                    device_color_bgr32 yes
                                    device_color_bgr8 yes
                                    device_color_palette8 yes
                                    device_color_yuy2 yes
                                    device_dpi_pclock_low 31250000
                                    device_hdmi_pclock_low 0
                                    device_joystick auto
                                    device_keyboard raw
                                    device_mouse auto
                                    device_raw_firstkeyhack no
                                    device_raw_mousedev[0] auto
                                    device_raw_mousedev[1] auto
                                    device_raw_mousedev[2] auto
                                    device_raw_mousedev[3] auto
                                    device_raw_mousetype[0] pnp
                                    device_raw_mousetype[1] pnp
                                    device_raw_mousetype[2] pnp
                                    device_raw_mousetype[3] pnp
                                    device_sdl_samples 512
                                    device_sound alsa
                                    device_video fb
                                    device_video_cursor off
                                    device_video_doublescan yes
                                    device_video_fastchange no
                                    device_video_interlace yes
                                    device_video_output auto
                                    device_video_overlaysize auto
                                    device_video_singlescan yes
                                    dir_artwork /home/pi/RetroPie/roms/mame-advmame/artwork
                                    dir_diff /home/pi/RetroPie/roms/mame-advmame/diff
                                    dir_hi /home/pi/RetroPie/roms/mame-advmame/hi
                                    dir_image /home/pi/RetroPie/roms/mame-advmame/
                                    dir_inp /home/pi/RetroPie/roms/mame-advmame/inp
                                    dir_memcard /home/pi/RetroPie/roms/mame-advmame/memcard
                                    dir_nvram /home/pi/RetroPie/roms/mame-advmame/nvram
                                    dir_rom /home/pi/RetroPie/roms/mame-advmame:/home/pi/RetroPie/roms/arcade
                                    dir_sample /home/pi/RetroPie/roms/mame-advmame/sample
                                    dir_snap /home/pi/RetroPie/roms/mame-advmame/snap
                                    dir_sta /home/pi/RetroPie/roms/mame-advmame/sta
                                    display_adjust none
                                    display_antialias yes
                                    display_artwork_backdrop yes
                                    display_artwork_bezel no
                                    display_artwork_crop yes
                                    display_artwork_overlay yes
                                    display_aspect auto
                                    display_beam 1.2
                                    display_brightness 1
                                    display_buffer no
                                    display_color auto
                                    display_expand 1
                                    display_flicker 15
                                    display_flipx no
                                    display_flipy no
                                    display_frameskip auto
                                    display_gamma 1
                                    display_intensity 1.5
                                    display_interlaceeffect none
                                    display_magnify 2
                                    display_magnifysize 640
                                    display_mode auto
                                    display_pausebrightness 1
                                    display_resize integer
                                    display_resizeeffect none
                                    display_restore yes
                                    display_rgbeffect none
                                    display_rol no
                                    display_ror no
                                    display_scanlines no
                                    display_skipcolumns auto
                                    display_skiplines auto
                                    display_translucency yes
                                    display_vsync yes
                                    include 
                                    input_hotkey yes
                                    input_idleexit 0
                                    input_map[bill1] 
                                    input_map[coin1] keyboard[0,e]
                                    input_map[coin2] keyboard[0,0]
                                    input_map[coin3] 
                                    input_map[coin4] 
                                    input_map[event10] 
                                    input_map[event11] 
                                    input_map[event12] 
                                    input_map[event13] 
                                    input_map[event14] 
                                    input_map[event1] 
                                    input_map[event2] 
                                    input_map[event3] 
                                    input_map[event4] 
                                    input_map[event5] 
                                    input_map[event6] 
                                    input_map[event7] 
                                    input_map[event8] 
                                    input_map[event9] 
                                    input_map[p1_button10] 
                                    input_map[p1_button1] keyboard[0,b]
                                    input_map[p1_button2] keyboard[0,a]
                                    input_map[p1_button3] keyboard[0,x]
                                    input_map[p1_button4] keyboard[0,y]
                                    input_map[p1_button5] keyboard[0,l]
                                    input_map[p1_button6] keyboard[0,r]
                                    input_map[p1_button7] keyboard[0,d]
                                    input_map[p1_button8] keyboard[0,f]
                                    input_map[p1_button9] 
                                    input_map[p1_dial_down] keyboard[0,up]
                                    input_map[p1_dial_left] keyboard[0,right]
                                    input_map[p1_dial_right] keyboard[0,left]
                                    input_map[p1_dial_up] keyboard[0,down]
                                    input_map[p1_dialx] mouse[0,x] mouse[1,x] mouse[2,x]
                                    input_map[p1_dialy] mouse[0,y] mouse[1,y] mouse[2,y]
                                    input_map[p1_doubleleft_down] keyboard[0,down]
                                    input_map[p1_doubleleft_left] keyboard[0,left]
                                    input_map[p1_doubleleft_right] keyboard[0,right]
                                    input_map[p1_doubleleft_up] keyboard[0,up]
                                    input_map[p1_doubleright_down] keyboard[0,4]
                                    input_map[p1_doubleright_left] keyboard[0,1]
                                    input_map[p1_doubleright_right] keyboard[0,2]
                                    input_map[p1_doubleright_up] keyboard[0,3]
                                    input_map[p1_down] keyboard[0,down]
                                    input_map[p1_left] keyboard[0,left]
                                    input_map[p1_lightgun_down] 
                                    input_map[p1_lightgun_left] 
                                    input_map[p1_lightgun_right] 
                                    input_map[p1_lightgun_up] 
                                    input_map[p1_lightgunx] 
                                    input_map[p1_lightguny] 
                                    input_map[p1_mahjong_a] 
                                    input_map[p1_mahjong_b] 
                                    input_map[p1_mahjong_bet] 
                                    input_map[p1_mahjong_c] 
                                    input_map[p1_mahjong_chance] 
                                    input_map[p1_mahjong_chi] 
                                    input_map[p1_mahjong_d] 
                                    input_map[p1_mahjong_double_up] 
                                    input_map[p1_mahjong_e] 
                                    input_map[p1_mahjong_f] 
                                    input_map[p1_mahjong_flip_flop] 
                                    input_map[p1_mahjong_g] 
                                    input_map[p1_mahjong_h] 
                                    input_map[p1_mahjong_i] 
                                    input_map[p1_mahjong_j] 
                                    input_map[p1_mahjong_k] 
                                    input_map[p1_mahjong_kan] 
                                    input_map[p1_mahjong_l] 
                                    input_map[p1_mahjong_m] 
                                    input_map[p1_mahjong_n] 
                                    input_map[p1_mahjong_pon] 
                                    input_map[p1_mahjong_reach] 
                                    input_map[p1_mahjong_ron] 
                                    input_map[p1_mahjong_score] 
                                    input_map[p1_mouse_down] 
                                    input_map[p1_mouse_left] 
                                    input_map[p1_mouse_right] 
                                    input_map[p1_mouse_up] 
                                    input_map[p1_mousex] 
                                    input_map[p1_mousey] 
                                    input_map[p1_paddle_up] keyboard[0,down]
                                    input_map[p1_paddle_right] keyboard[0,left]
                                    input_map[p1_paddle_left] keyboard[0,right]
                                    input_map[p1_paddle_down] keyboard[0,up]
                                    input_map[p1_paddlex] mouse[0,x] mouse[1,x] mouse[2,x]
                                    input_map[p1_paddley] mouse[0,y] mouse[1,y] mouse[2,y]
                                    input_map[p1_pedalbrake] 
                                    input_map[p1_pedalbrake_release] 
                                    input_map[p1_pedalgas] mouse[0,y] mouse[1,y] mouse[2,y]
                                    input_map[p1_pedalgas_release] 
                                    input_map[p1_pedalother] 
                                    input_map[p1_pedalother_release] 
                                    input_map[p1_right] keyboard[0,right]
                                    input_map[p1_stick_down] keyboard[0,up]
                                    input_map[p1_stick_left] keyboard[0,right]
                                    input_map[p1_stick_right] keyboard[0,left]
                                    input_map[p1_stick_up] keyboard[0,down]
                                    input_map[p1_stickx] mouse[0,x] mouse[1,x] mouse[2,x]
                                    input_map[p1_sticky] mouse[0,y] mouse[1,y] mouse[2,y]
                                    input_map[p1_stickz] 
                                    input_map[p1_trackball_down] keyboard[0,up]
                                    input_map[p1_trackball_left] keyboard[0,right]
                                    input_map[p1_trackball_right] keyboard[0,left]
                                    input_map[p1_trackball_up] keyboard[0,down]
                                    input_map[p1_trackballx] mouse[0,x] mouse[1,x] mouse[2,x]
                                    input_map[p1_trackbally] mouse[0,y] mouse[1,y] mouse[2,y]
                                    input_map[p1_up] keyboard[0,up]
                                    input_map[p2_button10] 
                                    input_map[p2_button1] keyboard[0,m]
                                    input_map[p2_button2] keyboard[0,k]
                                    input_map[p2_button3] keyboard[0,n]
                                    input_map[p2_button4] keyboard[0,o]
                                    input_map[p2_button5] keyboard[0,p]
                                    input_map[p2_button6] keyboard[0,q]
                                    input_map[p2_button7] keyboard[0,s]
                                    input_map[p2_button8] keyboard[0,u]
                                    input_map[p2_button9] 
                                    input_map[p2_dial_up] keyboard[0,j]
                                    input_map[p2_dial_right] keyboard[0,g]
                                    input_map[p2_dial_left] keyboard[0,h]
                                    input_map[p2_dial_down] keyboard[0,i]
                                    input_map[p2_dialx] 
                                    input_map[p2_dialy] 
                                    input_map[p2_down] keyboard[0,j]
                                    input_map[p2_left] keyboard[0,g]
                                    input_map[p2_lightgun_down] 
                                    input_map[p2_lightgun_left] 
                                    input_map[p2_lightgun_right] 
                                    input_map[p2_lightgun_up] 
                                    input_map[p2_lightgunx] 
                                    input_map[p2_lightguny] 
                                    input_map[p2_mouse_down] 
                                    input_map[p2_mouse_left] 
                                    input_map[p2_mouse_right] 
                                    input_map[p2_mouse_up] 
                                    input_map[p2_mousex] 
                                    input_map[p2_mousey] 
                                    input_map[p2_paddle_up] keyboard[0,j]
                                    input_map[p2_paddle_right] keyboard[0,g]
                                    input_map[p2_paddle_left] keyboard[0,h]
                                    input_map[p2_paddle_down] keyboard[0,i]
                                    input_map[p2_paddlex] 
                                    input_map[p2_paddley] 
                                    input_map[p2_pedalbrake] 
                                    input_map[p2_pedalbrake_release] 
                                    input_map[p2_pedalgas] 
                                    input_map[p2_pedalgas_release] 
                                    input_map[p2_pedalother] 
                                    input_map[p2_pedalother_release] 
                                    input_map[p2_right] keyboard[0,h]
                                    input_map[p2_stick_down] 
                                    input_map[p2_stick_left] 
                                    input_map[p2_stick_right] 
                                    input_map[p2_stick_up] 
                                    input_map[p2_stickx] 
                                    input_map[p2_sticky] 
                                    input_map[p2_stickz] 
                                    input_map[p2_trackball_down] 
                                    input_map[p2_trackball_left] 
                                    input_map[p2_trackball_right] 
                                    input_map[p2_trackball_up] 
                                    input_map[p2_trackballx] 
                                    input_map[p2_trackbally] 
                                    input_map[p2_up] keyboard[0,i]
                                    input_map[p3_button10] 
                                    input_map[p3_button1] 
                                    input_map[p3_button2] 
                                    input_map[p3_button3] 
                                    input_map[p3_button4] 
                                    input_map[p3_button5] 
                                    input_map[p3_button6] 
                                    input_map[p3_button7] 
                                    input_map[p3_button8] 
                                    input_map[p3_button9] 
                                    input_map[p3_dial_down] 
                                    input_map[p3_dial_left] 
                                    input_map[p3_dial_right] 
                                    input_map[p3_dial_up] 
                                    input_map[p3_dialx] 
                                    input_map[p3_dialy] 
                                    input_map[p3_down] 
                                    input_map[p3_left] 
                                    input_map[p3_lightgun_down] 
                                    input_map[p3_lightgun_left] 
                                    input_map[p3_lightgun_right] 
                                    input_map[p3_lightgun_up] 
                                    input_map[p3_lightgunx] 
                                    input_map[p3_lightguny] 
                                    input_map[p3_mahjong_a] 
                                    input_map[p3_mahjong_b] 
                                    input_map[p3_mahjong_bet] 
                                    input_map[p3_mahjong_c] 
                                    input_map[p3_mahjong_chance] 
                                    input_map[p3_mahjong_chi] 
                                    input_map[p3_mahjong_d] 
                                    input_map[p3_mahjong_double_up] 
                                    input_map[p3_mahjong_e] 
                                    input_map[p3_mahjong_f] 
                                    input_map[p3_mahjong_flip_flop] 
                                    input_map[p3_mahjong_g] 
                                    input_map[p3_mahjong_h] 
                                    input_map[p3_mahjong_i] 
                                    input_map[p3_mahjong_j] 
                                    input_map[p3_mahjong_k] 
                                    input_map[p3_mahjong_kan] 
                                    input_map[p3_mahjong_l] 
                                    input_map[p3_mahjong_m] 
                                    input_map[p3_mahjong_n] 
                                    input_map[p3_mahjong_pon] 
                                    input_map[p3_mahjong_reach] 
                                    input_map[p3_mahjong_ron] 
                                    input_map[p3_mahjong_score] 
                                    input_map[p3_mouse_down] 
                                    input_map[p3_mouse_left] 
                                    input_map[p3_mouse_right] 
                                    input_map[p3_mouse_up] 
                                    input_map[p3_mousex] 
                                    input_map[p3_mousey] 
                                    input_map[p3_paddle_down] 
                                    input_map[p3_paddle_left] 
                                    input_map[p3_paddle_right] 
                                    input_map[p3_paddle_up] 
                                    input_map[p3_paddlex] 
                                    input_map[p3_paddley] 
                                    input_map[p3_pedalbrake] 
                                    input_map[p3_pedalbrake_release] 
                                    input_map[p3_pedalgas] 
                                    input_map[p3_pedalgas_release] 
                                    input_map[p3_pedalother] 
                                    input_map[p3_pedalother_release] 
                                    input_map[p3_right] 
                                    input_map[p3_stick_down] 
                                    input_map[p3_stick_left] 
                                    input_map[p3_stick_right] 
                                    input_map[p3_stick_up] 
                                    input_map[p3_stickx] 
                                    input_map[p3_sticky] 
                                    input_map[p3_stickz] 
                                    input_map[p3_trackball_down] 
                                    input_map[p3_trackball_left] 
                                    input_map[p3_trackball_right] 
                                    input_map[p3_trackball_up] 
                                    input_map[p3_trackballx] 
                                    input_map[p3_trackbally] 
                                    input_map[p3_up] 
                                    input_map[p4_button10] 
                                    input_map[p4_button1] 
                                    input_map[p4_button2] 
                                    input_map[p4_button3] 
                                    input_map[p4_button4] 
                                    input_map[p4_button5] 
                                    input_map[p4_button6] 
                                    input_map[p4_button7] 
                                    input_map[p4_button8] 
                                    input_map[p4_button9] 
                                    input_map[p4_dial_down] 
                                    input_map[p4_dial_left] 
                                    input_map[p4_dial_right] 
                                    input_map[p4_dial_up] 
                                    input_map[p4_dialx] 
                                    input_map[p4_dialy] 
                                    input_map[p4_down] 
                                    input_map[p4_left] 
                                    input_map[p4_lightgun_down] 
                                    input_map[p4_lightgun_left] 
                                    input_map[p4_lightgun_right] 
                                    input_map[p4_lightgun_up] 
                                    input_map[p4_lightgunx] 
                                    input_map[p4_lightguny] 
                                    input_map[p4_mahjong_a] 
                                    input_map[p4_mahjong_b] 
                                    input_map[p4_mahjong_bet] 
                                    input_map[p4_mahjong_c] 
                                    input_map[p4_mahjong_chance] 
                                    input_map[p4_mahjong_chi] 
                                    input_map[p4_mahjong_d] 
                                    input_map[p4_mahjong_double_up] 
                                    input_map[p4_mahjong_e] 
                                    input_map[p4_mahjong_f] 
                                    input_map[p4_mahjong_flip_flop] 
                                    input_map[p4_mahjong_g] 
                                    input_map[p4_mahjong_h] 
                                    input_map[p4_mahjong_i] 
                                    input_map[p4_mahjong_j] 
                                    input_map[p4_mahjong_k] 
                                    input_map[p4_mahjong_kan] 
                                    input_map[p4_mahjong_l] 
                                    input_map[p4_mahjong_m] 
                                    input_map[p4_mahjong_n] 
                                    input_map[p4_mahjong_pon] 
                                    input_map[p4_mahjong_reach] 
                                    input_map[p4_mahjong_ron] 
                                    input_map[p4_mahjong_score] 
                                    input_map[p4_mouse_down] 
                                    input_map[p4_mouse_left] 
                                    input_map[p4_mouse_right] 
                                    input_map[p4_mouse_up] 
                                    input_map[p4_mousex] 
                                    input_map[p4_mousey] 
                                    input_map[p4_paddle_down] 
                                    input_map[p4_paddle_left] 
                                    input_map[p4_paddle_right] 
                                    input_map[p4_paddle_up] 
                                    input_map[p4_paddlex] 
                                    input_map[p4_paddley] 
                                    input_map[p4_pedalbrake] 
                                    input_map[p4_pedalbrake_release] 
                                    input_map[p4_pedalgas] 
                                    input_map[p4_pedalgas_release] 
                                    input_map[p4_pedalother] 
                                    input_map[p4_pedalother_release] 
                                    input_map[p4_right] 
                                    input_map[p4_stick_down] 
                                    input_map[p4_stick_left] 
                                    input_map[p4_stick_right] 
                                    input_map[p4_stick_up] 
                                    input_map[p4_stickx] 
                                    input_map[p4_sticky] 
                                    input_map[p4_stickz] 
                                    input_map[p4_trackball_down] 
                                    input_map[p4_trackball_left] 
                                    input_map[p4_trackball_right] 
                                    input_map[p4_trackball_up] 
                                    input_map[p4_trackballx] 
                                    input_map[p4_trackbally] 
                                    input_map[p4_up] 
                                    input_map[safequit] 
                                    input_map[service] 
                                    input_map[service_coin1] 
                                    input_map[service_coin2] 
                                    input_map[service_coin3] 
                                    input_map[service_coin4] 
                                    input_map[service_coin5] 
                                    input_map[service_coin6] 
                                    input_map[service_coin7] 
                                    input_map[service_coin8] 
                                    input_map[start1] keyboard[0,t]
                                    input_map[start2] keyboard[0,9]
                                    input_map[start3] 
                                    input_map[start4] 
                                    input_map[tilt] 
                                    input_map[ui_add_cheat] 
                                    input_map[ui_cancel] keyboard[0,esc] or keyboard[0,e] keyboard[0,t]
                                    input_map[ui_cocktail] 
                                    input_map[ui_configure] keyboard[0,tab] or keyboard[0,e] keyboard[0,x]
                                    input_map[ui_delete_cheat] 
                                    input_map[ui_down] keyboard[0,down]
                                    input_map[ui_edit_cheat] 
                                    input_map[ui_end] 
                                    input_map[ui_frameskip_dec] 
                                    input_map[ui_frameskip_inc] 
                                    input_map[ui_help] 
                                    input_map[ui_home] 
                                    input_map[ui_left] keyboard[0,left]
                                    input_map[ui_load_state] keyboard[0,e] keyboard[0,l]
                                    input_map[ui_mode_next] 
                                    input_map[ui_mode_pred] 
                                    input_map[ui_on_screen_display] 
                                    input_map[ui_pan_down] 
                                    input_map[ui_pan_left] 
                                    input_map[ui_pan_right] 
                                    input_map[ui_pan_up] 
                                    input_map[ui_pause] keyboard[0,e] keyboard[0,a]
                                    input_map[ui_record_start] 
                                    input_map[ui_record_stop] 
                                    input_map[ui_reset_machine] keyboard[0,e] keyboard[0,b]
                                    input_map[ui_right] keyboard[0,right]
                                    input_map[ui_save_cheat] 
                                    input_map[ui_save_state] keyboard[0,e] keyboard[0,r]
                                    input_map[ui_select] keyboard[0,enter] or keyboard[0,a]
                                    input_map[ui_show_fps] 
                                    input_map[ui_show_gfx] 
                                    input_map[ui_show_profiler] 
                                    input_map[ui_snapshot] keyboard[0,e] keyboard[0,y]
                                    input_map[ui_soft_reset] 
                                    input_map[ui_startup] 
                                    input_map[ui_throttle] 
                                    input_map[ui_toggle_cheat] 
                                    input_map[ui_toggle_crosshair] 
                                    input_map[ui_toggle_debug] 
                                    input_map[ui_toggle_ui] 
                                    input_map[ui_turbo] 
                                    input_map[ui_up] keyboard[0,up]
                                    input_map[ui_watch_value] 
                                    input_map[volume_down] 
                                    input_map[volume_up] 
                                    input_steadykey no
                                    lcd_server none
                                    lcd_speed 4
                                    lcd_timeout 500
                                    misc_bios default
                                    misc_cheat no
                                    misc_cheatfile cheat.dat
                                    misc_difficulty none
                                    misc_eventdebug no
                                    misc_eventfile event.dat
                                    misc_freeplay no
                                    misc_hiscorefile hiscore.dat
                                    misc_lang none
                                    misc_languagefile english.lng
                                    misc_mutedemo no
                                    misc_quiet yes
                                    misc_safequit no
                                    misc_smp yes
                                    misc_timetorun 0
                                    record_sound yes
                                    record_sound_time 15
                                    record_video yes
                                    record_video_interleave 2
                                    record_video_time 15
                                    script_coin1 
                                    script_coin2 
                                    script_coin3 
                                    script_coin4 
                                    script_emulation 
                                    script_event1 
                                    script_event10 
                                    script_event11 
                                    script_event12 
                                    script_event13 
                                    script_event14 
                                    script_event2 
                                    script_event3 
                                    script_event4 
                                    script_event5 
                                    script_event6 
                                    script_event7 
                                    script_event8 
                                    script_event9 
                                    script_knocker on(kdb, 0b100); wait(!event()); off(kdb, 0b100);
                                    script_led1 on(kdb, 0b1); wait(!event()); off(kdb, 0b1);
                                    script_led2 on(kdb, 0b10); wait(!event()); off(kdb, 0b10);
                                    script_led3 
                                    script_play 
                                    script_safequit 
                                    script_start1 
                                    script_start2 
                                    script_start3 
                                    script_start4 
                                    script_turbo while (event()) { toggle(kdb, 0b100); delay(100); } off(kdb, 0b100);
                                    script_video wait(!event()); set(kdb, 0);
                                    sound_adjust auto
                                    sound_equalizer_highvolume 0
                                    sound_equalizer_lowvolume 0
                                    sound_equalizer_midvolume 0
                                    sound_latency 0.15
                                    sound_mode auto
                                    sound_normalize no
                                    sound_samplerate 22050
                                    sound_samples yes
                                    sound_volume -3
                                    sync_fps auto
                                    sync_resample internal
                                    sync_speed 1
                                    sync_startuptime auto
                                    sync_turbospeed 3
                                    ui_color[help_other] 000000 808080
                                    ui_color[help_p1] 000000 ffff00
                                    ui_color[help_p2] 000000 00ff00
                                    ui_color[help_p3] 000000 ff0000
                                    ui_color[help_p4] 000000 00ffff
                                    ui_color[interface] 000000 ffffff
                                    ui_color[select] 000000 afffff
                                    ui_color[tag] 247ef0 ffffff
                                    ui_font auto
                                    ui_fontsize auto
                                    ui_helpimage auto
                                    ui_translucency 0.8
                                    cloak/input_map[p1_button1] keyboard[0,r]
                                    stunrun/sync_resample emulation
                                    dotrone/input_setting[p1_dialx] keydelta:10,centerdelta:10,sensitivity:13,reverse:1
                                    dotrone/input_setting[p1_trackbally] keydelta:10,centerdelta:10,sensitivity:25,reverse:0
                                    dotrone/input_map[p1_button1] keyboard[0,r]
                                    dotrone/input_map[p1_button2] keyboard[0,l]
                                    dotrone/input_map[p1_button3] keyboard[0,4]
                                    dotrone/input_map[p1_button4] keyboard[0,3]
                                    dotrone/input_map[p1_dial_left] 
                                    dotrone/input_map[p1_dial_right] 
                                    tron/input_map[p1_button1] keyboard[0,r]
                                    tron/input_map[p1_dial_left] 
                                    tron/input_map[p1_dial_right] 
                                    tron/input_setting[p1_dialx] keydelta:10,centerdelta:10,sensitivity:18,reverse:1
                                    tron/input_map[p2_button1] keyboard[0,q]
                                    tron/input_map[p2_dial_left] 
                                    tron/input_map[p2_dial_right] 
                                    tron/input_setting[p2_dialx] keydelta:10,centerdelta:10,sensitivity:18,reverse:1
                                    spyhunt/input_setting[p1_pedalgas] keydelta:10,centerdelta:10,sensitivity:25,reverse:0
                                    spyhunt/input_setting[p1_paddlex] keydelta:38,centerdelta:100,sensitivity:15,reverse:0
                                    starwars/input_setting[p1_stickx] keydelta:30,centerdelta:30,sensitivity:30,reverse:0
                                    starwars/input_setting[p1_sticky] keydelta:30,centerdelta:30,sensitivity:30,reverse:0
                                    roadblst/input_setting[p1_pedalgas] keydelta:64,centerdelta:64,sensitivity:50,reverse:0
                                    roadblst/input_setting[p1_dialx] keydelta:10,centerdelta:100,sensitivity:10,reverse:1
                                    roadblst/input_map[p1_button3] keyboard[0,a]
                                    roadblst/input_map[p1_button2] keyboard[0,b]
                                    paperboy/input_setting[p1_stickx] keydelta:10,centerdelta:25,sensitivity:25,reverse:0
                                    paperboy/input_setting[p1_sticky] keydelta:10,centerdelta:25,sensitivity:25,reverse:0
                                    spyhunt/input_map[p1_button6] keyboard[0,l]
                                    spyhunt/input_map[p1_button4] keyboard[0,a]
                                    spyhunt/input_map[p1_button5] keyboard[0,y]
                                    spyhunt/input_map[p1_button3] keyboard[0,r]
                                    spyhunt/input_map[p1_button2] keyboard[0,x]
                                    ddragonu/input_map[p1_button1] keyboard[0,y]
                                    ddragonu/input_map[p1_button2] keyboard[0,b]
                                    ddragonu/input_map[p1_button3] keyboard[0,a]
                                    ddragn2u/input_map[p1_button1] keyboard[0,y]
                                    ddragn2u/input_map[p1_button2] keyboard[0,b]
                                    ddragn2u/input_map[p1_button3] keyboard[0,a]
                                    stargate/input_map[p1_button2] keyboard[0,l]
                                    stargate/input_map[p1_button3] keyboard[0,a]
                                    stargate/input_map[p1_button4] keyboard[0,r]
                                    defender/display_expand 1.01
                                    defender/input_map[p1_button2] keyboard[0,r]
                                    defender/input_map[p1_button3] keyboard[0,a]
                                    stargate/input_map[p1_button6] keyboard[0,y]
                                    stargate/input_map[p1_button5] keyboard[0,x]
                                    bzone/input_map[p1_button3] keyboard[0,l] or keyboard[0,r]
                                    tempest/input_setting[p1_dialx] keydelta:20,centerdelta:20,sensitivity:25,reverse:1
                                    eprom/input_map[p1_button3] keyboard[0,r]
                                    rampage/input_map[p1_up] 
                                    rampage/input_map[p1_right] 
                                    rampage/input_map[p1_down] 
                                    rampage/input_map[p1_left] 
                                    rampage/input_map[p1_button1] 
                                    rampage/input_map[p1_button2] 
                                    rampage/input_map[p3_up] keyboard[0,up]
                                    rampage/input_map[p3_right] keyboard[0,right]
                                    rampage/input_map[p3_down] keyboard[0,down]
                                    rampage/input_map[p3_left] keyboard[0,left]
                                    rampage/input_map[p3_button1] keyboard[0,b]
                                    rampage/input_map[p3_button2] keyboard[0,a]
                                    input_map[p2_doubleright_up] keyboard[0,7]
                                    input_map[p2_doubleright_down] keyboard[0,8]
                                    input_map[p2_doubleright_left] keyboard[0,5]
                                    input_map[p2_doubleright_right] keyboard[0,6]
                                    input_map[p2_doubleleft_up] keyboard[0,i]
                                    input_map[p2_doubleleft_down] keyboard[0,j]
                                    input_map[p2_doubleleft_left] keyboard[0,g]
                                    input_map[p2_doubleleft_right] keyboard[0,h]
                                    poleposa/input_setting[p1_dialx] keydelta:4,centerdelta:4,sensitivity:5,reverse:0
                                    poleps2a/input_setting[p1_dialx] keydelta:4,centerdelta:4,sensitivity:5,reverse:0
                                    offroadt/input_setting[p1_dialx] keydelta:10,centerdelta:10,sensitivity:18,reverse:0
                                    poleps2a/input_map[p1_button1] keyboard[0,r]
                                    hydra/input_setting[p1_stickx] keydelta:10,centerdelta:10,sensitivity:25,reverse:0
                                    sbrkout/input_setting[p1_paddlex] keydelta:10,centerdelta:0,sensitivity:25,reverse:1
                                    gwar/input_setting[p1_dialx] keydelta:1,centerdelta:10,sensitivity:13,reverse:0
                                    gwar/input_map[p1_dial_left] keyboard[0,2]
                                    gwar/input_map[p1_dial_right] keyboard[0,1]
                                    gwar/input_map[p1_button1] keyboard[0,r]
                                    gwar/input_map[p1_button2] keyboard[0,l]
                                    gunsmoku/input_map[p1_button1] keyboard[0,y]
                                    gunsmoku/input_map[p1_button2] keyboard[0,b]
                                    gunsmoku/input_map[p1_button3] keyboard[0,a]
                                    robocp2u/input_map[p1_button1] keyboard[0,y]
                                    robocp2u/input_map[p1_button3] keyboard[0,b]
                                    avalnche/input_setting[p1_paddlex] keydelta:10,centerdelta:0,sensitivity:38,reverse:0
                                    profpac/input_map[p1_button1] keyboard[0,y]
                                    profpac/input_map[p1_button2] keyboard[0,b]
                                    profpac/input_map[p1_button3] keyboard[0,a]
                                    apb/input_map[p1_button2] keyboard[0,b]
                                    apb/input_map[p1_button3] keyboard[0,r]
                                    apb/input_setting[p1_pedalgas] keydelta:4,centerdelta:4,sensitivity:25,reverse:0
                                    esb/input_setting[p1_sticky] keydelta:30,centerdelta:30,sensitivity:50,reverse:0
                                    tailg/input_setting[p1_stickx] keydelta:50,centerdelta:50,sensitivity:50,reverse:0
                                    tailg/input_setting[p1_sticky] keydelta:50,centerdelta:50,sensitivity:50,reverse:0
                                    marble/input_setting[p1_trackballx] keydelta:30,centerdelta:30,sensitivity:45,reverse:1
                                    marble/input_setting[p1_trackbally] keydelta:30,centerdelta:30,sensitivity:45,reverse:0
                                    roadrunn/input_setting[p1_sticky] keydelta:10,centerdelta:25,sensitivity:38,reverse:0
                                    roadrunn/input_setting[p1_stickx] keydelta:10,centerdelta:25,sensitivity:38,reverse:1
                                    mshu/input_map[p1_button1] keyboard[0,y]
                                    mshu/input_map[p1_button2] keyboard[0,x]
                                    mshu/input_map[p1_button3] keyboard[0,l]
                                    mshu/input_map[p1_button4] keyboard[0,b]
                                    mshu/input_map[p1_button5] keyboard[0,a]
                                    cppicf/sync_startuptime 160
                                    cppicf2/sync_startuptime 160
                                    inferno/input_map[p1_button1] keyboard[0,r]
                                    

                                    xboxdrv command

                                    sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
                                      --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.2.1:1.0-event-joystick \
                                      --detach-kernel-driver \
                                      --force-feedback \
                                      --dpad-as-button \
                                      --trigger-as-button \
                                      --deadzone-trigger 15% \
                                      --deadzone 4000 \
                                      --device-name "Logitech Rumblepad 2 (xboxdrv)" \
                                      --silent \
                                      --axis-sensitivity X1=-0.00,Y1=-0.00,X2=-0.00,Y2=-0.00 \
                                      --axismap -Y1=Y1,-Y2=Y2 \
                                      --buttonmap tl^toggle=tl \
                                      --buttonmap tr^toggle=tr \
                                      --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_Z=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \
                                      --evdev-keymap BTN_THUMB2=a,BTN_THUMB=b,BTN_TOP=x,BTN_TRIGGER=y,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr,BTN_BASE=lt,BTN_BASE2=rt \
                                      --ui-axismap tl+x1=REL_X:15,tl+y1=REL_Y:15,X1=KEY_LEFT:KEY_RIGHT,Y1=KEY_UP:KEY_DOWN,X2=KEY_1:KEY_2,Y2=KEY_3:KEY_4 \
                                      --ui-buttonmap tr+b=BTN_LEFT,tr+a=BTN_RIGHT,a=KEY_A,b=KEY_B,x=KEY_X,y=KEY_Y,lb=KEY_L,rb=KEY_R,lt=KEY_D,rt=KEY_F,tl=KEY_RESERVED,tr=KEY_RESERVED,du=KEY_UP,dd=KEY_DOWN,dl=KEY_LEFT,dr=KEY_RIGHT,start=KEY_T,back=KEY_E \
                                      --ui-buttonmap guide=void \
                                      &
                                    

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

                                    L 1 Reply Last reply Reply Quote 0
                                    • mediamogulM
                                      mediamogul Global Moderator @Lummox JR
                                      last edited by

                                      @lummox-jr

                                      It should be noted that my map uses a toggle so that the left thumbstick is key-mapped to behave like the DPad until it's depressed, at which time it gains mouse functionality.

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

                                      1 Reply Last reply Reply Quote 0
                                      • L
                                        Lummox JR @mediamogul
                                        last edited by

                                        @mediamogul I noticed there are some settings in your advancemame.rc that don't appear in mine at all. E.g. the dial directions (down, left, right, up) and doubleleft, doubleright. The pedal options have "release" versions that don't appear in my file either. Is it possible we're using different advancemame versions? I'm using AdvanceMAME 3.

                                        I can't see any difference between us as far as the device section. And do you have no mouse (normally) in use, like me? If you run the advm command does it say no mice were found? I'm curious if maybe that's the difference, that it's seeing a device on your system that isn't on mine.

                                        My xboxdrv command has no --device-name option but I assume that's not important. Otherwise it looks pretty similar, except that I haven't mapped the analog sticks to keys. (I could, but I'm hoping I can attain finer control via the mouse.)

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

                                          @lummox-jr said in Using xboxdrv with mame4all/advmame:

                                          Is it possible we're using different advancemame versions? I'm using AdvanceMAME 3.

                                          I'm using the latest version of 3.x, which is currently 3.8.

                                          do you have no mouse (normally) in use, like me? If you run the advm command does it say no mice were found?

                                          I have a standard mouse attached as well and I don't get the error message.

                                          My xboxdrv command has no --device-name option but I assume that's not important.

                                          That shouldn't matter, no.

                                          I haven't mapped the analog sticks to keys. (I could, but I'm hoping I can attain finer control via the mouse.)

                                          This likely isn't the source of you problem either, but something to keep in mind is that you'll only get finer movement by mapping mouse movement to an analog stick on games that support it. In all other games, the stick will be ignored. That's why I have it on a toggle. For games that use 4/8-way directional input, the stick is key-mapped, but when toggled, mouse movement is enabled for games that support an analog range like trackball games and the like.

                                          Your problem hasn't left my mind and I'm still thinking on it. Later this evening I'll read back over the thread to see if we've missed anything.

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

                                          L 1 Reply Last reply Reply Quote 0
                                          • L
                                            Lummox JR @mediamogul
                                            last edited by

                                            @mediamogul said in Using xboxdrv with mame4all/advmame:

                                            do you have no mouse (normally) in use, like me? If you run the advm command does it say no mice were found?

                                            I have a standard mouse attached as well and I don't get the error message.

                                            I thought that might be the smoking gun, so I just tried attaching a mouse. That didn't make a difference in advmame itself, although advm did see the mouse. When I tried it with the xboxdrv command in place, the mouse output from the driver doesn't show up in advm either.

                                            For completeness' sake, I also did a test with the keyboard unplugged to see if xboxdrv key output worked, which it did. That's good, since once the system is in my living room I don't intend to have a keyboard in use most of the time.

                                            Annoyingly advmame (I believe I'm also using 3.8) is somewhat crashy with this Star Wars rom set, so I might try going back to mame4all to see if that behaves any better. Same problem remains though: neither one sees the xboxdrv mouse output, and now I know that's true even when a real mouse is attached.

                                            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.