diff --git a/Cxbx.opt b/Cxbx.opt index 67460583a..560f87f41 100644 Binary files a/Cxbx.opt and b/Cxbx.opt differ diff --git a/Source/Win32/CxbxKrnl/EmuD3D8.cpp b/Source/Win32/CxbxKrnl/EmuD3D8.cpp index 7a452a610..305b24ccd 100644 --- a/Source/Win32/CxbxKrnl/EmuD3D8.cpp +++ b/Source/Win32/CxbxKrnl/EmuD3D8.cpp @@ -2836,8 +2836,8 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_SetVertexData4f case 4: // D3DVSDE_SPECULAR { - if(a > 1.0f || a < -1.0f) a = 0.0f - ((a/320.0f) - 1.0f); - if(b > 1.0f || b < -1.0f) b = 0.0f - ((b/240.0f) - 1.0f); + if(a > 1.0f || a < -1.0f) a = a/640.0f; + if(b > 1.0f || b < -1.0f) b = b/480.0f; g_D3DIVB[g_dwD3DIVBInd].TexCoord1.x = a; g_D3DIVB[g_dwD3DIVBInd].TexCoord1.y = b; @@ -2872,8 +2872,10 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_SetVertexData4f */ case 10: // D3DVSDE_TEXCOORD1 { - if(a > 1.0f || a < -1.0f) a = 0.0f - ((a/320.0f) - 1.0f); - if(b > 1.0f || b < -1.0f) b = 0.0f - ((b/240.0f) - 1.0f); + //if(a > 1.0f || a < -1.0f) a = 0.0f - ((a/320.0f) - 1.0f); + //if(b > 1.0f || b < -1.0f) b = 0.0f - ((b/240.0f) - 1.0f); + if(a > 1.0f || a < -1.0f) a = a/640.0f; + if(b > 1.0f || b < -1.0f) b = b/480.0f; g_D3DIVB[g_dwD3DIVBInd].TexCoord2.x = a; g_D3DIVB[g_dwD3DIVBInd].TexCoord2.y = b; @@ -2885,8 +2887,8 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_SetVertexData4f case 11: // D3DVSDE_TEXCOORD2 { - if(a > 1.0f || a < -1.0f) a = 0.0f - ((a/320.0f) - 1.0f); - if(b > 1.0f || b < -1.0f) b = 0.0f - ((b/240.0f) - 1.0f); + if(a > 1.0f || a < -1.0f) a = a/640.0f; + if(b > 1.0f || b < -1.0f) b = b/480.0f; g_D3DIVB[g_dwD3DIVBInd].TexCoord3.x = a; g_D3DIVB[g_dwD3DIVBInd].TexCoord3.y = b; @@ -2898,8 +2900,8 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_SetVertexData4f case 12: // D3DVSDE_TEXCOORD3 { - if(a > 1.0f || a < -1.0f) a = 0.0f - ((a/320.0f) - 1.0f); - if(b > 1.0f || b < -1.0f) b = 0.0f - ((b/240.0f) - 1.0f); + if(a > 1.0f || a < -1.0f) a = a/640.0f; + if(b > 1.0f || b < -1.0f) b = b/480.0f; g_D3DIVB[g_dwD3DIVBInd].TexCoord4.x = a; g_D3DIVB[g_dwD3DIVBInd].TexCoord4.y = b;