Turok (4627)
This commit is contained in:
parent
3e04a458c4
commit
c2d2d22534
|
@ -55,16 +55,16 @@ typedef signed short sint16;
|
|||
typedef signed long sint32;
|
||||
|
||||
// define this to trace intercepted function calls
|
||||
#define _DEBUG_TRACE
|
||||
//#define _DEBUG_TRACE
|
||||
|
||||
// define this to trace warnings
|
||||
#define _DEBUG_WARNINGS
|
||||
//#define _DEBUG_WARNINGS
|
||||
|
||||
// version information
|
||||
#ifndef _DEBUG_TRACE
|
||||
#define _CXBX_VERSION "0.7.9-Pre5"
|
||||
#define _CXBX_VERSION "0.7.9-Pre6"
|
||||
#else
|
||||
#define _CXBX_VERSION "0.7.9-Pre5-Trace"
|
||||
#define _CXBX_VERSION "0.7.9-Pre6-Trace"
|
||||
#endif
|
||||
|
||||
// round dwValue to the nearest multiple of dwMult
|
||||
|
|
|
@ -569,6 +569,16 @@ HRESULT WINAPI EmuIDirect3DDevice8_CreateVertexShader
|
|||
DWORD Usage
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetPixelShaderConstant
|
||||
// ******************************************************************
|
||||
VOID WINAPI EmuIDirect3DDevice8_SetPixelShaderConstant
|
||||
(
|
||||
DWORD Register,
|
||||
CONST PVOID pConstantData,
|
||||
DWORD ConstantCount
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetVertexShaderConstant
|
||||
// ******************************************************************
|
||||
|
@ -772,6 +782,16 @@ HRESULT WINAPI EmuIDirect3DDevice8_SetVertexDataColor
|
|||
// ******************************************************************
|
||||
HRESULT WINAPI EmuIDirect3DDevice8_End();
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_RunPushBuffer
|
||||
// ******************************************************************
|
||||
// TODO: D3DPushBuffer and D3DFixup
|
||||
VOID WINAPI EmuIDirect3DDevice8_RunPushBuffer
|
||||
(
|
||||
PVOID pPushBuffer,
|
||||
PVOID pFixup
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_Clear
|
||||
// ******************************************************************
|
||||
|
|
|
@ -533,7 +533,7 @@ extern "C" CXBXKRNL_API void NTAPI EmuInit
|
|||
// _USE_XGMATH Disabled in mesh :[
|
||||
// halo : dword_0_2E2D18
|
||||
// halo : 1744F0 (bink)
|
||||
_asm int 3
|
||||
//_asm int 3
|
||||
|
||||
Entry();
|
||||
|
||||
|
|
|
@ -1807,6 +1807,36 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_CreateVertexShader
|
|||
return hRet;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetPixelShaderConstant
|
||||
// ******************************************************************
|
||||
VOID WINAPI XTL::EmuIDirect3DDevice8_SetPixelShaderConstant
|
||||
(
|
||||
DWORD Register,
|
||||
CONST PVOID pConstantData,
|
||||
DWORD ConstantCount
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// debug trace
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetPixelShaderConstant\n"
|
||||
"(\n"
|
||||
" Register : 0x%.08X\n"
|
||||
" pConstantData : 0x%.08X\n"
|
||||
" ConstantCount : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), Register, pConstantData, ConstantCount);
|
||||
}
|
||||
#endif
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetVertexShaderConstant
|
||||
// ******************************************************************
|
||||
|
@ -3037,6 +3067,37 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_End()
|
|||
return D3D_OK;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_RunPushBuffer
|
||||
// ******************************************************************
|
||||
// TODO: D3DPushBuffer and D3DFixup
|
||||
VOID WINAPI XTL::EmuIDirect3DDevice8_RunPushBuffer
|
||||
(
|
||||
PVOID pPushBuffer,
|
||||
PVOID pFixup
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// debug trace
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_RunPushBuffer\n"
|
||||
"(\n"
|
||||
" pPushBuffer : 0x%.08X\n"
|
||||
" pFixup : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), pPushBuffer, pFixup);
|
||||
}
|
||||
#endif
|
||||
|
||||
EmuWarning("PushBuffer ignored!");
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_Clear
|
||||
// ******************************************************************
|
||||
|
|
|
@ -92,6 +92,70 @@ SOOVPA<8> IDirect3D8_CreateDeviceX_1_0_4627 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_BeginVisibilityTest
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirect3DDevice8_BeginVisibilityTest_1_0_4627 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirect3DDevice8_BeginVisibilityTest+0x13 : mov dword ptr [eax], 0x000817C8
|
||||
{ 0x13, 0xC7 }, // (Offset,Value)-Pair #1
|
||||
{ 0x14, 0x00 }, // (Offset,Value)-Pair #2
|
||||
{ 0x15, 0xC8 }, // (Offset,Value)-Pair #3
|
||||
{ 0x16, 0x17 }, // (Offset,Value)-Pair #4
|
||||
{ 0x17, 0x08 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirect3DDevice8_BeginVisibilityTest+0x19 : mov ecx, 1
|
||||
{ 0x19, 0xB9 }, // (Offset,Value)-Pair #6
|
||||
{ 0x1A, 0x01 }, // (Offset,Value)-Pair #7
|
||||
{ 0x1B, 0x00 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// IDirect3DDevice8_BeginVisibilityTest+0x24 : add eax, 0x0C
|
||||
{ 0x24, 0x83 }, // (Offset,Value)-Pair #9
|
||||
{ 0x25, 0xC0 }, // (Offset,Value)-Pair #10
|
||||
{ 0x26, 0x0C }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_EndVisibilityTest
|
||||
// ******************************************************************
|
||||
SOOVPA<13> IDirect3DDevice8_EndVisibilityTest_1_0_4627 =
|
||||
{
|
||||
0, // Large == 0
|
||||
13, // Count == 13
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirect3DDevice8_EndVisibilityTest+0x11 : mov eax, 0x8007000E
|
||||
{ 0x11, 0xB8 }, // (Offset,Value)-Pair #1
|
||||
{ 0x12, 0x0E }, // (Offset,Value)-Pair #2
|
||||
{ 0x13, 0x00 }, // (Offset,Value)-Pair #3
|
||||
{ 0x14, 0x07 }, // (Offset,Value)-Pair #4
|
||||
{ 0x15, 0x80 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirect3DDevice8_EndVisibilityTest+0x2D : mov dword ptr [eax], 0x000817CC
|
||||
{ 0x2D, 0xC7 }, // (Offset,Value)-Pair #6
|
||||
{ 0x2E, 0x00 }, // (Offset,Value)-Pair #7
|
||||
{ 0x2F, 0xCC }, // (Offset,Value)-Pair #8
|
||||
{ 0x30, 0x17 }, // (Offset,Value)-Pair #9
|
||||
{ 0x31, 0x08 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// IDirect3DDevice8_EndVisibilityTest+0x49 : add eax, 0x0C
|
||||
{ 0x49, 0x83 }, // (Offset,Value)-Pair #11
|
||||
{ 0x4A, 0xC0 }, // (Offset,Value)-Pair #12
|
||||
{ 0x4B, 0x0C }, // (Offset,Value)-Pair #13
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3D8_GetAdapterDisplayMode
|
||||
// ******************************************************************
|
||||
|
@ -534,6 +598,38 @@ SOOVPA<11> IDirect3DDevice8_SetTileNoWait_1_0_4627 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_SetPixelShaderConstant
|
||||
// ******************************************************************
|
||||
SOOVPA<10> IDirect3DDevice8_SetPixelShaderConstant_1_0_4627 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirect3DDevice8_SetPixelShaderConstant+0x17 : test eax, eax
|
||||
{ 0x17, 0x85 }, // (Offset,Value)-Pair #1
|
||||
{ 0x18, 0xC0 }, // (Offset,Value)-Pair #2
|
||||
|
||||
// IDirect3DDevice8_SetPixelShaderConstant+0x32 : add edi, 0x04
|
||||
{ 0x32, 0x83 }, // (Offset,Value)-Pair #3
|
||||
{ 0x33, 0xC7 }, // (Offset,Value)-Pair #4
|
||||
{ 0x34, 0x04 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirect3DDevice8_SetPixelShaderConstant+0x47 : jmp +0x07
|
||||
{ 0x47, 0xEB }, // (Offset,Value)-Pair #6
|
||||
{ 0x48, 0x07 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// IDirect3DDevice8_SetPixelShaderConstant+0xC7 : fstp [esp+??]
|
||||
{ 0xC7, 0xD9 }, // (Offset,Value)-Pair #8
|
||||
{ 0xC8, 0x1C }, // (Offset,Value)-Pair #9
|
||||
{ 0xC9, 0x24 }, // (Offset,Value)-Pair #10
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_SetVertexShaderConstant1
|
||||
// ******************************************************************
|
||||
|
@ -745,6 +841,38 @@ SOOVPA<12> IDirect3DDevice8_GetDisplayMode_1_0_4627 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_RunPushBuffer
|
||||
// ******************************************************************
|
||||
SOOVPA<10> IDirect3DDevice8_RunPushBuffer_1_0_4627 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirect3DDevice8_RunPushBuffer+0x3C : mov edx, [esi+30h]
|
||||
{ 0x3C, 0x8B }, // (Offset,Value)-Pair #1
|
||||
{ 0x3D, 0x56 }, // (Offset,Value)-Pair #2
|
||||
{ 0x3E, 0x30 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// IDirect3DDevice8_RunPushBuffer+0xCA : mov edi, ebp
|
||||
{ 0xCA, 0x8B }, // (Offset,Value)-Pair #4
|
||||
{ 0xCB, 0xFD }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirect3DDevice8_RunPushBuffer+0xDC : jmp +0x12
|
||||
{ 0xDC, 0xEB }, // (Offset,Value)-Pair #6
|
||||
{ 0xDD, 0x12 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// IDirect3DDevice8_RunPushBuffer+0xED : lea edi, [eax+4]
|
||||
{ 0xED, 0x8D }, // (Offset,Value)-Pair #8
|
||||
{ 0xEE, 0x78 }, // (Offset,Value)-Pair #9
|
||||
{ 0xEF, 0x04 }, // (Offset,Value)-Pair #10
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_Clear
|
||||
// ******************************************************************
|
||||
|
@ -1006,6 +1134,43 @@ SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_SetTextureState_BorderColor
|
||||
// ******************************************************************
|
||||
SOOVPA<15> IDirect3DDevice8_SetTextureState_BorderColor_1_0_4627 =
|
||||
{
|
||||
0, // Large == 0
|
||||
15, // Count == 15
|
||||
|
||||
-1, // XRef Not Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirect3DDevice8_SetTextureState_BorderColor+0x0C : jb +0x05
|
||||
{ 0x0C, 0x72 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0D, 0x05 }, // (Offset,Value)-Pair #2
|
||||
|
||||
// IDirect3DDevice8_SetTextureState_BorderColor+0x19 : shl edx, 6
|
||||
{ 0x19, 0xC1 }, // (Offset,Value)-Pair #3
|
||||
{ 0x1A, 0xE2 }, // (Offset,Value)-Pair #4
|
||||
{ 0x1B, 0x06 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirect3DDevice8_SetTextureState_BorderColor+0x2B : add eax, 8; mov [esi], eax; shl ecx, 7
|
||||
{ 0x2B, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x2C, 0xC0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x2D, 0x08 }, // (Offset,Value)-Pair #8
|
||||
{ 0x2E, 0x89 }, // (Offset,Value)-Pair #9
|
||||
{ 0x2F, 0x06 }, // (Offset,Value)-Pair #10
|
||||
{ 0x30, 0xC1 }, // (Offset,Value)-Pair #11
|
||||
{ 0x31, 0xE1 }, // (Offset,Value)-Pair #12
|
||||
{ 0x32, 0x07 }, // (Offset,Value)-Pair #13
|
||||
|
||||
// IDirect3DDevice8_SetTextureState_BorderColor+0x3A : retn 0x08
|
||||
{ 0x3A, 0xC2 }, // (Offset,Value)-Pair #14
|
||||
{ 0x3B, 0x08 }, // (Offset,Value)-Pair #15
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_SetRenderState_NormalizeNormals
|
||||
// ******************************************************************
|
||||
|
@ -1530,6 +1695,26 @@ OOVPATable D3D8_1_0_4627[] =
|
|||
"EmuIDirect3D8_CreateDevice"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::BeginVisibilityTest
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_BeginVisibilityTest_1_0_4627,
|
||||
|
||||
XTL::EmuIDirect3DDevice8_BeginVisibilityTest,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_BeginVisibilityTest"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::EndVisibilityTest
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_EndVisibilityTest_1_0_4627,
|
||||
|
||||
XTL::EmuIDirect3DDevice8_EndVisibilityTest,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_EndVisibilityTest"
|
||||
#endif
|
||||
},
|
||||
// IDirect3D8::GetAdapterModeCount (* unchanged since 4361 *)
|
||||
{
|
||||
(OOVPA*)&IDirect3D8_GetAdapterModeCount_1_0_4361,
|
||||
|
@ -1688,6 +1873,16 @@ OOVPATable D3D8_1_0_4627[] =
|
|||
"EmuIDirect3DDevice8_CreateVertexShader"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetPixelShaderConstant
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetPixelShaderConstant_1_0_4627,
|
||||
|
||||
XTL::EmuIDirect3DDevice8_SetPixelShaderConstant,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_SetPixelShaderConstant"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetVertexShaderConstant1
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant1_1_0_4627,
|
||||
|
@ -1778,6 +1973,16 @@ OOVPATable D3D8_1_0_4627[] =
|
|||
"EmuIDirect3DDevice8_GetDisplayMode"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::RunPushBuffer
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_RunPushBuffer_1_0_4627,
|
||||
|
||||
XTL::EmuIDirect3DDevice8_RunPushBuffer,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_RunPushBuffer"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::Clear
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_Clear_1_0_4627,
|
||||
|
@ -1868,6 +2073,16 @@ OOVPATable D3D8_1_0_4627[] =
|
|||
"EmuIDirect3DDevice8_SetTextureState_TexCoordIndex"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetTextureState_BorderColor
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_4627,
|
||||
|
||||
XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_SetTextureState_BorderColor"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 4134 *)
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4134,
|
||||
|
|
Loading…
Reference in New Issue