http://bugs.winehq.org/show_bug.cgi?id=20008
Summary: joystick's POV doesn't work when using evdev Product: Wine Version: 1.1.29 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-dinput AssignedTo: wine-bugs@winehq.org ReportedBy: wine-bug@jednymruchempyty.com CC: wine-bug@jednymruchempyty.com
When using evdev, joystick's POV doesn't work. Tested on 1.1.29 and 1.1.28. It works fine on 1.1.27.
Traced it to a bad inst_id in dll/dinput/joystick_linuxinput.c function joy_polldev(). The line: inst_id = DIDFT_MAKEINSTANCE(axis) | (axis < 8 ? DIDFT_ABSAXIS : DIDFT_POV); should read: inst_id = axis < 8 ? DIDFT_MAKEINSTANCE(axis) | DIDFT_ABSAXIS : DIDFT_MAKEINSTANCE(axis - 8) | DIDFT_POV;
The wrong inst_id resulted in POV events not being queued via queue_event().
http://bugs.winehq.org/show_bug.cgi?id=20008
--- Comment #1 from Austin English austinenglish@gmail.com 2009-09-10 20:03:16 --- Regression test? http://wiki.winehq.org/RegressionTesting
http://bugs.winehq.org/show_bug.cgi?id=20008
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |vitaliy@kievinfo.com Ever Confirmed|0 |1
--- Comment #2 from Vitaliy Margolen vitaliy@kievinfo.com 2009-09-10 23:48:03 --- Confirming, and it's not just evdev but joydev as well. I don't think this is a regression, that part of code didn't really change for a long while.
http://bugs.winehq.org/show_bug.cgi?id=20008
--- Comment #3 from wine-bug@jednymruchempyty.com 2009-09-11 01:44:39 --- @Austin English: Sorry. Didn't think of that. I know it's a bit late for that, but here goes: The breakage occured after applying:
commit 167457efc14c84292a9c2d31510b1d7d5fe81a7b author Vitaliy Margolen wine-patches@kievinfo.com Sat, 15 Aug 2009 17:58:47 +0000 (11:58 -0600) committer Alexandre Julliard julliard@winehq.org Wed, 19 Aug 2009 10:25:18 +0000 (12:25 +0200) dinput: Evdev joystick driver - add ability to remap axis.
and it persists even after:
commit 83172ecc828f6c48e2686b5aefe7791f8ca6b920 author Vitaliy Margolen wine-patches@kievinfo.com Sat, 15 Aug 2009 18:43:38 +0000 (12:43 -0600) committer Alexandre Julliard julliard@winehq.org Wed, 19 Aug 2009 10:26:15 +0000 (12:26 +0200) dinput: Fix evdev POV mapping.
@Vitaly Margolen: Before commit 167457efc14c84292a9c2d31510b1d7d5fe81a7b the axis in joystick_linuxinput.c joy_polldev() was mapped via dev_axes_to_di[] (which was called axis[] then) to a (0..3) range, but after the commit it's mapped via axis_map[] to (8..11). Technically - yes, alloc_joydev()'s behavior changed, and not joy_polldev(). Regression or not, the POVs stopped working ;)
http://bugs.winehq.org/show_bug.cgi?id=20008
--- Comment #4 from Vitaliy Margolen vitaliy@kievinfo.com 2009-09-11 08:10:52 --- Patch already sent: http://www.winehq.org/pipermail/wine-patches/2009-September/078412.html
Will probably be committed today.
http://bugs.winehq.org/show_bug.cgi?id=20008
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #5 from Vitaliy Margolen vitaliy@kievinfo.com 2009-09-11 20:50:17 --- Patch is committed - fixed.
http://bugs.winehq.org/show_bug.cgi?id=20008
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #6 from Alexandre Julliard julliard@winehq.org 2009-09-25 12:26:13 --- Closing bugs fixed in 1.1.30.