http://bugs.winehq.org/show_bug.cgi?id=2082
--- Comment #109 from Murray Colpman muzerakascooby@gmail.com 2013-03-14 18:26:39 CDT --- (In reply to comment #106)
Could you maybe elaborate on how that can be achieved? What do you mean by "ingame minimisation"? Would be happy to try out your suggestion.
Well, the maintainers for the game added an option to change the SetCooperativeLevel call to pass the desktop window as the parameter. This breaks ingame minimisation because the only way to minimise ingame due to other weirdness with the game itself is to set the desktop window as the currently active window.
It may be worthwhile posting the other workarounds here anyway. They may be useful to users or developers looking at the problem.
I believe Windows 8 essentially has a registry key to enable old ddraw behaviour/emulation/something special at least, which is what this workaround does (sets that key). Here's the reg file:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "C:\Team17\Worms Armageddon\WA.exe"="$ DWM8And16BitMitigation Layer_ForceDirectDrawEmulation"
So, if Windows has a registry workaround, wine might benefit one too ;)
Weirdly enough, WA has implemented new renderers recently - DirectDraw 32-bit (previous was 8-bit), Direct3D 7, Direct3D 9 with CPU palette conversion, and Direct3D 9 with Shader palette conversion. The weird thing is, these also exhibit a black screen in wine, and there appears to be no workaround (apart from DirectDraw 32-bit which has the same workaround as the old 8-bit renderer, that is the SetCooperativeLevel thing described above). I don't know if this is the same bug - if there's some legacy function in DirectDraw that enables the same sort of behaviour - or something completely unrelated, but they do definitely work in Win8. I could have sworn there used to be some debug output that looks related but I can't find it now (the only seemingly-relevant line is fixme:d3d:wined3d_get_adapter_raster_status wined3d 0x14f8e0, adapter_idx 0, raster_status 0x33ef40 semi-stub!). However, I digress, this probably belongs in a new bug.