Hi
I'll look at this, the whole palette code is a bit messy. My suspicion is that IDirectDrawPaletteImpl_SetEntries / IWineD3DPaletteImpl_SetEntries doesn't update all surfaces that use a palette.
That's indeed the reason. Simple fix is to set the rendertarget usage also for ddraw offscreen surfaces.Not sure if there are any possible sideeffects of this, but until now i haven't seen any.
f005d3af1e8f4cacf1211c6fc3952acbd4766332 diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index 34d91da..4b44035 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -1788,8 +1788,8 @@ IDirectDrawImpl_CreateNewSurface(IDirect PixelFormat_WineD3DtoDD(&pDDSD->ddpfPixelFormat, Mode.Format); Format = Mode.Format;
- /* If it's a off-screen D3D device, set the rendertarget usage */ - if(pDDSD->ddsCaps.dwCaps & DDSCAPS_3DDEVICE) + /* If it's a off-screen D3D/DDraw device, set the rendertarget usage */ + if(pDDSD->ddsCaps.dwCaps & ( DDSCAPS_3DDEVICE | DDSCAPS_OFFSCREENPLAIN) ) Usage |= WINED3DUSAGE_RENDERTARGET; } }