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.
pgpZhRKHkKh3N.pgp
Description: PGP signature
