@@ -1468,14 +1468,15 @@ template<bool EnableSync>
1468
1468
HRESULT Direct3DDevice9Ex_LSS<EnableSync>::GetLightEnable (DWORD Index, BOOL* pEnable) {
1469
1469
ZoneScoped;
1470
1470
LogFunctionCall ();
1471
-
1472
1471
if (pEnable == nullptr ) {
1473
1472
return D3DERR_INVALIDCALL;
1474
1473
}
1475
1474
1476
1475
{
1477
1476
BRIDGE_DEVICE_LOCKGUARD ();
1478
- *pEnable = m_state.bLightEnables [Index];
1477
+ // This is the true value for light-enables found through experimentation
1478
+ constexpr BOOL LightEnableTrue = 128 ;
1479
+ *pEnable = m_state.bLightEnables [Index] ? LightEnableTrue : 0 ;
1479
1480
}
1480
1481
return S_OK;
1481
1482
}
@@ -1757,6 +1758,7 @@ void Direct3DDevice9Ex_LSS<EnableSync>::StateBlockSetCaptureFlags(D3DSTATEBLOCKT
1757
1758
if (Type == D3DSBT_ALL) {
1758
1759
std::fill (std::begin (flags.textures ), std::end (flags.textures ), true );
1759
1760
std::fill (std::begin (flags.streams ), std::end (flags.streams ), true );
1761
+ std::fill (std::begin (flags.streamOffsetsAndStrides ), std::end (flags.streamOffsetsAndStrides ), true );
1760
1762
1761
1763
flags.indices = true ;
1762
1764
flags.viewport = true ;
@@ -2200,7 +2202,7 @@ HRESULT Direct3DDevice9Ex_LSS<EnableSync>::SetPaletteEntries(UINT PaletteNumber,
2200
2202
2201
2203
{
2202
2204
BRIDGE_DEVICE_LOCKGUARD ();
2203
- m_palleteEntries [PaletteNumber] = *pEntries;
2205
+ m_paletteEntries [PaletteNumber] = *pEntries;
2204
2206
}
2205
2207
return S_OK;
2206
2208
}
@@ -2216,7 +2218,7 @@ HRESULT Direct3DDevice9Ex_LSS<EnableSync>::GetPaletteEntries(UINT PaletteNumber,
2216
2218
2217
2219
{
2218
2220
BRIDGE_DEVICE_LOCKGUARD ();
2219
- *pEntries = m_palleteEntries [PaletteNumber];
2221
+ *pEntries = m_paletteEntries [PaletteNumber];
2220
2222
}
2221
2223
return S_OK;
2222
2224
}
@@ -2227,7 +2229,7 @@ HRESULT Direct3DDevice9Ex_LSS<EnableSync>::SetCurrentTexturePalette(UINT Palette
2227
2229
LogFunctionCall ();
2228
2230
{
2229
2231
BRIDGE_DEVICE_LOCKGUARD ();
2230
- m_curTexPallete = PaletteNumber;
2232
+ m_curTexPalette = PaletteNumber;
2231
2233
}
2232
2234
return S_OK;
2233
2235
}
@@ -2243,7 +2245,7 @@ HRESULT Direct3DDevice9Ex_LSS<EnableSync>::GetCurrentTexturePalette(UINT* pPalet
2243
2245
2244
2246
{
2245
2247
BRIDGE_DEVICE_LOCKGUARD ();
2246
- *pPaletteNumber = m_curTexPallete ;
2248
+ *pPaletteNumber = m_curTexPalette ;
2247
2249
}
2248
2250
return S_OK;
2249
2251
}
@@ -2807,13 +2809,18 @@ HRESULT Direct3DDevice9Ex_LSS<EnableSync>::SetStreamSource(UINT StreamNumber, ID
2807
2809
BRIDGE_DEVICE_LOCKGUARD ();
2808
2810
if (m_stateRecording) {
2809
2811
m_stateRecording->m_captureState .streams [StreamNumber] = MakeD3DAutoPtr (pLssStreamData);
2810
- m_stateRecording->m_captureState .streamOffsets [StreamNumber] = OffsetInBytes;
2811
- m_stateRecording->m_captureState .streamStrides [StreamNumber] = Stride;
2812
+ if (pStreamData != nullptr ) {
2813
+ m_stateRecording->m_captureState .streamOffsets [StreamNumber] = OffsetInBytes;
2814
+ m_stateRecording->m_captureState .streamStrides [StreamNumber] = Stride;
2815
+ m_stateRecording->m_dirtyFlags .streamOffsetsAndStrides [StreamNumber] = true ;
2816
+ }
2812
2817
m_stateRecording->m_dirtyFlags .streams [StreamNumber] = true ;
2813
2818
} else {
2814
2819
m_state.streams [StreamNumber] = MakeD3DAutoPtr (pLssStreamData);
2815
- m_state.streamOffsets [StreamNumber] = OffsetInBytes;
2816
- m_state.streamStrides [StreamNumber] = Stride;
2820
+ if (pStreamData != nullptr ) {
2821
+ m_state.streamOffsets [StreamNumber] = OffsetInBytes;
2822
+ m_state.streamStrides [StreamNumber] = Stride;
2823
+ }
2817
2824
}
2818
2825
}
2819
2826
{
@@ -3751,6 +3758,10 @@ HRESULT Direct3DDevice9Ex_LSS<EnableSync>::ResetState() {
3751
3758
m_state.streamFreqs [i] = 1 ;
3752
3759
}
3753
3760
3761
+ // Set The Current Texture Palette entry to it's default
3762
+ // found through experimentation.
3763
+ m_curTexPalette = 65535 ;
3764
+
3754
3765
return S_OK;
3755
3766
}
3756
3767
0 commit comments