Opened 8 years ago

Closed 6 years ago

#7647 closed bug (fixed)

[usb_hid] Joystick axes not working fully for several controllers

Reported by: umccullough Owned by: mmlr
Priority: normal Milestone: R1
Component: Drivers/USB Version: R1/Development
Keywords: usb_hid joystick axis Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

I have tested 3 USB game devices on my haiku test machine using gcc4 hrev41943 and the "stickit" app. mmlr asked me to attach the usb_hid descriptors for all of them to a single ticket.

The first one is a Logitech Wingman Cordless gamepad with dual analog sticks, 11 buttons, a throttle slider, and a DPad. It also has rumble support.

On Windows 7, the default mode for this gamepad shows the DPad as a hat, with the right-side analog stick being the X/Y axis. The lack of hat support in haiku still means this doesn't show up. If i switch modes, however, the DPad becomes the (non-analog) X/Y axis in Haiku. Everything else seems to work fine.

The second is a Gravis XTerminator Force gamepad:

This one has a single analog force-feedback floating DPad. WIthout the force-feedback "spring", it's dificult to center the DPad, but Windows 7 suffers the same issue, unless I install a custom driver (or a game has built-in support for this feature).

It also has 10 buttons (which all work), and two analog "flippers" or "rudders" which form a single axis on Windows 7 (each flipper moves the axis a different direction from center).

The other problem I have with this gamepad on Haiku is that the DPad movement doesn't do much - it just moves a little bit in each direction. This gamepad has a "Precision" button which is supposed to reduce the distance of the DPad movement, but it seems regardless of the state of this mode, it only moves a little bit (as if the Precision mode is always enabled).

The third controller is a Great Planes "RealFlight" R/C Flight Simulator controller - also known as an "Interlink Plus" controller:

This looks like an R/C plane controller with two analog sticks, and an analog knob and several toggles/buttons.

AFAICT, all 5 of the buttons work in Haiku, as do all of the axes on the controller. The only real issue with this controller is that an additional axis shows up on Haiku's stickit which doesn't show up in Windows 7. I can't figure out what this is for, as nothing makes it move (it's just stuck in the far left position on the slider).

Attachments (4)

usb_hid_report_descriptor_046d_c211_0.bin (119 bytes) - added by umccullough 8 years ago.
Logitech Wingman Cordless gamepad
usb_hid_report_descriptor_047d_4007_0.bin (836 bytes) - added by umccullough 8 years ago.
Gravis Xterminator Force gamepad
usb_hid_report_descriptor_061c_0010_0.bin (322 bytes) - added by umccullough 8 years ago.
Great Planes RealFlight Interlink Plus
usb_hid_report_descriptor_046d_c20a_0.bin (101 bytes) - added by augiedoggie 8 years ago.
Logitech WingMan RumblePad

Download all attachments as: .zip

Change History (11)

Changed 8 years ago by umccullough

Logitech Wingman Cordless gamepad

Changed 8 years ago by umccullough

Gravis Xterminator Force gamepad

Changed 8 years ago by umccullough

Great Planes RealFlight Interlink Plus

comment:1 Changed 8 years ago by modeenf

Perhaps devide them in 3 tickets? I to have a wingman.. older one but same "problem"

comment:2 Changed 8 years ago by umccullough

The hat support is still missing, which is the cause for the dpad to not function on the wingman. That's a known problem, but mmlr asked me to attach the descriptor file anyway

He also suggested a single ticket would be enough for him to analyze various descriptors to figure out what can be done. If he wants them separated, I'd be happy to do so :)

Changed 8 years ago by augiedoggie

Logitech WingMan RumblePad

comment:3 Changed 8 years ago by umccullough

Update: as of hrev42035 the hat (dpad) shows up now for my logitech wingman - and usb_hid seems to return the proper hat values when I use it. For some reason the values go missing somewhere in between and the squares don't highlight in stickit.

If there is additional tracing I can provide to help iron that out, let me know.

comment:4 in reply to:  3 Changed 8 years ago by phoudoin

Replying to umccullough:

Update: as of hrev42035 the hat (dpad) shows up now for my logitech wingman - and usb_hid seems to return the proper hat values when I use it. For some reason the values go missing somewhere in between and the squares don't highlight in stickit.

I fix a bug regarding hat value(s) in hrev42208. Could you try again with this change?

comment:5 Changed 8 years ago by augiedoggie

Mine is working now. It's nearly identical to the one Urias has.

comment:6 Changed 6 years ago by phoudoin

Can this ticket be close?

comment:7 Changed 6 years ago by umccullough

Resolution: fixed
Status: newclosed

Yeah - I'm sure the main issues are resolved now.

I haven't had a chance to go back and retest all devices (and don't even know where they are at the moment since I packed them for moving) - so I'll open a new ticket in the future if there are further problems.

Note: See TracTickets for help on using tickets.