Turok (4627)

This commit is contained in:
Aaron Robinson 2003-12-03 20:17:33 +00:00
parent 3e04a458c4
commit c2d2d22534
6 changed files with 301 additions and 5 deletions

BIN
Cxbx.opt

Binary file not shown.

View File

@ -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

View File

@ -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
// ******************************************************************

View File

@ -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();

View File

@ -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
// ******************************************************************

View File

@ -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,