http://bugs.winehq.org/show_bug.cgi?id=11600
Vitaliy Margolen vitaliy@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified
--- Comment #3 from Vitaliy Margolen vitaliy@kievinfo.com 2009-01-03 18:54:23 --- This is buggy program relaying on some m$ brain damage: --- trace:dinput:IDirectInputDevice2AImpl_SetDataFormat (0x151ee0) 0x47cae8 trace:dinput:_dump_DIDATAFORMAT Dumping DIDATAFORMAT structure: trace:dinput:_dump_DIDATAFORMAT - dwSize: 24 trace:dinput:_dump_DIDATAFORMAT - dwObjsize: 16 trace:dinput:_dump_DIDATAFORMAT - dwFlags: 0x00000002 (DIDF_RELAXIS) trace:dinput:_dump_DIDATAFORMAT - dwDataSize: 16 trace:dinput:_dump_DIDATAFORMAT - dwNumObjs: 2 trace:dinput:_dump_DIDATAFORMAT - Object 0: trace:dinput:_dump_DIDATAFORMAT * GUID: (null) ('null GUID') trace:dinput:_dump_DIDATAFORMAT * dwOfs: 0 trace:dinput:_dump_DIDATAFORMAT * dwType: 0x00ffff01 trace:dinput:_dump_DIDATAFORMAT Type: DIDFT_RELAXIS / Instance: DIDFT_ANYINSTANCE trace:dinput:_dump_DIDATAFORMAT * dwFlags: 0x00000000 trace:dinput:_dump_DIDATAFORMAT - Object 1: trace:dinput:_dump_DIDATAFORMAT * GUID: {a36d02f0-c9f3-11cf-bfc7-444553540000} ('GUID_Button') trace:dinput:_dump_DIDATAFORMAT * dwOfs: 12 trace:dinput:_dump_DIDATAFORMAT * dwType: 0x00ffff0c trace:dinput:_dump_DIDATAFORMAT Type: DIDFT_PSHBUTTON DIDFT_TGLBUTTON / Instance: DIDFT_ANYINSTANCE trace:dinput:_dump_DIDATAFORMAT * dwFlags: 0x00000000 --- Game asks for only one axis (X) and one button. And that's what it get from Wine. Clearly a game bug.
It seems game relies on the fact that dinput copies the entire internal device status in call to GetDeviceState() in some cases.
Patch sent: http://www.winehq.org/pipermail/wine-patches/2009-January/067049.html