Wine 0.9.16 and ddraw issues

Stefan Dösinger stefandoesinger at gmx.at
Sat Jul 1 05:29:39 CDT 2006


Hi,
> Command & Conquer and C&C: Red Alert
> When exiting the game, a messagebox displays: 'Unregonized Direct Draw
> result code: 1'
> A demo of Red Alert is available here:
> http://appdb.winehq.org/appview.php?versionId=4026
> These two games, along with 'Warlords IIII: Darklords Rising' also have a
> strange SMP problem.  In earlier Wine versions, these games would stop
> redrawing at some point.  This also happens in Wine 0.9.16, but sometimes
> an error message is displayed instead, and then Wine receives a page fault.
I looked at that, and it is a reference counting issue. Red alert deals nicely 
with its surfaces and the ddraw object itself, but it creates a palette and 
doesn't release it. A palette holds a reference to the DirectDraw interface 
it was created from, this is shown by a test case I sent some days ago. 
Because the palette isn't released, the final release call of the DirectDraw 
interface returns 1 instead of the apparently expected 0. On windows 95 it 
apparently gets a final refcount of 0, I could imaging that reference 
counting is different in older ddraw interfaces, or that there is some call 
which implicitly releases all palettes(I can only imaging 
IDirectDraw::RestoreDisplayMode)

This worked in the old directdraw version because it (incorrectly) didn't 
AddRef the device when a Palette was created.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20060701/1c77f86d/attachment.pgp


More information about the wine-devel mailing list