[DInput] Fix 'peek' code for mouse (S3 problem)

Lionel Ulmer lionel.ulmer at free.fr
Sat May 7 14:30:37 CDT 2005

> It doesn't look like the normal X cursor. S3 changes the cursor the same way 
> in Wine as it does on Windows, but I think, appart of it's look that it's the 
> normal X cursor / the normal Windows GDI cursor.

trace:dinput:SysMouseAImpl_SetCooperativeLevel (this=0x77c55f18,0x0008004c,0x00000006)
trace:dinput:SysMouseAImpl_SetCooperativeLevel  cooperative level : DISCL_FOREGROUND DISCL_NONEXCLUSIVE 

And this means that the mouse cursor will NOT be hidden by DInput. So S3
really uses the standard GDI cursor at the same time than DInput.

This means that one (hacky) way to fix your issue would be to disable mouse
warping as soon as 'NONEXCLUSIVE' is given AND that the application did not
hide the mouse cursor itself. After, one just needs to hope the application
did not resort to setting an 'empty' mouse cursor :-)

I wanted first to work on the real fix but as no-one answered my mail on the
XOrg list yet, I will maybe do the 'hacky' patch described above waiting for
things to move on the X11 side.

> I don't know if this Demo works with Wine. The original S3 does a lot of 
> checks on system dlls and such, which causes the game to refuse to run on 
> Windows XP and Wine. Bluebyte has published a modified s3.exe which makes the 
> game start on Windows 2K, Windows XP and (as a side effect) with Wine. I 
> don't know how the demo behaves.

Nope it does not work in Wine and neither does it on WinXP. But it works
fine in Win98 + QEMU :-)


		 Lionel Ulmer - http://www.bbrox.org/

More information about the wine-devel mailing list