Hi,
Could you put the +ddraw trace somewhere on the web ? This suspiciously looks like a reference counting issue either in the application or in the Wine code.
It looks to me that Empire Earth accidentally frees the DirectDraw Interface it's working with. During my look at the ddraw code, I've stubled accross this thing in DDRAW_Create:
{ ... driver = DDRAW_FindDriver(lpGUID); if (driver == NULL) return DDERR_INVALIDDIRECTDRAWGUID;
hr = driver->create(lpGUID, &pDD, pUnkOuter, ex); if (FAILED(hr)) return hr;
hr = IDirectDraw7_QueryInterface(pDD, iid, lplpDD); IDirectDraw7_Release(pDD); <-- Is this correct??? return hr; }
I haven't found any useable Documentation on MSDN, because it's all archived content. But this Release Call seems odd to me. If I remove this call, Empire Earth continues loading and bails out on some string operation, which I haven't investigated yet.
Stefan