http://bugs.winehq.org/show_bug.cgi?id=31546
--- Comment #6 from Riccardo c10ud.dev@gmail.com 2012-11-05 05:38:19 CST --- A simple workaround is ignoring the unwanted events (this is not a patch)
in dlls/dinput/joystick_linuxinput.c:
case EV_ABS: { + if (ie.code > 11) + break;
debugging the issue further shows that lots of event codes are mapped to 0 axis, see this debug snippet that prints values just before the switch(axis):
ie.code: 48 axis: 0 inst_id: 2 value: -25 ie.code: 49 axis: 0 inst_id: 2 value: -11 ie.code: 50 axis: 0 inst_id: 2 value: -25 ie.code: 51 axis: 0 inst_id: 2 value: -25 ie.code: 52 axis: 0 inst_id: 2 value: -25 ie.code: 53 axis: 0 inst_id: 2 value: -25 ie.code: 54 axis: 0 inst_id: 2 value: -25 ie.code: 55 axis: 0 inst_id: 2 value: -25 ie.code: 56 axis: 0 inst_id: 2 value: -25 ie.code: 57 axis: 0 inst_id: 2 value: -25 ie.code: 58 axis: 0 inst_id: 2 value: -25 ie.code: 59 axis: 0 inst_id: 2 value: 25