Mame DEADZONE with Analog Controller
-
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.
-
@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)
-
ah more than 1 value of flatness .. let me try the next step
-
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 ....
-
@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 ?
-
@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
-
@wstanek Thanks!
event4
is the raw yoke (this was earlierevent2
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 modeI: 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 xboxdrvYour Xbox/Xbox360 controller should now be available as: /dev/input/js4 /dev/input/event9
I could very well me muxing something up --
-
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_YEvent 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
-
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? -
@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.
-
Did you guys run jstest?
jstest /dev/input/js*
-
@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?
-
@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
-
@icebear81 This might sound obvious, but did you try contacting GRS? I'm sure they have extensive experience setting up their product in mame.
-
@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...
-
@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
-
@robbiedog you should also reach out.
-
@icebear81
When you run jstest, did you see numbers responding to yoke movement? You should have seen the deadzone manifest itself.I'm running Advmame 1.4, I have these lines in my .rc file:
input_map[p1_dialx] joystick[2,stick,x] input_map[p1_dialy] joystick[2,stick,y] input_map[p1_lightgunx] joystick[1,0,0] input_map[p1_lightguny] joystick[1,0,1] input_map[p1_mousex] joystick[2,stick,x] input_map[p1_mousey] joystick[2,stick,y] input_map[p1_paddlex] joystick[2,stick,x] input_map[p1_paddley] joystick[2,stick,y] input_map[p1_pedalbrake] auto input_map[p1_pedalgas] -joystick[2,stick,y] input_map[p1_pedalother] auto input_map[p1_stickx] joystick[2,stick,x] input_map[p1_sticky] joystick[2,stick,y] input_map[p1_stickz] auto input_map[p1_trackballx] joystick[2,stick,x] input_map[p1_trackbally] joystick[2,stick,y]
I've mapped several inputs to my yoke, even pedalgas, which can be used for playing Spyhunter or some such.
Read this thread. Its about how to amend a rule for your device there.
ws
-
@wstanek re: jstest .. yes it went from 0 to +/- 32767 (as expected -- I guess) .. I did not see the deadzone manifest, or at least did not notice it or no where to look for it .. output pasted was everything ..
I will read through that thread .. thank you
-
Lets add a little twist, I found the following[1] that basically says 'make sure your analog is mapped to AD...Analog and not AD...DEC'
I spun un AdvanceMame 1.4 which has these 3 options per direction. and .. I can only set the controller in the Dec/Inc Input .. so that goes back to, is this not even being seen as analog?
- So first thing to check is start a game in mame, tab, "Input (general)", player 1/2, and make sure the u360 is mapped to "AD Stick... Analog" and NOT "AD Stick... Inc" nor "AD Stick... Dec", and other analog inputs you want to use the u360. You can also do "Input (this game)", but then the fix only helps that game.
Maybe I can handjam it in the config as @wstanek mentioned about -- if any one has thoughts on getting these properly config .. HELP .. thanks
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.