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 6.6k 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.
    • 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
                • mediamogulM
                  mediamogul Global Moderator @Lummox JR
                  last edited by

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

                  Annoyingly advmame (I believe I'm also using 3.8) is somewhat crashy with this Star Wars rom

                  That could be a red flag right there. I play 'Star Wars' pretty frequently and I've never known it to crash. Afterwards, does it report any issues to /dev/shm/runcommand.log?

                  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 Unfortunately the log gets erased with every new play, and at the moment I'm unable to reproduce any crashes/errors at all. Very weird.

                    I still can't figure out why the mouse output won't work though. Everything in my setup says it should.

                    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:

                      I still can't figure out why the mouse output won't work though. Everything in my setup says it should.

                      I've looked back over everything and it's a mystery to me as well. My only guess is that something has been missed in transcribing the settings and logs here verses copying and pasting. One very important step we skipped with you is to gather your system info. In most cases, that can open up some possibilities. The required information is detailed at https://retropie.org.uk/forum/topic/3/read-this-first

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

                        @lummox-jr Can you confirm that the keyboard mapping does work properly in Star Wars with advancemame? It sounds like it does, from your more recent comments.

                        One thing about mapping the keyboard with xboxdrv is that you can't really go wrong with it. Once you've tied the joystick direction or button to the right key, that's the end of it. It'll just work.

                        However, I'm wondering whether the mouse mapping really operates in the same way. When in doubt, try the "shotgun" approach. Theadvmame.rcallows up to 8 players (at least mine has 8), so perhaps replicate Player 1's input maps for each player eg in my case:

                        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]
                        
                        input_map[p2_mousex] mouse[0,x] mouse[1,x] mouse[2,x] mouse[3,x]
                        input_map[p2_mousey] mouse[0,y] mouse[1,y] mouse[2,y] mouse[3,y]
                        

                        And so forth for all 8 players and then test. It can't do any harm to try this anyway, given that nothing else has worked so far.

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

                          @mediamogul Here's my system info:

                          Raspberry Pi model 3 B+
                          Power supply: 5V 2.5A
                          RetroPie version: 4.4.2
                          Built from: image pre-installed on SD card, but updated from binaries via RetroPie-Setup script
                          USB devices connected: Keyboard, controllers (currently just 1), rarely mouse (not currently connected, but tested with this setup)
                          Controller used: Generic 2-analog-stick game controller with D-pad. For general use, I use basic SNES-style controllers that have no analog or triggers.
                          Error messages received: None.
                          Guide used: https://github.com/RetroPie/RetroPie-Setup/wiki/Universal-Controller-Calibration-&-Mapping-Using-xboxdrv
                          File: /home/pi/RetroPie/roms/arcade/starwars.zip
                          Emulator: mame4all, advmame

                          I have been periodically updating RetroPie and other core packages via the setup script. This system is quite new; I'm not sure if it came with 4.4.2 or if that was an update. I had to install advmame as an optional package (also installed advmame 0.94 and 1.4. just to try it).

                          There is one thing I feel I should mention that occurs frequently with the controller I'm currently testing. Often (possibly always), the first time I boot up and try to run Star Wars, xboxdrv fails with a message about calling a pure virtual method, none of the keyboard output works, and then when I come back to emulationstation the joystick is no longer operating. If I exit ES, I check /dev/input or evtest and find the gamepad is no longer listed. If I unplug it and plug it back in, everything works normally again and does not recur the entire time the system is running. I don't believe this ever happened with the SNES-style retropad, only with the generic one I'm trying to configure that has the analog sticks.

                          The error message happens before the runcommand delay box appears, and also the message says it's happening within rc.local. The default xboxdrv line is in the /etc/rc.local file, and I hadn't touched it. (I am not calling that command again in runcommand-onend when restoring the devices to normal. It doesn't seem to be an issue.) Removing it does not seem to cause any problems and when I tried that again just now, I didn't get the error when I started Star Wars.

                          However I did get a crash in advmame when I forgot and pressed start instead of the fire button.

                          Double signals, 11 and 11
                          Signal SIGSEGV[MAPPER], fault at 0x73e15050, from code at (nil)
                          Compiled Jul  1 2018, 19:04:38
                          

                          I couldn't cause crashes to occur on subsequent runs in the same boot session.

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

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

                            Built from: image pre-installed on SD card, but updated from binaries via RetroPie-Setup script

                            This is another potential explanation for your issues. Pre-built systems by third parties very often have inexplicable problems that can't be accounted for. What's more, they're also impossible to troubleshoot, as there is no way of knowing what all has been altered. Because of this, we have a strict policy against offering support for these third party setups here.

                            At this point, the only suggestion I can make to move forward is to reinstall RetroPie using the official image. I would also recommend re-configuring your network to allow a direct connection to your Pi so that you can troubleshoot these types of issues more effectively. I had to rework my entire network configuration about two weeks ago, so I know it's a pain. However, as it stands, you're working at a huge disadvantage by not being able to fully relay the exact contents of these configuration files and error logs.

                            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:

                              At this point, the only suggestion I can make to move forward is to reinstall RetroPie using the official image. I would also recommend re-configuring your network to allow a direct connection to your Pi so that you can troubleshoot these types of issues more effectively. I had to rework my entire network configuration about two weeks ago, so I know it's a pain. However, as it stands, you're working at a huge disadvantage by not being able to fully relay the exact contents of these configuration files and error logs.

                              Yeah, redoing my network is something I'd like to do at some point anyway to simplify working with some things, but it's not something I'm prepared to do right away. Nor is re-flashing the SD card, although I recognize that would simplify a few things. (I'd have to save some of the info I've already setup, like my onstart/onend scripts, but that's okay.) I may have to go forward with the system as it is now and look into getting the rest of this working at a later date.

                              1 Reply Last reply Reply Quote 1
                              • I
                                icebear81
                                last edited by

                                Was there any resolution to this? I just got a GRS Yoke and the DEADZONE is killing any usability of this.

                                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.