diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 7447a6c..fffba27 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:33ac0e7db3ed4efc6da6c4cc7f0988314aa96698631c5937ccb988ed50a82be3 +oid sha256:d516b5021460103db94185c51d96111d0e1082736a7b3b0d95dcac20c555d8ff size 466432 diff --git a/build/exports/dxwnd.ini b/build/exports/dxwnd.ini index 5dfa345..7249205 100644 --- a/build/exports/dxwnd.ini +++ b/build/exports/dxwnd.ini @@ -1,5 +1,5 @@ [window] -posx=1316 -posy=462 +posx=1403 +posy=528 sizx=320 sizy=200 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 7fc7b72..932ded6 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -433,3 +433,6 @@ v2.02.65 added "Fine time adjust" flag to finely set timeslider by 10% steps ranging from about :2 to x2 fixed a bug in DWORD timers introduced in v2.02.60: now "Warcraft 2" timing works again revised logit to calculate delays to emulate VSync timing - now should be more accurate and depending on actual screen refresh rate + +v2.02.66 +fixed palette bug: "Virtua Fighter PC" now shows correct colors. diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index 2631b68..0d5484a 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -2601,6 +2601,17 @@ static HRESULT BuildGenericEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf OutTraceDW("CreateSurface: created Emu_Generic dds=%x\n", *lplpdds); if(IsDebug) DescribeSurface(*lplpdds, dxversion, "DDSEmu_Generic", __LINE__); + + // v2.02.66: if 8BPP paletized surface and a primary palette exixts, apply. + // fixes "Virtua Fighter PC" palette bug + if(lpDDP && (ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8)){ + res=(*pSetPalette)(*lplpdds, lpDDP); + if(res) + OutTraceE("SetPalette: ERROR on lpdds=%x(Emu_Generic) res=%x(%s) at %d\n", *lplpdds, res, ExplainDDError(res), __LINE__); + else + OutTraceDW("CreateSurface: applied lpddp=%x to lpdds=%x\n", lpDDP, *lplpdds); + } + // diagnostic hooks .... HookDDSurfaceGeneric(lplpdds, dxversion); diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 3ea0e22..af5a334 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -24,7 +24,7 @@ along with this program. If not, see . #include "dxwnd.h" #include "dxwcore.hpp" -#define VERSION "2.02.65" +#define VERSION "2.02.66" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 4fbd3d8..f40e3eb 100644 Binary files a/dll/dxwnd.vs2008.suo and b/dll/dxwnd.vs2008.suo differ