From c2d2d22534b666df952f7910c66e5afaa0ce176f Mon Sep 17 00:00:00 2001 From: Aaron Robinson Date: Wed, 3 Dec 2003 20:17:33 +0000 Subject: [PATCH] Turok (4627) --- Cxbx.opt | Bin 67072 -> 68096 bytes Include/Cxbx.h | 8 +- Include/Win32/CxbxKrnl/EmuD3D8.h | 20 ++ Source/Win32/CxbxKrnl/Emu.cpp | 2 +- Source/Win32/CxbxKrnl/EmuD3D8.cpp | 61 +++++ .../CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl | 215 ++++++++++++++++++ 6 files changed, 301 insertions(+), 5 deletions(-) diff --git a/Cxbx.opt b/Cxbx.opt index b23f6e5715aeb29c3827357a3cc9cd575a2c2e24..3854948d6969dacd9f2463f1d78139cb5b7a2211 100644 GIT binary patch literal 68096 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 diff --git a/Include/Cxbx.h b/Include/Cxbx.h index 5049d60a3..749acd44b 100644 --- a/Include/Cxbx.h +++ b/Include/Cxbx.h @@ -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 diff --git a/Include/Win32/CxbxKrnl/EmuD3D8.h b/Include/Win32/CxbxKrnl/EmuD3D8.h index bd3d748ac..b18906390 100644 --- a/Include/Win32/CxbxKrnl/EmuD3D8.h +++ b/Include/Win32/CxbxKrnl/EmuD3D8.h @@ -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 // ****************************************************************** diff --git a/Source/Win32/CxbxKrnl/Emu.cpp b/Source/Win32/CxbxKrnl/Emu.cpp index 858d0d6ce..8c908a5d2 100644 --- a/Source/Win32/CxbxKrnl/Emu.cpp +++ b/Source/Win32/CxbxKrnl/Emu.cpp @@ -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(); diff --git a/Source/Win32/CxbxKrnl/EmuD3D8.cpp b/Source/Win32/CxbxKrnl/EmuD3D8.cpp index bb10d5acd..1abe8ccc3 100644 --- a/Source/Win32/CxbxKrnl/EmuD3D8.cpp +++ b/Source/Win32/CxbxKrnl/EmuD3D8.cpp @@ -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 // ****************************************************************** diff --git a/Source/Win32/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl b/Source/Win32/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl index 21e86e3d3..ddb790950 100644 --- a/Source/Win32/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl +++ b/Source/Win32/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl @@ -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,