[Wine] Re: Mouse Cursor drifts in some directx games

flippo wineforum-user at winehq.org
Wed Aug 19 01:22:15 CDT 2009


Okay, I figured out how to generate and looked at the log files and found a few things im suspicious of, but I am not particularly familiar with the inner workings of wine, so you may have to bear with me.  

Firstly the dinput section could not read my joystick dev files (/dev/input/js[0-9]\+) due to insufficient permissions, but this shouldn't cause the mouse error I'm experiencing.

The other thing I noticed is the mouse is "warped" to the window 

Code:

trace:dinput:SysMouseAImpl_GetDeviceData Warping mouse to 512 - 384



 but I don't expect this to cause the error I'm recieving.

I am not really sure whats going on by the log files, So I'm going to attempt to post what I think is relevant in a very abbreviated manner so someone with a touch more experience may be able to help me out:

terminal:
WINEDEBUG+=dinput Fable.exe 2> dinput.txt
cat dinput.txt | grep mouse

file dinput.txt:

Code:

trace:dinput:IDirectInputWImpl_EnumDevices   - checking device 0 ('Wine mouse driver')
trace:dinput:mousedev_create_deviceW Creating a Mouse device (0x1afc00)
trace:dinput:_dump_mouse_state (X: 1 Y: 1 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:SysMouseAImpl_GetDeviceData Warping mouse to 512 - 384
trace:dinput:dinput_mouse_hook msg 200 @ (512 385)
trace:dinput:_dump_mouse_state (X: 1 Y: 2 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:dinput_mouse_hook msg 200 @ (519 385)
trace:dinput:_dump_mouse_state (X: 8 Y: 2 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:dinput_mouse_hook msg 200 @ (530 385)
trace:dinput:_dump_mouse_state (X: 19 Y: 2 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:SysMouseAImpl_GetDeviceData Warping mouse to 512 - 384
trace:dinput:dinput_mouse_hook msg 200 @ (520 385)
trace:dinput:_dump_mouse_state (X: 27 Y: 3 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:dinput_mouse_hook msg 200 @ (526 385)
trace:dinput:_dump_mouse_state (X: 33 Y: 3 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:SysMouseAImpl_GetDeviceData Warping mouse to 512 - 384
...
...
...




Here is where the mouse is drifting 1 pixel at a time, there are hundreds of these:


Code:

...
trace:dinput:_dump_mouse_state (X: 294 Y: 181 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:SysMouseAImpl_GetDeviceData Warping mouse to 512 - 384
trace:dinput:dinput_mouse_hook msg 200 @ (512 385)
trace:dinput:_dump_mouse_state (X: 294 Y: 182 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:SysMouseAImpl_GetDeviceData Warping mouse to 512 - 384
trace:dinput:dinput_mouse_hook msg 200 @ (512 385)
trace:dinput:_dump_mouse_state (X: 294 Y: 183 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:SysMouseAImpl_GetDeviceData Warping mouse to 512 - 384
trace:dinput:dinput_mouse_hook msg 200 @ (512 385)
trace:dinput:_dump_mouse_state (X: 294 Y: 184 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
...




This is the end of the file:


Code:

trace:dinput:dinput_mouse_hook msg 201 @ (512 385)
trace:dinput:_dump_mouse_state (X: 744 Y: 680 Z: 0 B0: 80 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:dinput_mouse_hook msg 200 @ (512 385)
trace:dinput:dinput_mouse_hook msg 202 @ (512 385)
trace:dinput:_dump_mouse_state (X: 744 Y: 680 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:SysMouseAImpl_Unacquire  warping mouse back to (403 , 767)




The event log seems to corellate to these 1 pixel MotionNotify events:

Terminal:
WINEDEBUG+=event Fable.exe 2> event.txt

I recieve hundreds of these:

Code:

...
trace:event:call_event_handler MotionNotify for hwnd/window 0x90032/2a00018
trace:event:process_events processed 1 events
trace:event:call_event_handler MotionNotify for hwnd/window 0x90032/2a00018
trace:event:process_events processed 1 events
...




So it appears wine is recieveing a 1 pixel mouse motion event and moving the mouse one pixel, but I'm unsure of where to go from here with this information.

Any help is greatly appreciated.

Thank You







More information about the wine-users mailing list