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.