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

Mame DEADZONE with Analog Controller

Scheduled Pinned Locked Moved Help and Support
deadzonemamestar wars yokexboxdrv
33 Posts 5 Posters 4.5k 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.
  • I
    icebear81
    last edited by icebear81 29 Nov 2020, 23:34

    Ive scoured the google this afternoon, and havent found a solution. Im hoping I am being really silly and overlooking something.

    I recently got the GRS USB Yoke. It is detected perfectly, but it appears that Mame has a very nasty dead zone which makes it pretty much unusable for Star Wars. The cursor basically goes from 0 to 100% immediately as Mame just ignores every thing through the deadzone.

    Tried on: Advance Mame, Mame2010, and Mame2003

    I found the below topic [1] that seemed similar, but tracing through it I had no luck either.

    The steps I have attempted up to now:

    • Following the steps in the Universal Analog Calibration [2] I added the joystick as a xboxdrv. The issue from there, Mame just still seems to want to use the original device, or at least it seems. Regardless deadzone persists
    sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
        --evdev /dev/input/by-id/usb-Baolian_industry_Co.__Ltd._BL_flight_yoke_#1_8D6D17A65548-event-joystick \
        --silent \
        --detach-kernel-driver \
        --force-feedback \
        --deadzone-trigger 1% \
        --deadzone 1% \
        --mimic-xpad \
        --evdev-absmap ABS_X=x1,ABS_Y=y1 \
        --evdev-keymap BTN_TRIGGER=a,BTN_THUMB=b,BTN_THUMB2=x,BTN_TOP=y \
        --ui-axismap x2=void,y2=void,lt=void,rt=void \
        --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,back=void,start=void \
        & 
    
    • I then found an article stating that if you remove the read permissions from the original device, that it should use the xboxdrv. I confirmed that before I add the xboxdrv, the original device is no longer detected in Mame (good). After adding the xboxdrv back in, same results. deadzone persists.
    sudo chmod g-rw /dev/input/js1
    sudo chmod g-rw /dev/input/event2

    Any ideas? Maybe I just completely overlooked the how to disable/config deadzone directly in any of the Mames. Every reference to it indicated that in Windows/mame.ini there is a setting. I could not find that same reference to RetroPie. Is there something Im doing with the xboxdrv that is not allowing it to honor the reduced deadzone?

    Any help is appreciated. Just want to slay some tie fighters today -- but wound up in rabbit holes. Thanks - Ice

    [1] https://retropie.org.uk/forum/topic/18704/using-xboxdrv-with-mame4all-advmame?loggedin=true
    [2] https://retropie.org.uk/docs/Universal-Controller-Calibration-%26-Mapping-Using-xboxdrv/

    M 1 Reply Last reply 30 Nov 2020, 00:12 Reply Quote 0
    • M
      mahoneyt944 @icebear81
      last edited by mahoneyt944 30 Nov 2020, 00:12

      @icebear81 mame2003 doesn't support true analog. I would recommend using mame2003-plus then you can adjust the deadzone in the core options in retroarch. Then under the mame menu -> analog controls (menu within the emulator), you can adjust the sensitivity per game. Make sure the game is set to use the controller you wish . You set this under "input this game"

      I 1 Reply Last reply 30 Nov 2020, 00:54 Reply Quote 0
      • I
        icebear81
        last edited by 30 Nov 2020, 00:23

        @mahoneyt944 said in Mame DEADZONE with Analog Controller:

        mame2003-plus

        Nice -- just found mame2003-plus under experimental. Working on the install now. This is exciting!

        1 Reply Last reply Reply Quote 0
        • I
          icebear81 @mahoneyt944
          last edited by 30 Nov 2020, 00:54

          @mahoneyt944 Thanks for the help. Installed Mame2003-plus. From the game, I went into Retroarch QuickMenu and adjusted the deadzone from 20 -> 5.

          From there I tried Star Wars without the xboxdrv .. target still goes from center to edge in one quick jump. I then added the device as a xboxdrv (below). Going back to Star Wars, the original controller was no longer registered - this is good, as prior, this was never the case.

          I configured the Input for this game and it found a new device (RP4 over RP3 previously). Good news so far, as something at least is different.

          From there, tried the controller, and still center to edge as it just seems to think the deadzone is there. I looked at the Analog Controls and Y was at 70% sensitivity and X 50% ... Adjusting those didn't seem to affect anything.

          Any other thoughts -- I thought this may have worked ... Really appreciate your assist here.

            sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \
              --evdev /dev/input/by-id/usb-Baolian_industry_Co.__Ltd._BL_flight_yoke_#1_8D6D17A65548-event-joystick \
              --silent \
              --detach-kernel-driver \
              --force-feedback \
              --deadzone-trigger 1% \
              --deadzone 1% \
              --mimic-xpad \
              --evdev-absmap ABS_X=x1,ABS_Y=y1 \
              --evdev-keymap BTN_TRIGGER=a,BTN_THUMB=b,BTN_THUMB2=x,BTN_TOP=y \
              --ui-axismap x2=void,y2=void,lt=void,rt=void \
              --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,back=void,start=void \
              &
          
          W 1 Reply Last reply 30 Nov 2020, 01:23 Reply Quote 0
          • W
            wstanek @icebear81
            last edited by 30 Nov 2020, 01:23

            @icebear81

            at command prompt try

            evdev-joystick --l
            

            if you see your yoke listed, try

            evdev-joystick --s /dev/input/event*
            

            where * is the number of your controller (eg event0). If you see a figure for flatness, thats the deadzone. You can set it to zero with this:

            evdev-joystick --e /dev/input/event* --d 0
            

            see if you can get that far.

            Latest Build: https://retropie.org.uk/forum/topic/23649/mad-planets-cabinet-build-finished?_=1578928113680

            I 1 Reply Last reply 30 Nov 2020, 01:48 Reply Quote 0
            • I
              icebear81 @wstanek
              last edited by 30 Nov 2020, 01:48

              @wstanek said in Mame DEADZONE with Analog Controller:

              evdev-joystick --s /dev/input/event

              looks like it is already set to zero .. the thing that is tripping me up, is ... is mame actually using this device and these settings ...

              evdev-joystick --l
              /dev/input/by-id/usb-DragonRise_Inc._Generic_USB_Joystick-event-joystick
              /dev/input/by-id/usb-Baolian_industry_Co.__Ltd._BL_flight_yoke_#1_8D6D17A65548-event-joystick
              pi@retropie:~ $ evdev-joystick --s /dev/input/event
              event0  event1  event2  event3  event4  event5  event6  event7  event8  event9
              pi@retropie:~ $ evdev-joystick --s /dev/input/event9
              Supported Absolute axes:
                Absolute axis 0x00 (0) (X Axis) (value: 0, min: -32768, max: 32767, flatness: 128 (=0.39%), fuzz: 16)
                Absolute axis 0x01 (1) (Y Axis) (value: 0, min: -32768, max: 32767, flatness: 128 (=0.39%), fuzz: 16)
                Absolute axis 0x02 (2) (Z Axis) (value: 0, min: 0, max: 255, flatness: 0 (=0.00%), fuzz: 0)
                Absolute axis 0x03 (3) (X Rate Axis) (value: 0, min: -32768, max: 32767, flatness: 128 (=0.39%), fuzz: 16)
                Absolute axis 0x04 (4) (Y Rate Axis) (value: 0, min: -32768, max: 32767, flatness: 128 (=0.39%), fuzz: 16)
                Absolute axis 0x05 (5) (Z Rate Axis) (value: 0, min: 0, max: 255, flatness: 0 (=0.00%), fuzz: 0)
                Absolute axis 0x10 (16) (Hat zero, x axis) (value: 0, min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)
                Absolute axis 0x11 (17) (Hat zero, y axis) (value: 0, min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)
              
              I 1 Reply Last reply 30 Nov 2020, 01:49 Reply Quote 0
              • I
                icebear81 @icebear81
                last edited by 30 Nov 2020, 01:49

                ah more than 1 value of flatness .. let me try the next step

                I 1 Reply Last reply 30 Nov 2020, 01:50 Reply Quote 0
                • I
                  icebear81 @icebear81
                  last edited by 30 Nov 2020, 01:50

                  evdev-joystick --e /dev/input/event9 --d 0
                  Event device file: /dev/input/event9
                  New dead zone value: 0
                  Trying to set all axes deadzone to: 0
                    Absolute axis 0x00 (0) (X Axis) Setting deadzone value to : 0
                      (value: 0, min: -32768, max: 32767, flatness: 0 (=0.00%), fuzz: 16)
                    Absolute axis 0x01 (1) (Y Axis) Setting deadzone value to : 0
                      (value: 0, min: -32768, max: 32767, flatness: 0 (=0.00%), fuzz: 16)
                    Absolute axis 0x02 (2) (Z Axis) Setting deadzone value to : 0
                      (value: 0, min: 0, max: 255, flatness: 0 (=0.00%), fuzz: 0)
                    Absolute axis 0x03 (3) (X Rate Axis) Setting deadzone value to : 0
                      (value: 0, min: -32768, max: 32767, flatness: 0 (=0.00%), fuzz: 16)
                    Absolute axis 0x04 (4) (Y Rate Axis) Setting deadzone value to : 0
                      (value: 0, min: -32768, max: 32767, flatness: 0 (=0.00%), fuzz: 16)
                    Absolute axis 0x05 (5) (Z Rate Axis) Setting deadzone value to : 0
                      (value: 0, min: 0, max: 255, flatness: 0 (=0.00%), fuzz: 0)
                    Absolute axis 0x10 (16) (Hat zero, x axis) Setting deadzone value to : 0
                      (value: 0, min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)
                    Absolute axis 0x11 (17) (Hat zero, y axis) Setting deadzone value to : 0
                      (value: 0, min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)
                  pi@retropie:~ $ evdev-joystick --s /dev/input/event9
                  Supported Absolute axes:
                    Absolute axis 0x00 (0) (X Axis) (value: 0, min: -32768, max: 32767, flatness: 0 (=0.00%), fuzz: 16)
                    Absolute axis 0x01 (1) (Y Axis) (value: 0, min: -32768, max: 32767, flatness: 0 (=0.00%), fuzz: 16)
                    Absolute axis 0x02 (2) (Z Axis) (value: 0, min: 0, max: 255, flatness: 0 (=0.00%), fuzz: 0)
                    Absolute axis 0x03 (3) (X Rate Axis) (value: 0, min: -32768, max: 32767, flatness: 0 (=0.00%), fuzz: 16)
                    Absolute axis 0x04 (4) (Y Rate Axis) (value: 0, min: -32768, max: 32767, flatness: 0 (=0.00%), fuzz: 16)
                    Absolute axis 0x05 (5) (Z Rate Axis) (value: 0, min: 0, max: 255, flatness: 0 (=0.00%), fuzz: 0)
                    Absolute axis 0x10 (16) (Hat zero, x axis) (value: 0, min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)
                    Absolute axis 0x11 (17) (Hat zero, y axis) (value: 0, min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)
                  

                  Attempting to play now ....

                  I 1 Reply Last reply 30 Nov 2020, 01:56 Reply Quote 0
                  • I
                    icebear81 @icebear81
                    last edited by 30 Nov 2020, 01:56

                    @wstanek thanks for the tips .. but that didnt seem to make any difference.
                    I ran it for the xboxdrv, tested, and then killed xboxdrv and re-ran/tested

                    ## xboxdrv then test
                    evdev-joystick --e /dev/input/event9 --d 0
                    
                    ## raw controller
                    evdev-joystick --e /dev/input/event2 --d 0
                    

                    maybe I missed something ?

                    W 1 Reply Last reply 30 Nov 2020, 02:53 Reply Quote 0
                    • W
                      wstanek @icebear81
                      last edited by 30 Nov 2020, 02:53

                      @icebear81 Try going through all the events, I'm not sure that event9 is the right one.

                      I used Advmame and had the deadzone problem. I'm trying to find my notes and the guy who helped me solve it.

                      ws

                      Latest Build: https://retropie.org.uk/forum/topic/23649/mad-planets-cabinet-build-finished?_=1578928113680

                      1 Reply Last reply Reply Quote 0
                      • I
                        icebear81
                        last edited by icebear81 30 Nov 2020, 03:01

                        @wstanek Thanks!

                        event4 is the raw yoke (this was earlier event2 but this changes during reboot as devices come online)

                        I: Bus=0003 Vendor=32be Product=1402 Version=0111
                        N: Name="Baolian industry Co., Ltd. BL flight yoke #1"
                        P: Phys=usb-3f980000.usb-1.5.1.4/input0
                        S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5.1/1-1.5.1.4/1-1.5.1.4:1.0/0003:32BE:1402.0005/input/input4
                        U: Uniq=8D6D17A65548
                        H: Handlers=js3 event4
                        B: PROP=0
                        B: EV=1b
                        B: KEY=ffff 0 0 0 0 0 0 0 0 0
                        B: ABS=3
                        B: MSC=10
                        

                        now there is also event5 which is when the GRS Yoke is enabled in mouse mode

                        I: Bus=0003 Vendor=32be Product=1402 Version=0111
                        N: Name="Baolian industry Co., Ltd. BL flight yoke #1"
                        P: Phys=usb-3f980000.usb-1.5.1.4/input1
                        S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5.1/1-1.5.1.4/1-1.5.1.4:1.1/0003:32BE:1402.0006/input/input5
                        U: Uniq=8D6D17A65548
                        H: Handlers=mouse1 event5
                        B: PROP=0
                        B: EV=17
                        B: KEY=70000 0 0 0 0 0 0 0 0
                        B: REL=103
                        B: MSC=10
                        

                        event9 is when I grab the raw event as an xboxdrv

                        Your Xbox/Xbox360 controller should now be available as:
                          /dev/input/js4
                          /dev/input/event9
                        

                        I could very well me muxing something up --

                        I 1 Reply Last reply 30 Nov 2020, 04:22 Reply Quote 0
                        • I
                          icebear81 @icebear81
                          last edited by 30 Nov 2020, 04:22

                          Quick update, maybe this will give more info ...

                          After doing the above, when I add the xboxdrv device as the input in Star Wars, it now associates as R4 HAT

                          Looking at the event details, that has a -1,0, 1 range .. so .. if anyone knows how to disable Mame from grabbing that device over the ABS_X and ABS_Y

                              Event code 0 (ABS_X)
                                Value      0
                                Min   -32768
                                Max    32767
                                Fuzz      16
                              Event code 1 (ABS_Y)
                                Value      0
                                Min   -32768
                                Max    32767
                                Fuzz      16
                          
                              Event code 16 (ABS_HAT0X)
                                Value      0
                                Min       -1
                                Max        1
                          

                          Again, at this point, Im not sure if Im supposed to be using the xboxdrv or the raw device -- thanks for the assist

                          1 Reply Last reply Reply Quote 0
                          • R
                            Robbiedog
                            last edited by 30 Nov 2020, 16:46

                            I have the exact same problem, any direction is all or nothing.
                            I assumed the yoke has been seen as a digital device rather than analogue?

                            I 1 Reply Last reply 30 Nov 2020, 20:25 Reply Quote 0
                            • I
                              icebear81 @Robbiedog
                              last edited by 30 Nov 2020, 20:25

                              @robbiedog Yeah ... the more I dig into this, the more I think you are correct that its seeing the controller as digital and not analog -- and its not actually a deadzone issue.

                              W 1 Reply Last reply 30 Nov 2020, 21:31 Reply Quote 0
                              • W
                                wstanek @icebear81
                                last edited by 30 Nov 2020, 21:31

                                Did you guys run jstest?

                                jstest /dev/input/js*
                                

                                Latest Build: https://retropie.org.uk/forum/topic/23649/mad-planets-cabinet-build-finished?_=1578928113680

                                I 2 Replies Last reply 30 Nov 2020, 21:48 Reply Quote 0
                                • I
                                  icebear81 @wstanek
                                  last edited by 30 Nov 2020, 21:48

                                  @wstanek said in Mame DEADZONE with Analog Controller:

                                  jstest /dev/input/js*

                                  Was just thinking about this, Ive been so focused on running evtest (which appears to be returning as expected0... Ill do this and see .. Is there something I should be looking for?

                                  1 Reply Last reply Reply Quote 0
                                  • I
                                    icebear81 @wstanek
                                    last edited by 1 Dec 2020, 00:57

                                    @wstanek -- seems legit

                                    Driver version is 2.1.0.
                                    Joystick (Baolian industry Co., Ltd. BL flight yoke #1) has 2 axes (X, Y)
                                    and 16 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn, TopBtn2, PinkieBtn, BaseBtn, BaseBtn2, BaseBtn3, BaseBtn4, BaseBtn5, BaseBtn6, ?, ?, ?, BtnDead).
                                    Testing ... (interrupt to exit)
                                    Axes:  0:-32767  1:-32767 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off  6:off  7:off  8:off  9:off 10:off 11:off 12:off 13:off 14:off 15:off
                                    
                                    M 1 Reply Last reply 1 Dec 2020, 13:38 Reply Quote 0
                                    • M
                                      mahoneyt944 @icebear81
                                      last edited by 1 Dec 2020, 13:38

                                      @icebear81 This might sound obvious, but did you try contacting GRS? I'm sure they have extensive experience setting up their product in mame.

                                      R 1 Reply Last reply 1 Dec 2020, 14:38 Reply Quote 0
                                      • R
                                        Robbiedog @mahoneyt944
                                        last edited by 1 Dec 2020, 14:38

                                        @mahoneyt944 he does a lot of video's with Wagner's tech talk, the yoke/Pi setup video is "coming soon", I'm not sure if icebear contacted him (email is on the back page of the manual), but I was waiting for that. I might email him...

                                        I 2 Replies Last reply 1 Dec 2020, 15:15 Reply Quote 0
                                        • I
                                          icebear81 @Robbiedog
                                          last edited by 1 Dec 2020, 15:15

                                          @robbiedog I have ... no reply yet .. Im tweeted also this AM .. and also asked on the Kickstarted comments page. Ive covered 85% of means at this point .. .

                                          I may try to use an encoder on the other connectors to see if it gets seen/behaves different

                                          1 Reply Last reply Reply Quote 0
                                          20 out of 33
                                          • First post
                                            20/33
                                            Last post

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

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

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