[PATCH 2/2] winmm: Use a thread to send driver messages on Win9x (try 2)

Bruno Jesus 00cpxxx at gmail.com
Thu Dec 1 12:04:42 CST 2016


On Thu, Dec 1, 2016 at 3:29 PM, Andrew Eikum <aeikum at codeweavers.com> wrote:
> On Thu, Dec 01, 2016 at 02:24:38PM -0200, Bruno Jesus wrote:
>> No, manually setting compatibility is not required in XP (that is why
>> IMO its is a shim, more below). Just the game installer needs
>> compatibility or it complains about unsupported OS.
>>
>> I could not find any way to disable SuspendThread, I tried it back in
>> [1] but got no replies, internet also did not help me at this subject.
>>
>> [1] https://www.winehq.org/pipermail/wine-devel/2015-November/110308.html
>>
>> To prove my point at [2] (source at [3]) there is a winmm_crosstest
>> that calls SuspendThread inside the callback. If you run this at
>> Windows >= XP it will get stuck. If you turn compatibility mode on it
>> will pass as if nothing was called (tested on XP and 8).
>>
>> [2] http://alexa.pro.br/~bruno/wine/winmm_crosstest.exe
>> [3] http://alexa.pro.br/~bruno/wine/winmm.txt
>>
>
> If the game works without compat mode, but your test doesn't, then
> there must be something else going on here. I wish we understood
> better why it works.

I don't know what else to do, you can read some more at
https://bugs.winehq.org/show_bug.cgi?id=3930#c18

You can also read the changelog of the DLL file
http://www.radgametools.com/msshist.htm, especifically this (which
could or not be related to the problem, and the games were shipped
with old versions.):
---------
Changes from 3.03c to 3.03d (11-22-1995)

Switched to a new thread synchronization technique which should fix
deadlocking problems previously encountered by some 32-bit MSS
applications.
---------

It would not be the first time Windows circumvents games problems. My
patch is only touching Wine as configured for 9x, it brings no issues
to the general user and makes Wine behave as 9x did. I cannot solve
the mistery of how XP detects the game and avoids SuspendThread as my
knowledge is limited and I believe it would require reverse
engineering.

Best wishes,
Bruno



More information about the wine-devel mailing list