diff --git a/include/xref/d3d8.def b/include/xref/d3d8.def index 7e89938c..1f80b33b 100644 --- a/include/xref/d3d8.def +++ b/include/xref/d3d8.def @@ -60,15 +60,15 @@ XREF_SYMBOL(D3DTSS_TEXCOORDINDEX) // Offsets : -XREF_SYMBOL(OFFSET_D3DDevice__m_PixelShader) // initially set to XREF_ADDR_DERIVE -XREF_SYMBOL(OFFSET_D3DDevice__m_Textures) // initially set to XREF_ADDR_DERIVE -XREF_SYMBOL(OFFSET_D3DDevice__m_Palettes) // initially set to XREF_ADDR_DERIVE -XREF_SYMBOL(OFFSET_D3DDevice__m_RenderTarget) // initially set to XREF_ADDR_DERIVE -XREF_SYMBOL(OFFSET_D3DDevice__m_DepthStencil) // initially set to XREF_ADDR_DERIVE -XREF_SYMBOL(OFFSET_D3DDevice__m_VerticalBlankEvent) // initially set to XREF_ADDR_DERIVE -XREF_SYMBOL(OFFSET_D3DDevice__m_SwapCallback) // initially set to XREF_ADDR_DERIVE -XREF_SYMBOL(OFFSET_D3DDevice__m_VBlankCallback) // initially set to XREF_ADDR_DERIVE -XREF_SYMBOL(OFFSET_D3DDevice__m_VertexShader) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_PixelShader_OFFSET) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_Textures_OFFSET) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_Palettes_OFFSET) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_RenderTarget_OFFSET) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_DepthStencil_OFFSET) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_VerticalBlankEvent_OFFSET) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_SwapCallback_OFFSET) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_VBlankCallback_OFFSET) // initially set to XREF_ADDR_DERIVE +XREF_SYMBOL(D3DDevice__m_VertexShader_OFFSET) // initially set to XREF_ADDR_DERIVE // Functions // include D3D8 prefix diff --git a/src/OOVPADatabase/D3D8/3911.inl b/src/OOVPADatabase/D3D8/3911.inl index 7847e729..19c32287 100644 --- a/src/OOVPADatabase/D3D8/3911.inl +++ b/src/OOVPADatabase/D3D8/3911.inl @@ -42,7 +42,7 @@ OOVPA_SIG_MATCH( XREF_ENTRY(0x01, XREF_D3D_g_pDevice), // add eax, OFFSET_D3DDevice__m_VerticalBlankEvent - XREF_ENTRY(0x18, XREF_OFFSET_D3DDevice__m_VerticalBlankEvent), // <-- Deriving this XRef is the purpose of this OOVPA + XREF_ENTRY(0x18, XREF_D3DDevice__m_VerticalBlankEvent_OFFSET), // <-- Deriving this XRef is the purpose of this OOVPA // mov eax,[D3D_g_pDevice] OV_MATCH(0x00, 0xA1), @@ -110,6 +110,54 @@ OOVPA_SIG_MATCH( // ); +// ****************************************************************** +// * D3D_g_pDevice +// ****************************************************************** +// dummy signature +OOVPA_SIG_HEADER_NO_XREF(D3D_g_pDevice, + 0) +OOVPA_SIG_MATCH_DUMMY(); + +// ****************************************************************** +// * D3DDevice__m_PixelShader OFFSET +// ****************************************************************** +// dummy signature +OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_PixelShader_OFFSET, + 0) +OOVPA_SIG_MATCH_DUMMY(); + +// ****************************************************************** +// * D3DDevice__m_VerticalBlankEvent OFFSET +// ****************************************************************** +// dummy signature +OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_VerticalBlankEvent_OFFSET, + 0) +OOVPA_SIG_MATCH_DUMMY(); + +// ****************************************************************** +// * D3DDevice__m_SwapCallback OFFSET +// ****************************************************************** +// dummy signature +OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_SwapCallback_OFFSET, + 0) +OOVPA_SIG_MATCH_DUMMY(); + +// ****************************************************************** +// * D3DDevice__m_VBlankCallback OFFSET +// ****************************************************************** +// dummy signature +OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_VBlankCallback_OFFSET, + 0) +OOVPA_SIG_MATCH_DUMMY(); + +// ****************************************************************** +// * D3DDevice__m_VertexShader OFFSET +// ****************************************************************** +// dummy signature +OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_VertexShader_OFFSET, + 0) +OOVPA_SIG_MATCH_DUMMY(); + // ****************************************************************** // * Direct3D_CreateDevice // ****************************************************************** @@ -1557,7 +1605,7 @@ OOVPA_SIG_MATCH( XREF_ENTRY(0x01, XREF_D3D_g_pDevice), // D3DDevice_BlockUntilVerticalBlank+0x17 : add eax, OFFSET_D3DDevice__m_VerticalBlankEvent - XREF_ENTRY(0x18, XREF_OFFSET_D3DDevice__m_VerticalBlankEvent), + XREF_ENTRY(0x18, XREF_D3DDevice__m_VerticalBlankEvent_OFFSET), // D3DDevice_BlockUntilVerticalBlank+0x00 : mov eax,[D3D_g_pDevice] OV_MATCH(0x00, 0xA1), @@ -1596,7 +1644,7 @@ OOVPA_SIG_MATCH( XREF_ENTRY(0x06, XREF_D3D_g_pDevice), // D3DDevice_SetVerticalBlankCallback+0x0A : mov [ecx+OFFSET_D3DDevice__m_VBlankCallback],eax - XREF_ENTRY(0x0C, XREF_OFFSET_D3DDevice__m_VBlankCallback), + XREF_ENTRY(0x0C, XREF_D3DDevice__m_VBlankCallback_OFFSET), // D3DDevice_SetVerticalBlankCallback+0x00 : mov eax,[esp+0x04] OV_MATCH(0x00, 0x8B, 0x44, 0x24, 0x04), @@ -1753,7 +1801,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x12, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived + XREF_ENTRY(0x12, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived // D3DDevice_SetVertexShader+0x00 : push ebx { 0x00, 0x53 }, diff --git a/src/OOVPADatabase/D3D8/4034.inl b/src/OOVPADatabase/D3D8/4034.inl index c11204e3..51b8f15e 100644 --- a/src/OOVPADatabase/D3D8/4034.inl +++ b/src/OOVPADatabase/D3D8/4034.inl @@ -1027,7 +1027,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x13, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived + XREF_ENTRY(0x13, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived // D3DDevice_SetVertexShader+0x06 : test bl, 1 { 0x06, 0xF6 }, diff --git a/src/OOVPADatabase/D3D8/4039.inl b/src/OOVPADatabase/D3D8/4039.inl index 1b162464..d06005da 100644 --- a/src/OOVPADatabase/D3D8/4039.inl +++ b/src/OOVPADatabase/D3D8/4039.inl @@ -157,7 +157,7 @@ OOVPA_SIG_MATCH( XREF_ENTRY(0x06, XREF_D3D_g_pDevice), // D3DDevice_SetSwapCallback+0x0A : mov [ecx+OFFSET_D3DDevice__m_SwapCallback],eax - XREF_ENTRY(0x0C, XREF_OFFSET_D3DDevice__m_SwapCallback), + XREF_ENTRY(0x0C, XREF_D3DDevice__m_SwapCallback_OFFSET), // D3DDevice_SetSwapCallback+0x00 : mov eax,[esp+0x04] OV_MATCH(0x00, 0x8B, 0x44, 0x24, 0x04), diff --git a/src/OOVPADatabase/D3D8/4134.inl b/src/OOVPADatabase/D3D8/4134.inl index 23a8643a..66ffcbc0 100644 --- a/src/OOVPADatabase/D3D8/4134.inl +++ b/src/OOVPADatabase/D3D8/4134.inl @@ -90,7 +90,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x13, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived + XREF_ENTRY(0x13, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived // D3DDevice_SetVertexShader+0x06 : test bl, 1 { 0x06, 0xF6 }, diff --git a/src/OOVPADatabase/D3D8/5028.inl b/src/OOVPADatabase/D3D8/5028.inl index 2688a8d5..e95f18b8 100644 --- a/src/OOVPADatabase/D3D8/5028.inl +++ b/src/OOVPADatabase/D3D8/5028.inl @@ -81,7 +81,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x13, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived + XREF_ENTRY(0x13, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived // D3DDevice_SetVertexShader+0x06 : test bl, 1 { 0x06, 0xF6 }, diff --git a/src/OOVPADatabase/D3D8/5455.inl b/src/OOVPADatabase/D3D8/5455.inl index 8ee96911..4cf23415 100644 --- a/src/OOVPADatabase/D3D8/5455.inl +++ b/src/OOVPADatabase/D3D8/5455.inl @@ -116,7 +116,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x13, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived (confirmed) + XREF_ENTRY(0x13, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived (confirmed) { 0x1E, 0x89 }, { 0x3E, 0x5F }, diff --git a/src/OOVPADatabase/D3D8LTCG/3911.inl b/src/OOVPADatabase/D3D8LTCG/3911.inl index 9920cf83..f1b3992e 100644 --- a/src/OOVPADatabase/D3D8LTCG/3911.inl +++ b/src/OOVPADatabase/D3D8LTCG/3911.inl @@ -868,7 +868,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader_0__LTCG_ebx1, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x0D, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived (confirmed) + XREF_ENTRY(0x0D, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived (confirmed) { 0x00, 0xF6 }, { 0x01, 0xC3 }, @@ -1249,7 +1249,7 @@ OOVPA_SIG_MATCH( XREF_ENTRY(0x01, XREF_D3D_g_pDevice), // D3DDevice_BlockUntilVerticalBlank+0x17 : add eax, OFFSET_D3DDevice__m_VerticalBlankEvent - XREF_ENTRY(0x18, XREF_OFFSET_D3DDevice__m_VerticalBlankEvent), + XREF_ENTRY(0x18, XREF_D3DDevice__m_VerticalBlankEvent_OFFSET), // D3DDevice_BlockUntilVerticalBlank+0x00 : mov eax,[D3D_g_pDevice] OV_MATCH(0x00, 0xA1), diff --git a/src/OOVPADatabase/D3D8LTCG/4039.inl b/src/OOVPADatabase/D3D8LTCG/4039.inl index 9b323be4..f68bc58a 100644 --- a/src/OOVPADatabase/D3D8LTCG/4039.inl +++ b/src/OOVPADatabase/D3D8LTCG/4039.inl @@ -447,7 +447,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x12, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived (unverified, yet should be align base on existing 4 bytes in signatures) + XREF_ENTRY(0x12, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived (unverified, yet should be align base on existing 4 bytes in signatures) { 0x00, 0x53 }, { 0x01, 0x8B }, diff --git a/src/OOVPADatabase/D3D8LTCG/4432.inl b/src/OOVPADatabase/D3D8LTCG/4432.inl index 0cc43a75..62cf9472 100644 --- a/src/OOVPADatabase/D3D8LTCG/4432.inl +++ b/src/OOVPADatabase/D3D8LTCG/4432.inl @@ -531,7 +531,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x13, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived (OK, yet unverified) + XREF_ENTRY(0x13, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived (OK, yet unverified) { 0x00, 0x51 }, { 0x01, 0x53 }, diff --git a/src/OOVPADatabase/D3D8LTCG/5233.inl b/src/OOVPADatabase/D3D8LTCG/5233.inl index 70edbac0..f18c8986 100644 --- a/src/OOVPADatabase/D3D8LTCG/5233.inl +++ b/src/OOVPADatabase/D3D8LTCG/5233.inl @@ -165,7 +165,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader_0__LTCG_ebx1, XRefOne) OOVPA_SIG_MATCH( - XREF_ENTRY(0x0E, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived (unverified, yet should be align base on existing 4 bytes in signatures) + XREF_ENTRY(0x0E, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived (unverified, yet should be align base on existing 4 bytes in signatures) { 0x00, 0x51 }, diff --git a/src/OOVPADatabase/D3D8_OOVPA.inl b/src/OOVPADatabase/D3D8_OOVPA.inl index 62845638..8136b19c 100644 --- a/src/OOVPADatabase/D3D8_OOVPA.inl +++ b/src/OOVPADatabase/D3D8_OOVPA.inl @@ -185,515 +185,540 @@ // * D3D8_OOVPA // ****************************************************************** OOVPATable D3D8_OOVPA[] = { + // Custom manual search by reverse engineering team (which will not be public to the user) REGISTER_OOVPAS_M(SYM_INT(D3DDevice__m_VerticalBlankEvent__GenericFragment), SYM_SIG(3911)), // This OOVPA signature is not a symbol. Read its note for more details. REGISTER_OOVPAS_M(SYM_INT(D3DRS_Stencils_and_Occlusion__GenericFragment), SYM_SIG(3911)), // This OOVPA signature is not a symbol. Read its note for more details. - REGISTER_OOVPAS(SYM_FUN(D3D_UpdateProjectionViewportTransform, STACK(/*default*/), PARAMS(/*unknown*/)), + // Variables + REGISTER_OOVPAS_M(SYM_VAR(D3D_g_pDevice), + SYM_SIG(0)), + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_PixelShader_OFFSET), + SYM_SIG(0)), +#if 0 // Unused + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_Textures_OFFSET), + SYM_SIG(0)), + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_Palettes_OFFSET), + SYM_SIG(0)), + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_RenderTarget_OFFSET), + SYM_SIG(0)), + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_DepthStencil_OFFSET), + SYM_SIG(0)), +#endif + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_VerticalBlankEvent_OFFSET), + SYM_SIG(0)), + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_SwapCallback_OFFSET), + SYM_SIG(0)), + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_VBlankCallback_OFFSET), + SYM_SIG(0)), + REGISTER_OOVPAS_M(SYM_VAR(D3DDevice__m_VertexShader_OFFSET), + SYM_SIG(0)), + + REGISTER_OOVPAS(SYM_FUN(D3D_UpdateProjectionViewportTransform, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3900, 3901)), // Final generic OOVPA: 4034; Removed: 0 // NOTE: 3901 is 4034 signature, except LTCG title been detected in 3925. - REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_InitializeFrameBuffers, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_InitializeFrameBuffers, STACK(/*default*/), PARAMS(PARAM(ecx, this))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 // thiscall - REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_FreeFrameBuffers, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_FreeFrameBuffers, STACK(/*default*/), PARAMS(PARAM(ecx, this), PARAM(stk, pPresentationParams))), SYM_SIG(3911, 4034, 5455)), // Final generic OOVPA: 5455; Removed: 0 // thiscall - REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_SetStateUP, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_SetStateUP, STACK(/*default*/), PARAMS(PARAM(ecx, this))), SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 // thiscall - REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_SetStateVB, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_SetStateVB, STACK(/*default*/), PARAMS(PARAM(ecx, this), PARAM(stk, unknown2))), // TODO: FIXME! SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 // thiscall - REGISTER_OOVPAS(SYM_FUN(D3D_CreateTexture, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_CreateTexture, STACK(/*default*/), PARAMS(PARAM(stk, Width), PARAM(stk, Height), PARAM(stk, Depth), PARAM(stk, Levels), PARAM(stk, Usage), PARAM(stk, Format), PARAM(stk, isCube), PARAM(stk, isVolume), PARAM(stk, ppTexture))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_MakeSpace, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911)), // NOTE: has multiple rets. - REGISTER_OOVPAS_D3D(SYM_FUN(CMiniport_CreateCtxDmaObject, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4034)), - REGISTER_OOVPAS_D3D(SYM_FUN(CMiniport_InitHardware, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4034, 5455)), - REGISTER_OOVPAS_D3D(SYM_FUN(CMiniport_IsFlipPending, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4242, 4627, 4928)), - REGISTER_OOVPAS(SYM_FUN(D3DBaseTexture_GetLevelCount, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DCubeTexture_GetCubeMapSurface2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_MakeSpace, STACK(/*default*/), PARAMS(PARAM(ecx, this))), + SYM_SIG(3911)), // thiscall // NOTE: has multiple rets. + REGISTER_OOVPAS_D3D(SYM_FUN(CMiniport_CreateCtxDmaObject, STACK(/*default*/), PARAMS(PARAM(ecx, this), PARAM(stk, unknown1), PARAM(stk, unknown2), PARAM(stk, unknown3), PARAM(stk, unknown4), PARAM(stk, unknown5))), // TODO: FIXME! + SYM_SIG(3911, 4034)), // thiscall + REGISTER_OOVPAS_D3D(SYM_FUN(CMiniport_InitHardware, STACK(/*default*/), PARAMS(PARAM(ecx, this))), + SYM_SIG(3911, 4034, 5455)), // thiscall + REGISTER_OOVPAS_D3D(SYM_FUN(CMiniport_IsFlipPending, STACK(/*default*/), PARAMS(PARAM(ecx, this))), + SYM_SIG(3911, 4242, 4627, 4928)), // thiscall + REGISTER_OOVPAS(SYM_FUN(D3DBaseTexture_GetLevelCount, STACK(/*default*/), PARAMS(PARAM(stk, pThis))), + SYM_SIG(3911)), + REGISTER_OOVPAS(SYM_FUN(D3DCubeTexture_GetCubeMapSurface2, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, FaceType), PARAM(stk, Level))), SYM_SIG(4627)), // Final generic OOVPA: 4627; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DCubeTexture_GetCubeMapSurface, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DCubeTexture_GetCubeMapSurface, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, FaceType), PARAM(stk, Level), PARAM(stk, ppCubeMapSurface))), SYM_SIG(3911, 4627)), // Final generic OOVPA: 4627; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DCubeTexture_LockRect, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911)), // Just calls Lock2DSurface (from 4134, 4432's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_AddRef, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DCubeTexture_LockRect, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, FaceType), PARAM(stk, Level), PARAM(stk, pLockedBox), PARAM(stk, pRect), PARAM(stk, Flags))), + SYM_SIG(3911)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_AddRef, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911, 4039, 4134, 4242, 4627, 5028, 5344, 5558, 5788)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_ApplyStateBlock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_ApplyStateBlock, STACK(/*default*/), PARAMS(PARAM(stk, Token))), SYM_SIG(3911, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_Begin, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_Begin, STACK(/*default*/), PARAMS(PARAM(stk, PrimitiveType))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginPush, STACK(8), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginPush, STACK(8), PARAMS(PARAM(stk, Count), PARAM(stk, ppPush))), SYM_SIG(4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginPush, STACK(4), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginPush, STACK(4), PARAMS(PARAM(stk, Count))), SYM_SIG(4531, 4627, 5028)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginPushBuffer, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4039)), // Not implemented yet. (from 5788's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginStateBig, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginPushBuffer, STACK(/*default*/), PARAMS(PARAM(stk, pPushBuffer))), + SYM_SIG(3911, 4039)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginStateBig, STACK(/*default*/), PARAMS(PARAM(stk, unknown1))), // TODO: FIXME! SYM_SIG(5028)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginStateBlock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginStateBlock, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911, 4134)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginVisibilityTest, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_BeginVisibilityTest, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_BlockOnFence, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_BlockOnFence, STACK(/*default*/), PARAMS(PARAM(stk, Fence))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_BlockUntilVerticalBlank, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_BlockUntilVerticalBlank, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CaptureStateBlock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CaptureStateBlock, STACK(/*default*/), PARAMS(PARAM(stk, Token))), SYM_SIG(3911, 4134)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_Clear, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_Clear, STACK(/*default*/), PARAMS(PARAM(stk, Count), PARAM(stk, pRects), PARAM(stk, Flags), PARAM(stk, Color), PARAM(stk, Z), PARAM(stk, Stencil))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CopyRects, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CopyRects, STACK(/*default*/), PARAMS(PARAM(stk, pSourceSurface), PARAM(stk, pSourceRectsArray), PARAM(stk, cRects), PARAM(stk, pDestinationSurface), PARAM(stk, pDestPointsArray))), SYM_SIG(3911, 4034, 4627, 5120)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateCubeTexture, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateCubeTexture, STACK(/*default*/), PARAMS(PARAM(stk, EdgeLength), PARAM(stk, Levels), PARAM(stk, Usage), PARAM(stk, Format), PARAM(stk, Pool), PARAM(stk, ppCubeTexture))), SYM_SIG(3911, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateImageSurface, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateImageSurface, STACK(/*default*/), PARAMS(PARAM(stk, Width), PARAM(stk, Height), PARAM(stk, Format), PARAM(stk, ppBackBuffer))), SYM_SIG(3911, 4034, 4627)), // TODO 4721,4928 (from 4627's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateIndexBuffer, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateIndexBuffer, STACK(/*default*/), PARAMS(PARAM(stk, Length), PARAM(stk, Usage), PARAM(stk, Format), PARAM(stk, Pool), PARAM(stk, ppIndexBuffer))), SYM_SIG(3911, 4627)), // TODO: This needs to be verified on 4361 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateIndexBuffer2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateIndexBuffer2, STACK(/*default*/), PARAMS(PARAM(stk, Length))), SYM_SIG(4627, 5344)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreatePalette, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4627)), // Called D3DDevice_CreatePalette2 (from 4627's comment) NOTE: Use D3DDevice_CreatePalette2 for 4627 and above - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreatePalette2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreatePalette, STACK(/*default*/), PARAMS(PARAM(stk, Size), PARAM(stk, ppPalette))), + SYM_SIG(3911, 4627)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreatePalette2, STACK(/*default*/), PARAMS(PARAM(stk, Size))), SYM_SIG(4627, 5344, 5455)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreatePixelShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreatePixelShader, STACK(/*default*/), PARAMS(PARAM(stk, pPSDef), PARAM(stk, pHandle))), SYM_SIG(3911, 5344)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateStateBlock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateStateBlock, STACK(/*default*/), PARAMS(PARAM(stk, Type), PARAM(stk, pToken))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateTexture2, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(4627, 4831)), // Was 4627 (from 5344's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateTexture, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4627)), // Called D3DDevice_CreateTexture2 (from 4627's comment) NOTE: Use D3DDevice_CreateTexture2 for 4627 and above - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateVertexBuffer, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateTexture2, STACK(/*default*/), PARAMS(PARAM(stk, Width), PARAM(stk, Height), PARAM(stk, Depth), PARAM(stk, Levels), PARAM(stk, Usage), PARAM(stk, Format), PARAM(stk, D3DResource))), + SYM_SIG(4627, 4831)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateTexture, STACK(/*default*/), PARAMS(PARAM(stk, Width), PARAM(stk, Height), PARAM(stk, Levels), PARAM(stk, Usage), PARAM(stk, Format), PARAM(stk, Pool), PARAM(stk, ppTexture))), SYM_SIG(3911, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateVertexBuffer2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateVertexBuffer, STACK(/*default*/), PARAMS(PARAM(stk, Length), PARAM(stk, Usage), PARAM(stk, FVF), PARAM(stk, Pool), PARAM(stk, ppVertexBuffer))), + SYM_SIG(3911, 4627)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateVertexBuffer2, STACK(/*default*/), PARAMS(PARAM(stk, Length))), SYM_SIG(4627, 5344, 5455)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateVertexShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateVertexShader, STACK(/*default*/), PARAMS(PARAM(stk, pDeclaration), PARAM(stk, pFunction), PARAM(stk, pHandle), PARAM(stk, Usage))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateVolumeTexture, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_CreateVolumeTexture, STACK(/*default*/), PARAMS(PARAM(stk, Width), PARAM(stk, Height), PARAM(stk, Depth), PARAM(stk, Levels), PARAM(stk, Usage), PARAM(stk, Format), PARAM(stk, Pool), PARAM(stk, ppVolumeTexture))), SYM_SIG(3911, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DeletePatch, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911)), // (TODO) (from 4034's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DeletePixelShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DeletePatch, STACK(/*default*/), PARAMS(PARAM(stk, Handle))), + SYM_SIG(3911)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DeletePixelShader, STACK(/*default*/), PARAMS(PARAM(stk, Handle))), SYM_SIG(3911, 5344)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DeleteStateBlock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DeleteStateBlock, STACK(/*default*/), PARAMS(PARAM(stk, Token))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DeleteVertexShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DeleteVertexShader, STACK(/*default*/), PARAMS(PARAM(stk, Handle))), SYM_SIG(3911, 5344)), // Final generic OOVPA: 5344; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawIndexedVertices, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawIndexedVertices, STACK(/*default*/), PARAMS(PARAM(stk, PrimitiveType), PARAM(stk, VertexCount), PARAM(stk, pIndexData))), SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawIndexedVerticesUP, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawIndexedVerticesUP, STACK(/*default*/), PARAMS(PARAM(stk, PrimitiveType), PARAM(stk, VertexCount), PARAM(stk, pIndexData), PARAM(stk, pVertexStreamZeroData), PARAM(stk, VertexStreamZeroStride))), SYM_SIG(3911, 5028, 5344)), // Final generic OOVPA: 5344; Removed: 0 // TODO: Need verify title with 4034 version. - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawRectPatch, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911)), // TODO: Unused? (from 4034's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawTriPatch, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawRectPatch, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, pNumSegs), PARAM(stk, pRectPatchInfo))), + SYM_SIG(3911)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawTriPatch, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, pNumSegs), PARAM(stk, pTriPatchInfo))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawVertices, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawVertices, STACK(/*default*/), PARAMS(PARAM(stk, PrimitiveType), PARAM(stk, StartVertex), PARAM(stk, VertexCount))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawVerticesUP, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_DrawVerticesUP, STACK(/*default*/), PARAMS(PARAM(stk, PrimitiveType), PARAM(stk, VertexCount), PARAM(stk, pVertexStreamZeroData), PARAM(stk, VertexStreamZeroStride))), SYM_SIG(3911, 4039, 5344)), // Final generic OOVPA: 5344; Removed: 0 // TODO: Need verify title with 4034 version. - REGISTER_OOVPAS(SYM_FUN(D3DDevice_EnableOverlay, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_EnableOverlay, STACK(/*default*/), PARAMS(PARAM(stk, Enable))), SYM_SIG(3911, 4134)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_End, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_End, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911, 4039, 5344)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_EndPush, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(4039)), // Was 4627 (from 5233's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_EndPushBuffer, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_EndPush, STACK(/*default*/), PARAMS(PARAM(stk, pPush))), + SYM_SIG(4039)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_EndPushBuffer, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_EndStateBlock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_EndStateBlock, STACK(/*default*/), PARAMS(PARAM(stk, pToken))), SYM_SIG(3911, 4134)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_EndVisibilityTest, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_EndVisibilityTest, STACK(/*default*/), PARAMS(PARAM(stk, Index))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_FlushVertexCache, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_FlushVertexCache, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911, 4134)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetBackBuffer, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4034, 4134, 4627)), // Called D3DDevice_GetBackBuffer2 (from 4627's comment) NOTE: Use D3DDevice_GetBackBuffer2 for 4627 and above - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetBackBuffer2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetBackBuffer, STACK(/*default*/), PARAMS(PARAM(stk, BackBuffer), PARAM(stk, Type), PARAM(stk, ppBackBuffer))), + SYM_SIG(3911, 4034, 4134, 4627)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetBackBuffer2, STACK(/*default*/), PARAMS(PARAM(stk, BackBuffer))), SYM_SIG(4627)), // Final generic OOVPA: 4627; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetBackMaterial, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetBackMaterial, STACK(/*default*/), PARAMS(PARAM(stk, pMaterial))), SYM_SIG(3911, 4039, 4134, 4627, 5344, 5558, 5788)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetCreationParameters, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetCreationParameters, STACK(/*default*/), PARAMS(PARAM(stk, pParameters))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDepthStencilSurface, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4627)), // Called D3DDevice_GetDepthStencilSurface2 (from 4627's comment) NOTE: Use D3DDevice_GetDepthStencilSurface2 for 4627 and above - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDepthStencilSurface2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDepthStencilSurface, STACK(/*default*/), PARAMS(PARAM(stk, ppZStencilSurface))), + SYM_SIG(3911, 4627)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDepthStencilSurface2, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDeviceCaps, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDeviceCaps, STACK(/*default*/), PARAMS(PARAM(stk, pCaps))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDisplayFieldStatus, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDisplayFieldStatus, STACK(/*default*/), PARAMS(PARAM(stk, pFieldStatus))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDisplayMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetDisplayMode, STACK(/*default*/), PARAMS(PARAM(stk, pModes))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetGammaRamp, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetGammaRamp, STACK(/*default*/), PARAMS(PARAM(stk, pRamp))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetLight, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetLight, STACK(/*default*/), PARAMS(PARAM(stk, Index), PARAM(stk, pLight))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetLightEnable, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetLightEnable, STACK(/*default*/), PARAMS(PARAM(stk, Index), PARAM(stk, pEnable))), SYM_SIG(3911, 5344)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetMaterial, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetMaterial, STACK(/*default*/), PARAMS(PARAM(stk, pMaterial))), SYM_SIG(3911, 4039, 4134, 4627, 5344, 5558, 5788)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetModelView, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetModelView, STACK(/*default*/), PARAMS(PARAM(stk, pModelView))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetOverlayUpdateStatus, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetOverlayUpdateStatus, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetPersistedSurface2, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(4928)), // For only on Unreal Championship (from 4627's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetPixelShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetPersistedSurface2, STACK(/*default*/), PARAMS(/*void*/)), + SYM_SIG(4928)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetPixelShader, STACK(/*default*/), PARAMS(PARAM(stk, Name), PARAM(stk, pHandle))), SYM_SIG(3911, 4039, 4134, 5028, 5558, 5788)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetProjectionViewportMatrix, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4134, 4627, 5344, 5558)), // For 5455 (from 5558's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetPushBufferOffset, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4627)), // TODO 4831 (from 4627's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetRenderTarget2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetProjectionViewportMatrix, STACK(/*default*/), PARAMS(PARAM(stk, pProjectionViewport))), + SYM_SIG(3911, 4134, 4627, 5344, 5558)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetPushBufferOffset, STACK(/*default*/), PARAMS(PARAM(stk, pOffset))), + SYM_SIG(3911, 4627)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetRenderTarget2, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(4627)), // Final generic OOVPA: 4627; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetRenderTarget, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4627)), // Final generic OOVPA: 4627; Removed: 0 // NOTE: Use D3DDevice_GetRenderTarget2 for 4627 and above - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetScissors, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetRenderTarget, STACK(/*default*/), PARAMS(PARAM(stk, ppRenderTarget))), + SYM_SIG(3911, 4627)), // Final generic OOVPA: 4627; Removed: 0 + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetScissors, STACK(/*default*/), PARAMS(PARAM(stk, pCount), PARAM(stk, pExclusive), PARAM(stk, pRects))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetShaderConstantMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetShaderConstantMode, STACK(/*default*/), PARAMS(PARAM(stk, pMode))), SYM_SIG(3911, 4134, 4627, 5028, 5344, 5558, 5788)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetStreamSource2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetStreamSource2, STACK(/*default*/), PARAMS(PARAM(stk, StreamNumber), PARAM(stk, pStride))), SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetTexture2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetTexture2, STACK(/*default*/), PARAMS(PARAM(stk, Stage))), SYM_SIG(3911, 4134, 4627, 5344, 5558, 5788)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetTile, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetTile, STACK(/*default*/), PARAMS(PARAM(stk, Index), PARAM(stk, pTile))), SYM_SIG(3911, 5455)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetTransform, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetTransform, STACK(/*default*/), PARAMS(PARAM(stk, State), PARAM(stk, pMatrix))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShader, STACK(/*default*/), PARAMS(PARAM(stk, pHandle))), SYM_SIG(3911, 4039, 4134, 5028, 5558, 5788)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderConstant, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderConstant, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, pConstantData), PARAM(stk, ConstantCount))), SYM_SIG(3911, 4039, 5028)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderDeclaration, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderDeclaration, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, pData), PARAM(stk, pSizeOfData))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderFunction, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderFunction, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, pData), PARAM(stk, pSizeOfData))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderInput, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderInput, STACK(/*default*/), PARAMS(PARAM(stk, pHandle), PARAM(stk, pStreamCount), PARAM(stk, pStreamInputs))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderSize, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderSize, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, pSize))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderType, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVertexShaderType, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, pType))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetViewport, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetViewport, STACK(/*default*/), PARAMS(PARAM(stk, pViewport))), SYM_SIG(3911, 5455)), // Was 4627 (from 5344's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetViewportOffsetAndScale, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetViewportOffsetAndScale, STACK(/*default*/), PARAMS(PARAM(stk, pOffset), PARAM(stk, pScale))), SYM_SIG(4432)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVisibilityTestResult, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_GetVisibilityTestResult, STACK(/*default*/), PARAMS(PARAM(stk, Index), PARAM(stk, pResult), PARAM(stk, pTimeStamp))), SYM_SIG(3911, 5233)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_InsertCallback, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_InsertCallback, STACK(/*default*/), PARAMS(PARAM(stk, Type), PARAM(stk, pCallback), PARAM(stk, Context))), SYM_SIG(3911, 4134, 5028)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_InsertFence, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_InsertFence, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_IsBusy, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_IsBusy, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911, 5028)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_IsFencePending, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_IsFencePending, STACK(/*default*/), PARAMS(PARAM(stk, Fence))), SYM_SIG(3911, 4039, 5028)), - REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_KickOff, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_D3D(SYM_FUN(CDevice_KickOff, STACK(/*default*/), PARAMS(PARAM(ecx, this))), SYM_SIG(3911, 4034, 4531, 5028, 5455)), // Final generic OOVPA: 5455; Removed: 0 // thiscall - REGISTER_OOVPAS(SYM_FUN(D3DDevice_KickPushBuffer, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_KickPushBuffer, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_LightEnable, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_LightEnable, STACK(/*default*/), PARAMS(PARAM(stk, Index), PARAM(stk, bEnable))), SYM_SIG(3911, 5344)), // Was 5233 (from 5344's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_LoadVertexShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_LoadVertexShader, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, Address))), SYM_SIG(3911, 4034, 4627, 5028)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_LoadVertexShaderProgram, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_LoadVertexShaderProgram, STACK(/*default*/), PARAMS(PARAM(stk, pFunction), PARAM(stk, Address))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_MakeSpace, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_MakeSpace, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(4034, 4134)), // NOTE: LTCG has duplicate functions, need to find out how to resolve this issue with cross referencing. - REGISTER_OOVPAS(SYM_FUN(D3DDevice_PersistDisplay, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_PersistDisplay, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911, 4039, 4627, 4831)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_Present, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_Present, STACK(/*default*/), PARAMS(PARAM(stk, pSourceRect), PARAM(stk, pDestRect), PARAM(stk, pUnused3), PARAM(stk, pUnused4))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_PrimeVertexCache, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_PrimeVertexCache, STACK(/*default*/), PARAMS(PARAM(stk, VertexCount), PARAM(stk, pIndexData))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_Release, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_Release, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_Reset, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_Reset, STACK(/*default*/), PARAMS(PARAM(stk, pPresentationParameters))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_RunPushBuffer, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_RunPushBuffer, STACK(/*default*/), PARAMS(PARAM(stk, pPushBuffer), PARAM(stk, pFixup))), SYM_SIG(3911, 4039, 4627, 5120, 5558)), // for 5455 (from 5558's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_RunVertexStateShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_RunVertexStateShader, STACK(/*default*/), PARAMS(PARAM(stk, Address), PARAM(stk, pData))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SelectVertexShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SelectVertexShader, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, Address))), SYM_SIG(3911, 4034, 5455)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SelectVertexShaderDirect, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SelectVertexShaderDirect, STACK(/*default*/), PARAMS(PARAM(stk, pVAF), PARAM(stk, Address))), SYM_SIG(4361)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetBackBufferScale, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetBackBufferScale, STACK(/*default*/), PARAMS(PARAM(stk, x), PARAM(stk, y))), SYM_SIG(4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetBackMaterial, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetBackMaterial, STACK(/*default*/), PARAMS(PARAM(stk, pMaterial))), SYM_SIG(3911, 4039, 4134, 4627, 5344, 5558, 5788)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetDepthClipPlanes, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetDepthClipPlanes, STACK(/*default*/), PARAMS(PARAM(stk, Near), PARAM(stk, Far), PARAM(stk, Flags))), SYM_SIG(4432)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetFlickerFilter, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetFlickerFilter, STACK(/*default*/), PARAMS(PARAM(stk, Filter))), SYM_SIG(3911, 4034, 4134)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetGammaRamp, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetGammaRamp, STACK(/*default*/), PARAMS(PARAM(stk, dwFlags), PARAM(stk, pRamp))), SYM_SIG(3911, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetIndices, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetIndices, STACK(/*default*/), PARAMS(PARAM(stk, pIndexData), PARAM(stk, BaseVertexIndex))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetLight, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetLight, STACK(/*default*/), PARAMS(PARAM(stk, Index), PARAM(stk, pLight))), SYM_SIG(3911, 5344)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetMaterial, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetMaterial, STACK(/*default*/), PARAMS(PARAM(stk, pMaterial))), SYM_SIG(3911, 4034, 4134, 4627, 5344, 5558, 5788)), // Was 4627 (from 5344's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetModelView, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetModelView, STACK(/*default*/), PARAMS(PARAM(stk, pModelView), PARAM(stk, pInverseModelView), PARAM(stk, pComposite))), SYM_SIG(3911, 4039, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetPalette, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetPalette, STACK(/*default*/), PARAMS(PARAM(stk, Stage), PARAM(stk, pPalette))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetPixelShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetPixelShader, STACK(/*default*/), PARAMS(PARAM(stk, Handle))), SYM_SIG(3911, 4034, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetPixelShaderConstant, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetPixelShaderConstant, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, pConstantData), PARAM(stk, ConstantCount))), SYM_SIG(3911, 4831)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetPixelShaderProgram, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetPixelShaderProgram, STACK(/*default*/), PARAMS(PARAM(stk, pPSDef))), SYM_SIG(3911)), - REGISTER_OOVPAS_M(SYM_FUN(D3DDevice_SetRenderState_Simple, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS_M(SYM_FUN(D3DDevice_SetRenderStateNotInline, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_M(SYM_FUN(D3DDevice_SetRenderState_Simple, STACK(/*default*/), PARAMS(PARAM(ecx, Method), PARAM(edx, Value))), + SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 // fastcall + REGISTER_OOVPAS_M(SYM_FUN(D3DDevice_SetRenderStateNotInline, STACK(/*default*/), PARAMS(PARAM(stk, State), PARAM(stk, Value))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 // NOTE: Must be after D3DDevice_SetRenderState_Simple. // NOTE: Some or most of render state signatures below must be after D3DDevice_SetRenderStateNotInline. - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState, STACK(/*default*/), PARAMS(PARAM(stk, State), PARAM(stk, Value))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState2, STACK(/*default*/), PARAMS(PARAM(stk, State), PARAM(stk, Value))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 // NOTE: There is a verified duplicate function. - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_BackFillMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_BackFillMode, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS_C(SYM_FUN(D3DDevice_SetRenderState_CullMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_C(SYM_FUN(D3DDevice_SetRenderState_CullMode, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_Deferred, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_DoNotCullUncompressed, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_Deferred, STACK(/*default*/), PARAMS(PARAM(ecx, State), PARAM(edx, Value))), + SYM_SIG(3911)), // fastcall + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_DoNotCullUncompressed, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_Dxt1NoiseEnable, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_Dxt1NoiseEnable, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_EdgeAntiAlias, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_EdgeAntiAlias, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS_M(SYM_FUN(D3DDevice_SetRenderState_FillMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_M(SYM_FUN(D3DDevice_SetRenderState_FillMode, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_FogColor, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_FogColor, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_FrontFace, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_FrontFace, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_LineWidth, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_LineWidth, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_LogicOp, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_LogicOp, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleAntiAlias, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleAntiAlias, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4627)), // Final generic OOVPA: 4627; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleMask, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleMask, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4627)), // Final generic OOVPA: 4627; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleMode, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleType, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_MultiSampleType, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 3925)), // Final generic OOVPA: 3925 Removed: 4034 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_NormalizeNormals, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_NormalizeNormals, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_OcclusionCullEnable, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_OcclusionCullEnable, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 1024)), // Final generic OOVPA: 3911 (LTCG) / 4034 (non-LTCG); Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_PSTextureModes, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_PSTextureModes, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_RopZCmpAlwaysRead, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_RopZCmpAlwaysRead, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_RopZRead, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_RopZRead, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_SampleAlpha, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_SampleAlpha, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(4627)), // Final generic OOVPA: 4627; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_ShadowFunc, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_ShadowFunc, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_StencilCullEnable, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_StencilCullEnable, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 1024)), // Final generic OOVPA: 3911 (LTCG) / 4034 (non-LTCG); Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_StencilEnable, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_StencilEnable, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034, 5849)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_StencilFail, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_StencilFail, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034, 5849)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_TextureFactor, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_TextureFactor, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_TwoSidedLighting, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_TwoSidedLighting, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034, 5344)), // Final generic OOVPA: 5344; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_VertexBlend, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_VertexBlend, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_YuvEnable, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_YuvEnable, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 1024)), // Final generic OOVPA: 3911 (LTCG) / 4034 (non-LTCG); Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_ZBias, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_ZBias, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_ZEnable, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderState_ZEnable, STACK(/*default*/), PARAMS(PARAM(stk, Value))), SYM_SIG(3911, 4034, 4134, 4432)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderTarget, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderTarget, STACK(/*default*/), PARAMS(PARAM(stk, pRenderTarget), PARAM(stk, pNewZStencil))), SYM_SIG(3911, 3947, 4034, 4039, 4627, 5344, 5455)), // Final generic OOVPA: 5344/5455; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderTargetFast, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetRenderTargetFast, STACK(/*default*/), PARAMS(PARAM(stk, pRenderTarget), PARAM(stk, pNewZStencil), PARAM(stk, Flags))), SYM_SIG(5233)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetScissors, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetScissors, STACK(/*default*/), PARAMS(PARAM(stk, Count), PARAM(stk, Exclusive), PARAM(stk, pRects))), SYM_SIG(3911, 5344, 5558)), // Was 5233 (from 5344's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetScreenSpaceOffset, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetScreenSpaceOffset, STACK(/*default*/), PARAMS(PARAM(stk, x), PARAM(stk, y))), SYM_SIG(4034, 5455)), // Final generic OOVPA: 5455; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetShaderConstantMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetShaderConstantMode, STACK(/*default*/), PARAMS(PARAM(stk, Mode))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetSoftDisplayFilter, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetSoftDisplayFilter, STACK(/*default*/), PARAMS(PARAM(stk, Enable))), SYM_SIG(3911, 4034, 4134)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetStipple, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetStipple, STACK(/*default*/), PARAMS(PARAM(stk, pPattern))), SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetStreamSource, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetStreamSource, STACK(/*default*/), PARAMS(PARAM(stk, StreamNumber), PARAM(stk, pStreamData), PARAM(stk, Stride))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetSwapCallback, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetSwapCallback, STACK(/*default*/), PARAMS(PARAM(stk, pCallback))), SYM_SIG(4039)), // Final generic OOVPA: 4039; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTexture, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTexture, STACK(/*default*/), PARAMS(PARAM(stk, Stage), PARAM(stk, pTexture))), SYM_SIG(3911, 4034, 4361, 4831)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTextureStageStateNotInline, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTextureStageStateNotInline, STACK(/*default*/), PARAMS(PARAM(stk, Stage), PARAM(stk, Type), PARAM(stk, Value))), SYM_SIG(3911, 4034)), // Final generic OOVPA: 4034; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTextureState_BorderColor, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTextureState_BorderColor, STACK(/*default*/), PARAMS(PARAM(stk, Stage), PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTextureState_BumpEnv, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTextureState_BumpEnv, STACK(/*default*/), PARAMS(PARAM(stk, Stage), PARAM(stk, Type), PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTextureState_ColorKeyColor, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTextureState_ColorKeyColor, STACK(/*default*/), PARAMS(PARAM(stk, Stage), PARAM(stk, Value))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS_C(SYM_FUN(D3DDevice_SetTextureState_TexCoordIndex, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_C(SYM_FUN(D3DDevice_SetTextureState_TexCoordIndex, STACK(/*default*/), PARAMS(PARAM(stk, Stage), PARAM(stk, Value))), SYM_SIG(3911, 4034, 4242, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTile, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTile, STACK(/*default*/), PARAMS(PARAM(stk, Index), PARAM(stk, pTile))), SYM_SIG(3911, 4034, 4627)), // Then it has changed calls ?SetTileNoWait@D3D@@YGXKPBU_D3DTILE@@@Z in XDK 4627 and higher. - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTransform, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetTransform, STACK(/*default*/), PARAMS(PARAM(stk, State), PARAM(stk, pMatrix))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_MultiplyTransform, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_MultiplyTransform, STACK(/*default*/), PARAMS(PARAM(stk, State), PARAM(stk, pMatrix))), SYM_SIG(3911, 4034)), // TODO: Verify 4034 is correct - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData2f, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4039)), // Was 4627 (from 5344's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData2s, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData2f, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, a), PARAM(stk, b))), + SYM_SIG(3911, 4039)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData2s, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, a), PARAM(stk, b))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData4f, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData4f, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, a), PARAM(stk, b), PARAM(stk, c), PARAM(stk, d))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData4s, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData4s, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, a), PARAM(stk, b), PARAM(stk, c), PARAM(stk, d))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData4ub, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexData4ub, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, a), PARAM(stk, b), PARAM(stk, c), PARAM(stk, d))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexDataColor, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexDataColor, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, Color))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShader, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShader, STACK(/*default*/), PARAMS(PARAM(stk, Handle))), SYM_SIG(3911, 4034, 4134, 5028, 5455)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstant, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstant, STACK(/*default*/), PARAMS(PARAM(stk, Register), PARAM(stk, pConstantData), PARAM(stk, ConstantCount))), SYM_SIG(3911, 4034, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstant1, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstant1Fast, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstant4, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstantNotInline, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstant1, STACK(/*default*/), PARAMS(PARAM(ecx, Register), PARAM(edx, pConstantData))), + SYM_SIG(4627)), // fastcall + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstant1Fast, STACK(/*default*/), PARAMS(PARAM(ecx, Register), PARAM(edx, pConstantData))), + SYM_SIG(4627)), // fastcall + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstant4, STACK(/*default*/), PARAMS(PARAM(ecx, Register), PARAM(edx, pConstantData))), + SYM_SIG(4627)), // fastcall + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstantNotInline, STACK(/*default*/), PARAMS(PARAM(ecx, Register), PARAM(edi, pConstantData), PARAM(stk, ConstantCount))), SYM_SIG(4627, 5028, 5558)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstantNotInlineFast, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderConstantNotInlineFast, STACK(/*default*/), PARAMS(PARAM(ecx, Register), PARAM(edi, pConstantData), PARAM(stk, ConstantCount))), SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderInput, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderInput, STACK(/*default*/), PARAMS(PARAM(stk, Handle), PARAM(stk, StreamCount), PARAM(stk, pStreamInputs))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderInputDirect, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVertexShaderInputDirect, STACK(/*default*/), PARAMS(PARAM(stk, pVAF), PARAM(stk, StreamCount), PARAM(stk, pStreamInputs))), SYM_SIG(4361)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVerticalBlankCallback, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetVerticalBlankCallback, STACK(/*default*/), PARAMS(PARAM(stk, pCallback))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetViewport, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SetViewport, STACK(/*default*/), PARAMS(PARAM(stk, pViewport))), SYM_SIG(3911, 4034, 5344, 5455)), // Was 5233 (from 5344's comment) - REGISTER_OOVPAS(SYM_FUN(D3DDevice_Suspend, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_Suspend, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3DDevice_Swap, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_Swap, STACK(/*default*/), PARAMS(PARAM(stk, Flags))), SYM_SIG(4034, 4531, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_SwitchTexture, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DDevice_UpdateOverlay, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DDevice_SwitchTexture, STACK(/*default*/), PARAMS(PARAM(ecx, Method), PARAM(edx, Data), PARAM(stk, Format))), + SYM_SIG(3911)), // fastcall + REGISTER_OOVPAS(SYM_FUN(D3DDevice_UpdateOverlay, STACK(/*default*/), PARAMS(PARAM(stk, pSurface), PARAM(stk, SrcRect), PARAM(stk, DstRect), PARAM(stk, EnableColorKey), PARAM(stk, ColorKey))), SYM_SIG(3911, 4531, 5233)), - REGISTER_OOVPAS(SYM_FUN(D3DPalette_Lock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DPalette_Lock, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, ppColors), PARAM(stk, Flags))), SYM_SIG(3911, 4531, 4627)), // Called D3DPalette_Lock2 (from 4627's comment) NOTE: Use D3DPalette_Lock2 for 4627 and above - REGISTER_OOVPAS(SYM_FUN(D3DPalette_Lock2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DPalette_Lock2, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, Flags))), SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DResource_AddRef, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DResource_AddRef, STACK(/*default*/), PARAMS(PARAM(stk, pThis))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DResource_BlockUntilNotBusy, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DResource_BlockUntilNotBusy, STACK(/*default*/), PARAMS(PARAM(stk, pThis))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DResource_GetType, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DResource_GetType, STACK(/*default*/), PARAMS(PARAM(stk, pThis))), SYM_SIG(3911, 4034)), // Probably not even necessary... (from 3925's comment) // I forget why I had this in here... (from 5028's comment) - REGISTER_OOVPAS(SYM_FUN(D3DResource_IsBusy, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DResource_IsBusy, STACK(/*default*/), PARAMS(PARAM(stk, pThis))), SYM_SIG(3911, 4039)), - REGISTER_OOVPAS(SYM_FUN(D3DResource_Register, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DResource_Register, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, pBase))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DResource_Release, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DResource_Release, STACK(/*default*/), PARAMS(PARAM(stk, pThis))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DSurface_GetDesc, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DSurface_GetDesc, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, pDesc))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DSurface_LockRect, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DSurface_LockRect, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, pLockedRect), PARAM(stk, pRect), PARAM(stk, Flags))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DTexture_GetSurfaceLevel, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DTexture_GetSurfaceLevel, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, Level), PARAM(stk, ppSurfaceLevel))), SYM_SIG(3911, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DTexture_GetSurfaceLevel2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DTexture_GetSurfaceLevel2, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, Level))), SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DTexture_LockRect, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DTexture_LockRect, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, Level), PARAM(stk, pLockedRect), PARAM(stk, pRect), PARAM(stk, Flags))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DVertexBuffer_GetDesc, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DVertexBuffer_GetDesc, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, pDesc))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3DVertexBuffer_Lock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DVertexBuffer_Lock, STACK(/*default*/), PARAMS(PARAM(stk, pVertexBuffer), PARAM(stk, OffsetToLock), PARAM(stk, SizeToLock), PARAM(stk, ppbData), PARAM(stk, Flags))), SYM_SIG(3911, 4034, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3DVertexBuffer_Lock2, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DVertexBuffer_Lock2, STACK(/*default*/), PARAMS(PARAM(stk, pVertexBuffer), PARAM(stk, Flags))), SYM_SIG(4627)), - REGISTER_OOVPAS(SYM_FUN(D3DVolumeTexture_LockBox, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3DVolumeTexture_LockBox, STACK(/*default*/), PARAMS(PARAM(stk, pThis), PARAM(stk, Level), PARAM(stk, pLockedVolume), PARAM(stk, pBox), PARAM(stk, Flags))), SYM_SIG(3911)), // Just calls Lock3DSurface (from 4134, 4432's comment) - REGISTER_OOVPAS(SYM_FUN(D3D_AllocContiguousMemory, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_AllocContiguousMemory, STACK(/*default*/), PARAMS(PARAM(stk, dwSize), PARAM(stk, dwAllocAttributes))), SYM_SIG(3911, 5455)), // Final generic OOVPA: 5455; Removed: 0 // Just calls MmAllocateContiguousMemory. - REGISTER_OOVPAS(SYM_FUN(D3D_BlockOnResource, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_BlockOnResource, STACK(/*default*/), PARAMS(PARAM(stk, pResource))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3D_BlockOnTime, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4034, 4627, 5028, 5558)), - REGISTER_OOVPAS_D3D(SYM_FUN(CMiniport_GetDisplayCapabilities, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_BlockOnTime, STACK(/*default*/), PARAMS(PARAM(stk, unknown1), PARAM(stk, unknown2))), // TODO: FIXME! Both parameters do change over time. Likely may need a separate group... + SYM_SIG(3911, 4034, 4627, 5028, 5558)), // NOTE: unknown2 parameter can be different value from same caller function over time. + REGISTER_OOVPAS_D3D(SYM_FUN(CMiniport_GetDisplayCapabilities, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_CheckDeviceFormat, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_CheckDeviceFormat, STACK(/*default*/), PARAMS(PARAM(stk, Adapter), PARAM(stk, DeviceType), PARAM(stk, AdapterFormat), PARAM(stk, Usage), PARAM(stk, RType), PARAM(stk, CheckFormat))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_ClearStateBlockFlags, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_ClearStateBlockFlags, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), - REGISTER_OOVPAS_M(SYM_FUN(D3D_CommonSetDebugRegisters, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_M(SYM_FUN(D3D_CommonSetDebugRegisters, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(D3D_CommonSetRenderTarget, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_CommonSetRenderTarget, STACK(/*default*/), PARAMS(PARAM(stk, pRenderTarget), PARAM(stk, pNewZStencil), PARAM(stk, pUnknown3))), SYM_SIG(4627, 5028)), // Final generic OOVPA: 4627; Removed: 5344 - REGISTER_OOVPAS(SYM_FUN(D3D_CommonSetMultiSampleModeAndScale, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(5344)), // Final generic OOVPA: 5344; Removed: 0 // fastcall (2 params) - REGISTER_OOVPAS(SYM_FUN(D3D_CreateStandAloneSurface, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_CommonSetMultiSampleModeAndScale, STACK(/*default*/), PARAMS(PARAM(ecx, this), PARAM(edx, pViewport))), + SYM_SIG(5344)), // Final generic OOVPA: 5344; Removed: 0 // fastcall + REGISTER_OOVPAS(SYM_FUN(D3D_CreateStandAloneSurface, STACK(/*default*/), PARAMS(PARAM(stk, unknown1), PARAM(stk, unknown2), PARAM(stk, unknown3), PARAM(stk, unknown4))), // TODO: FIXME! SYM_SIG(4034)), - REGISTER_OOVPAS(SYM_FUN(D3D_DestroyResource, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_DestroyResource, STACK(/*default*/), PARAMS(PARAM(stk, pResource))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_EnumAdapterModes, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_EnumAdapterModes, STACK(/*default*/), PARAMS(PARAM(stk, Adapter), PARAM(stk, Mode), PARAM(stk, pMode))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_GetAdapterDisplayMode, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_GetAdapterDisplayMode, STACK(/*default*/), PARAMS(PARAM(stk, Adapter), PARAM(stk, pMode))), SYM_SIG(3911, 4627)), - REGISTER_OOVPAS(SYM_FUN(D3D_GetAdapterIdentifier, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_GetAdapterIdentifier, STACK(/*default*/), PARAMS(PARAM(stk, Adapter), PARAM(stk, Flags), PARAM(stk, pIdentifier))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_GetAdapterModeCount, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_GetAdapterModeCount, STACK(/*default*/), PARAMS(PARAM(stk, Adapter), PARAM(stk, Format))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_GetDeviceCaps, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_GetDeviceCaps, STACK(/*default*/), PARAMS(PARAM(stk, Adapter), PARAM(stk, DeviceType), PARAM(stk, pCaps))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_KickOffAndWaitForIdle, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_KickOffAndWaitForIdle, STACK(/*default*/), PARAMS(/*void*/)), SYM_SIG(3911, 4034, 4627, 5028)), - REGISTER_OOVPAS(SYM_FUN(D3D_LazySetPointParams, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_LazySetPointParams, STACK(/*default*/), PARAMS(PARAM(stk, Device))), SYM_SIG(3911, 4034)), - REGISTER_OOVPAS(SYM_FUN(D3D_RecordStateBlock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_RecordStateBlock, STACK(/*default*/), PARAMS(PARAM(stk, pToken))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_SetFence, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_SetFence, STACK(/*default*/), PARAMS(PARAM(stk, Flags))), SYM_SIG(3911, 4034, 4134, 5028, 5558)), - REGISTER_OOVPAS(SYM_FUN(D3D_SetPushBufferSize, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_SetPushBufferSize, STACK(/*default*/), PARAMS(PARAM(stk, PushBufferSize), PARAM(stk, KickOffSize))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_SetTileNoWait, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_SetTileNoWait, STACK(/*default*/), PARAMS(PARAM(stk, Index), PARAM(stk, pTile))), SYM_SIG(4627, 5455)), // Final generic OOVPA: 5455; Removed: 0 - REGISTER_OOVPAS(SYM_FUN(Direct3D_CheckDeviceMultiSampleType, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(Direct3D_CheckDeviceMultiSampleType, STACK(/*default*/), PARAMS(PARAM(stk, Adapter), PARAM(stk, DeviceType), PARAM(stk, SurfaceFormat), PARAM(stk, Windowed), PARAM(stk, MultiSampleType))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(Direct3D_CreateDevice, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(Direct3D_CreateDevice, STACK(/*default*/), PARAMS(PARAM(stk, Adapter), PARAM(stk, DeviceType), PARAM(stk, hFocusWindow), PARAM(stk, BehaviorFlags), PARAM(stk, pPresentationParameters), PARAM(stk, ppReturnedDeviceInterface))), SYM_SIG(3911, 5028)), - REGISTER_OOVPAS_D3D8(SYM_FUN(Get2DSurfaceDesc, STACK(/*default*/), PARAMS(/*unknown*/)), - SYM_SIG(3911, 4034)), // Was 5233 (from 5344's comment) - REGISTER_OOVPAS_D3D8(SYM_FUN(Lock2DSurface, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_D3D8(SYM_FUN(Get2DSurfaceDesc, STACK(/*default*/), PARAMS(PARAM(stk, pPixelContainer), PARAM(stk, dwLevel), PARAM(stk, pDesc))), + SYM_SIG(3911, 4034)), + REGISTER_OOVPAS_D3D8(SYM_FUN(Lock2DSurface, STACK(/*default*/), PARAMS(PARAM(stk, pPixelContainer), PARAM(stk, FaceType), PARAM(stk, Level), PARAM(stk, pLockedRect), PARAM(stk, pRect), PARAM(stk, Flags))), SYM_SIG(3911)), - REGISTER_OOVPAS_D3D8(SYM_FUN(Lock3DSurface, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS_D3D8(SYM_FUN(Lock3DSurface, STACK(/*default*/), PARAMS(PARAM(stk, pPixelContainer), PARAM(stk, Level), PARAM(stk, pLockedVolume), PARAM(stk, pBox), PARAM(stk, Flags))), SYM_SIG(3911)), - REGISTER_OOVPAS(SYM_FUN(D3D_MakeRequestedSpace, STACK(4), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_MakeRequestedSpace, STACK(4), PARAMS(PARAM(stk, RequestedSpace))), SYM_SIG(4034)), // Final generic OOVPA: 4034??; Removed: 4134 // NOTE: has multiple rets. - REGISTER_OOVPAS(SYM_FUN(D3D_MakeRequestedSpace, STACK(8), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(D3D_MakeRequestedSpace, STACK(8), PARAMS(PARAM(stk, MinimumSpace), PARAM(stk, RequestedSpace))), SYM_SIG(4134, 5558)), // Final generic OOVPA: 5558; Removed: 0 // NOTE: has multiple rets. - REGISTER_OOVPAS(SYM_FUN(XMETAL_StartPush, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(XMETAL_StartPush, STACK(/*default*/), PARAMS(PARAM(stk, pDevice))), SYM_SIG(3911)), // Final generic OOVPA: 3911; Removed: 4034?? - REGISTER_OOVPAS(SYM_FUN(IDirect3DVertexBuffer8_Lock, STACK(/*default*/), PARAMS(/*unknown*/)), + REGISTER_OOVPAS(SYM_FUN(IDirect3DVertexBuffer8_Lock, STACK(/*default*/), PARAMS(PARAM(stk, pVertexBuffer), PARAM(stk, OffsetToLock), PARAM(stk, SizeToLock), PARAM(stk, ppbData), PARAM(stk, Flags))), SYM_SIG(4627)), }; diff --git a/src/lib/libXbSymbolDatabase.c b/src/lib/libXbSymbolDatabase.c index 186250f8..cbab503f 100644 --- a/src/lib/libXbSymbolDatabase.c +++ b/src/lib/libXbSymbolDatabase.c @@ -874,17 +874,17 @@ bool XbSymbolDatabase_CreateXbSymbolContext(XbSymbolContextHandle* ppHandle, // D3D pContext->xref_database[XREF_D3DTSS_TEXCOORDINDEX] = XREF_ADDR_DERIVE; //In use pContext->xref_database[XREF_D3D_g_Stream] = XREF_ADDR_DERIVE; //In use - pContext->xref_database[XREF_OFFSET_D3DDevice__m_PixelShader] = XREF_ADDR_DERIVE; // - pContext->xref_database[XREF_OFFSET_D3DDevice__m_Textures] = XREF_ADDR_DERIVE; // - pContext->xref_database[XREF_OFFSET_D3DDevice__m_Palettes] = XREF_ADDR_DERIVE; // - pContext->xref_database[XREF_OFFSET_D3DDevice__m_RenderTarget] = XREF_ADDR_DERIVE; // - pContext->xref_database[XREF_OFFSET_D3DDevice__m_DepthStencil] = XREF_ADDR_DERIVE; // - pContext->xref_database[XREF_OFFSET_D3DDevice__m_VerticalBlankEvent] = XREF_ADDR_DERIVE; //In use + pContext->xref_database[XREF_D3DDevice__m_PixelShader_OFFSET] = XREF_ADDR_DERIVE; // + pContext->xref_database[XREF_D3DDevice__m_Textures_OFFSET] = XREF_ADDR_DERIVE; // + pContext->xref_database[XREF_D3DDevice__m_Palettes_OFFSET] = XREF_ADDR_DERIVE; // + pContext->xref_database[XREF_D3DDevice__m_RenderTarget_OFFSET] = XREF_ADDR_DERIVE; // + pContext->xref_database[XREF_D3DDevice__m_DepthStencil_OFFSET] = XREF_ADDR_DERIVE; // + pContext->xref_database[XREF_D3DDevice__m_VerticalBlankEvent_OFFSET] = XREF_ADDR_DERIVE; //In use #if 0 // - pContext->xref_database[XREF_OFFSET_D3DDevice__m_SwapCallback] = XREF_ADDR_UNDETERMINED; //In use // Manual check only. - pContext->xref_database[XREF_OFFSET_D3DDevice__m_VBlankCallback] = XREF_ADDR_UNDETERMINED; //In use // Manual check only. + pContext->xref_database[XREF_D3DDevice__m_SwapCallback_OFFSET] = XREF_ADDR_UNDETERMINED; //In use // Manual check only. + pContext->xref_database[XREF_D3DDevice__m_VBlankCallback_OFFSET] = XREF_ADDR_UNDETERMINED; //In use // Manual check only. #endif // - pContext->xref_database[XREF_OFFSET_D3DDevice__m_VertexShader] = XREF_ADDR_DERIVE; //In use + pContext->xref_database[XREF_D3DDevice__m_VertexShader_OFFSET] = XREF_ADDR_DERIVE; //In use // JVS // pContext->xref_database[XREF_JVS_g_pPINSA] = XREF_ADDR_DERIVE; //In use pContext->xref_database[XREF_JVS_g_pPINSB] = XREF_ADDR_DERIVE; //In use diff --git a/src/lib/manual_d3d8__ltcg.h b/src/lib/manual_d3d8__ltcg.h index 5b112d2b..d5d0e0e1 100644 --- a/src/lib/manual_d3d8__ltcg.h +++ b/src/lib/manual_d3d8__ltcg.h @@ -550,6 +550,17 @@ static bool manual_scan_section_dx8_register_D3DRS_end_of_list(iXbSymbolContext* } internal_RegisterSymbol(pContext, pLibrarySession, pSymbol, pRevision->Version, xFuncAddr); + + internal_FindByReferenceHelper(pContext, pLibraryDB, pSymbol, D3D_g_pDevice); + internal_RegisterSelfValidXRefAddr(pContext, pLibrarySession, pSymbol, 0); +#if 0 // TODO: Fix this after #208 pull request is merged. + internal_FindByReferenceHelper(pContext, pLibraryDB, pSymbol, D3DRS_RopZCmpAlwaysRead); + internal_RegisterSelfValidXRefAddr(pContext, pLibrarySession, pSymbol, 0); + internal_FindByReferenceHelper(pContext, pLibraryDB, pSymbol, D3DRS_RopZRead); + internal_RegisterSelfValidXRefAddr(pContext, pLibrarySession, pSymbol, 0); + internal_FindByReferenceHelper(pContext, pLibraryDB, pSymbol, D3DRS_DoNotCullUncompressed); + internal_RegisterSelfValidXRefAddr(pContext, pLibrarySession, pSymbol, 0); +#endif } return true; } @@ -663,6 +674,7 @@ static bool manual_scan_section_dx8_register_callbacks(iXbSymbolContext* pContex // Generic usage memptr_t pFunc = 0; xbaddr xSymbolAddr = 0; + OOVPATable* pSymbol = NULL; const eLibraryType iLibraryType = pLibrarySession->iLibraryType; // Manual check require for able to self-register these symbols: // * D3DDevice_SetSwapCallback @@ -671,10 +683,10 @@ static bool manual_scan_section_dx8_register_callbacks(iXbSymbolContext* pContex // First, check if D3D_g_pDevice is found. if (pContext->xref_database[XREF_D3D_g_pDevice] != XREF_ADDR_DERIVE && // Then, check at least one of symbol's member variable is not found. - pContext->xref_database[XREF_OFFSET_D3DDevice__m_SwapCallback] == XREF_ADDR_UNDETERMINED) { + pContext->xref_database[XREF_D3DDevice__m_SwapCallback_OFFSET] == XREF_ADDR_UNDETERMINED) { // Scan if event handle variable is not yet derived. - if (pContext->xref_database[XREF_OFFSET_D3DDevice__m_VerticalBlankEvent] == XREF_ADDR_DERIVE) { + if (pContext->xref_database[XREF_D3DDevice__m_VerticalBlankEvent_OFFSET] == XREF_ADDR_DERIVE) { xSymbolAddr = (xbaddr)(uintptr_t)internal_LocateSymbolScan(pContext, pLibrarySession, pLibraryDB, @@ -689,14 +701,18 @@ static bool manual_scan_section_dx8_register_callbacks(iXbSymbolContext* pContex // If not found, skip manual register. - if (pContext->xref_database[XREF_OFFSET_D3DDevice__m_VerticalBlankEvent] == XREF_ADDR_DERIVE) { + if (pContext->xref_database[XREF_D3DDevice__m_VerticalBlankEvent_OFFSET] == XREF_ADDR_DERIVE) { return false; } // Finally, manual register the symbol variables. - xSymbolAddr = pContext->xref_database[XREF_OFFSET_D3DDevice__m_VerticalBlankEvent]; - internal_SetXRefDatabase(pContext, iLibraryType, XREF_OFFSET_D3DDevice__m_SwapCallback, xSymbolAddr - 8); - internal_SetXRefDatabase(pContext, iLibraryType, XREF_OFFSET_D3DDevice__m_VBlankCallback, xSymbolAddr - 4); + xSymbolAddr = pContext->xref_database[XREF_D3DDevice__m_VerticalBlankEvent_OFFSET]; + internal_FindByReferenceHelper(pContext, pLibraryDB, pSymbol, D3DDevice__m_VerticalBlankEvent_OFFSET); + internal_RegisterSelfValidXRefAddr(pContext, pLibrarySession, pSymbol, 0); + internal_FindByReferenceHelper(pContext, pLibraryDB, pSymbol, D3DDevice__m_SwapCallback_OFFSET); + internal_RegisterSymbol(pContext, pLibrarySession, pSymbol, 0, xSymbolAddr - 8); + internal_FindByReferenceHelper(pContext, pLibraryDB, pSymbol, D3DDevice__m_VBlankCallback_OFFSET); + internal_RegisterSymbol(pContext, pLibrarySession, pSymbol, 0, xSymbolAddr - 4); } // If D3D_g_pDevice is not found, the scan is not complete // and will continue scan to next given section. @@ -918,13 +934,7 @@ static bool manual_scan_section_dx8(iXbSymbolContext* pContext, static inline void manual_register_d3d8__ltcg(iXbSymbolContext* pContext) { - xbaddr xD3D_pDeviceAddr = pContext->xref_database[XREF_D3D_g_pDevice]; - if (internal_IsXRefAddrValid(xD3D_pDeviceAddr)) { - internal_RegisterValidXRefAddr_M(pContext, Lib_D3D8, XbSymbolLib_D3D8, XREF_D3D_g_pDevice, 0, "D3D_g_pDevice", symbol_variable, 0, NULL); - // Register offsets of D3DDevice's members - internal_RegisterValidXRefAddr_M(pContext, Lib_D3D8, XbSymbolLib_D3D8, XREF_OFFSET_D3DDevice__m_SwapCallback, 0, "D3DDevice__m_SwapCallback_OFFSET", symbol_variable, 0, NULL); - internal_RegisterValidXRefAddr_M(pContext, Lib_D3D8, XbSymbolLib_D3D8, XREF_OFFSET_D3DDevice__m_VBlankCallback, 0, "D3DDevice__m_VBlankCallback_OFFSET", symbol_variable, 0, NULL); - internal_RegisterValidXRefAddr_M(pContext, Lib_D3D8, XbSymbolLib_D3D8, XREF_OFFSET_D3DDevice__m_VertexShader, 0, "D3DDevice__m_VertexShader_OFFSET", symbol_variable, 0, NULL); - internal_RegisterValidXRefAddr_M(pContext, Lib_D3D8, XbSymbolLib_D3D8, XREF_OFFSET_D3DDevice__m_VerticalBlankEvent, 0, "D3DDevice__m_VerticalBlankEvent_OFFSET", symbol_variable, 0, NULL); - } + // TODO: Below is require here until self register functionality is implement. Then above function is no longer needed. + internal_RegisterValidXRefAddr(pContext, Lib_D3D8, XbSymbolLib_D3D8, XREF_D3DDevice__m_VertexShader_OFFSET, 0, "D3DDevice__m_VertexShader_OFFSET", symbol_variable, 0, NULL); + // NOTE: D3DDevice__m_PixelShader_OFFSET is not accessible to the user. } diff --git a/src/test/libverify/D3D8.cpp b/src/test/libverify/D3D8.cpp index 79c82221..39ab6f79 100644 --- a/src/test/libverify/D3D8.cpp +++ b/src/test/libverify/D3D8.cpp @@ -43,10 +43,11 @@ static const library_list database_full = { REGISTER_SYMBOL_INLINE(D3DRS_ZBias, VER_RANGE(0)), // derived xrefs (offsets) - REGISTER_SYMBOL_INLINE_VAR_OFFSET(D3DDevice__m_SwapCallback, VER_RANGE(0)), - REGISTER_SYMBOL_INLINE_VAR_OFFSET(D3DDevice__m_VBlankCallback, VER_RANGE(0)), - REGISTER_SYMBOL_INLINE_VAR_OFFSET(D3DDevice__m_VertexShader, VER_RANGE(0)), - REGISTER_SYMBOL_INLINE_VAR_OFFSET(D3DDevice__m_VerticalBlankEvent, VER_RANGE(0)), + // REGISTER_SYMBOL_INLINE(D3DDevice__m_PixelShader_OFFSET, VER_RANGE(0)), + REGISTER_SYMBOL_INLINE(D3DDevice__m_SwapCallback_OFFSET, VER_RANGE(0)), + REGISTER_SYMBOL_INLINE(D3DDevice__m_VBlankCallback_OFFSET, VER_RANGE(0)), + REGISTER_SYMBOL_INLINE(D3DDevice__m_VertexShader_OFFSET, VER_RANGE(0)), + REGISTER_SYMBOL_INLINE(D3DDevice__m_VerticalBlankEvent_OFFSET, VER_RANGE(0)), REGISTER_SYMBOLS(D3D_CreateTexture, REGISTER_SYMBOL(D3D_CreateTexture, VER_RANGE(3911, 4627)),