diff --git a/Include/Win32/CxbxKrnl/xd3d8.h b/Include/Win32/CxbxKrnl/xd3d8.h index 4f4f2a940..4b507a462 100644 --- a/Include/Win32/CxbxKrnl/xd3d8.h +++ b/Include/Win32/CxbxKrnl/xd3d8.h @@ -573,6 +573,71 @@ VOID WINAPI EmuIDirect3DDevice8_SetTextureState_TexCoordIndex DWORD Value ); +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_NormalizeNormals +// ****************************************************************** +VOID WINAPI EmuIDirect3DDevice8_SetRenderState_NormalizeNormals +( + DWORD Value +); + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +VOID WINAPI EmuIDirect3DDevice8_SetRenderState_TextureFactor +( + DWORD Value +); + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_ZBias +// ****************************************************************** +VOID WINAPI EmuIDirect3DDevice8_SetRenderState_ZBias +( + DWORD Value +); + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias +// ****************************************************************** +VOID WINAPI EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias +( + DWORD Value +); + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_FillMode +// ****************************************************************** +VOID WINAPI EmuIDirect3DDevice8_SetRenderState_FillMode +( + DWORD Value +); + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_FogColor +// ****************************************************************** +VOID WINAPI EmuIDirect3DDevice8_SetRenderState_FogColor +( + DWORD Value +); + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +VOID WINAPI EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +( + DWORD Value +); + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_Simple +// ****************************************************************** +VOID __fastcall EmuIDirect3DDevice8_SetRenderState_Simple +( + DWORD Method, + DWORD Value +); + // ****************************************************************** // * func: EmuIDirect3DDevice8_SetRenderState_CullMode // ****************************************************************** diff --git a/Resource/Cxbx.rc b/Resource/Cxbx.rc index 1dab8ce44..bf82a7a4c 100644 --- a/Resource/Cxbx.rc +++ b/Resource/Cxbx.rc @@ -268,11 +268,11 @@ BEGIN LTEXT "Other Options:",IDC_STATIC,21,71,49,8,0,WS_EX_RIGHT CONTROL "Force VSync",IDC_CV_VSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,154,71,65,10 - COMBOBOX IDC_VC_DISPLAY_ADAPTER,76,12,173,71,CBS_DROPDOWNLIST | + COMBOBOX IDC_VC_DISPLAY_ADAPTER,76,12,173,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_VC_D3D_DEVICE,76,31,173,53,CBS_DROPDOWNLIST | + COMBOBOX IDC_VC_D3D_DEVICE,76,31,173,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_VC_VIDEO_RESOLUTION,76,49,173,59,CBS_DROPDOWNLIST | + COMBOBOX IDC_VC_VIDEO_RESOLUTION,76,49,173,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END diff --git a/Source/Win32/CxbxKrnl/D3D8.1.0.4627.inl b/Source/Win32/CxbxKrnl/D3D8.1.0.4627.inl index 2a1c2b414..698bda206 100644 --- a/Source/Win32/CxbxKrnl/D3D8.1.0.4627.inl +++ b/Source/Win32/CxbxKrnl/D3D8.1.0.4627.inl @@ -345,6 +345,264 @@ SOOVPA<13> IDirect3DDevice8_CreateVertexBuffer2_1_0_4627 = } }; +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TexCoordIndex +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + { + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x14 : shl eax, 0x07 + { 0x14, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x15, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x16, 0x07 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x26 : cmp eax, ecx + { 0x26, 0x3B }, // (Offset,Value)-Pair #4 + { 0x27, 0xC1 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x71 : mov ebp, 0x2400 + { 0x71, 0xBD }, // (Offset,Value)-Pair #6 + { 0x73, 0x24 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0xAA : shl ebx, 0x04 + { 0xAA, 0xC1 }, // (Offset,Value)-Pair #8 + { 0xAB, 0xE3 }, // (Offset,Value)-Pair #9 + { 0xAC, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_NormalizeNormals +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + { + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x25 : or [addr], 0x200 + { 0x25, 0x81 }, // (Offset,Value)-Pair #3 + { 0x26, 0x0D }, // (Offset,Value)-Pair #4 + { 0x2B, 0x00 }, // (Offset,Value)-Pair #5 + { 0x2C, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x36 : retn 0x04 + { 0x36, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x37, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + { + // IDirect3DDevice8_SetRenderState_TextureFactor+0x07 : mov eax, [esi+0x0370] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x86 }, // (Offset,Value)-Pair #2 + { 0x09, 0x70 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x2F : nop + { 0x2F, 0x90 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x41 : retn 0x04 + { 0x41, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x42, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZBias +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_ZBias_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + { + // IDirect3DDevice8_SetRenderState_ZBias+0x0B : setnz al + { 0x0B, 0x0F }, // (Offset,Value)-Pair #1 + { 0x0C, 0x95 }, // (Offset,Value)-Pair #2 + { 0x0D, 0xC0 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_ZBias+0x14 : fild [esp+0x10] + { 0x14, 0xDB }, // (Offset,Value)-Pair #4 + { 0x15, 0x44 }, // (Offset,Value)-Pair #5 + { 0x16, 0x24 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZBias+0x45 : push 0x4E + { 0x45, 0x6A }, // (Offset,Value)-Pair #7 + { 0x46, 0x4E }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_ZBias+0x45 : retn 0x04 + { 0x71, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x72, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_EdgeAntiAlias +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + { + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x13 : mov ecx, [esp+0x08] + { 0x13, 0x8B }, // (Offset,Value)-Pair #5 + { 0x14, 0x4C }, // (Offset,Value)-Pair #6 + { 0x15, 0x24 }, // (Offset,Value)-Pair #7 + { 0x16, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x2F : retn 0x04 + { 0x2F, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x30, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FillMode +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_FillMode_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + { + // IDirect3DDevice8_SetRenderState_FillMode+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_FillMode+0x21 : mov ecx, [esp+0x08] + { 0x21, 0x8B }, // (Offset,Value)-Pair #3 + { 0x22, 0x4C }, // (Offset,Value)-Pair #4 + { 0x23, 0x24 }, // (Offset,Value)-Pair #5 + { 0x24, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_FillMode+0x25 : jnz +0x02 + { 0x25, 0x75 }, // (Offset,Value)-Pair #7 + { 0x26, 0x02 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_FillMode+0x35 : add eax, 0x0C + { 0x35, 0x83 }, // (Offset,Value)-Pair #9 + { 0x36, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x37, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FogColor +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_FogColor_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + { + // IDirect3DDevice8_SetRenderState_FogColor+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_FogColor+0x09 : cmp eax, [esi+4] + { 0x09, 0x3B }, // (Offset,Value)-Pair #3 + { 0x0A, 0x46 }, // (Offset,Value)-Pair #4 + { 0x0B, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_FogColor+0x25 : shl edi, 0x10 + { 0x25, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x26, 0xE7 }, // (Offset,Value)-Pair #7 + { 0x27, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_FogColor+0x40 : mov [esi], eax + { 0x40, 0x89 }, // (Offset,Value)-Pair #9 + { 0x41, 0x06 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + { + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x0D : mov eax, [edi+0x21B4] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x87 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xB4 }, // (Offset,Value)-Pair #3 + { 0x10, 0x21 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x56 : shl esi, 0x05 + { 0x56, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x57, 0xE6 }, // (Offset,Value)-Pair #6 + { 0x58, 0x05 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x74 : retn 0x04 + { 0x74, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x75, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Simple +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_Simple_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + { + // IDirect3DDevice8_SetRenderState_Simple+0x05 : add eax, 0x08 + { 0x05, 0x83 }, // (Offset,Value)-Pair #1 + { 0x06, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x07, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_Simple+0x0E : jnb +0x0C + { 0x0E, 0x73 }, // (Offset,Value)-Pair #4 + { 0x0F, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_Simple+0x15 : mov [eax-8], ecx + { 0x15, 0x89 }, // (Offset,Value)-Pair #6 + { 0x16, 0x48 }, // (Offset,Value)-Pair #7 + { 0x17, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_Simple+0x18 : mov [eax-4], ecx + { 0x18, 0x89 }, // (Offset,Value)-Pair #9 + { 0x19, 0x50 }, // (Offset,Value)-Pair #10 + { 0x1A, 0xFC }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_Simple+0x25 : jmp +0xD9 + { 0x25, 0xEB }, // (Offset,Value)-Pair #12 + { 0x26, 0xD9 }, // (Offset,Value)-Pair #13 + } +}; // ****************************************************************** // * IDirect3DDevice8_SetRenderState_ZEnable @@ -680,6 +938,16 @@ OOVPATable D3D8_1_0_4627[] = "EmuIDirect3DDevice8_CreateVertexBuffer2" #endif }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, // IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 4361 *) { (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4361, @@ -690,6 +958,86 @@ OOVPATable D3D8_1_0_4627[] = "EmuIDirect3DDevice8_SetRenderState_CullMode" #endif }, + // IDirect3DDevice8::SetRenderState_NormalizeNormals + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4627, + + xd3d8::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, // IDirect3DDevice8::SetRenderState_ZEnable { (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_4627, diff --git a/Source/Win32/CxbxKrnl/Emu.cpp b/Source/Win32/CxbxKrnl/Emu.cpp index b05e07801..6bed61aec 100644 --- a/Source/Win32/CxbxKrnl/Emu.cpp +++ b/Source/Win32/CxbxKrnl/Emu.cpp @@ -385,7 +385,7 @@ extern "C" CXBXKRNL_API void NTAPI EmuInit { EmuSwapFS(); // XBox FS -// _asm int 3 + _asm int 3 Entry(); diff --git a/Source/Win32/CxbxKrnl/EmuD3D8.cpp b/Source/Win32/CxbxKrnl/EmuD3D8.cpp index 8f487b88b..2146df75f 100644 --- a/Source/Win32/CxbxKrnl/EmuD3D8.cpp +++ b/Source/Win32/CxbxKrnl/EmuD3D8.cpp @@ -413,7 +413,7 @@ HRESULT WINAPI xd3d8::EmuIDirect3D8_CreateDevice // TODO: Support Xbox extensions if possible if(pPresentationParameters->MultiSampleType != 0) { - printf("Warning: MultiSampleType (0x%.08X) Not Supported!\n", pPresentationParameters->MultiSampleType); + printf("*Warning* MultiSampleType (0x%.08X) Not Supported!\n", pPresentationParameters->MultiSampleType); pPresentationParameters->MultiSampleType = D3DMULTISAMPLE_NONE; @@ -1527,7 +1527,7 @@ HRESULT WINAPI xd3d8::EmuIDirect3DSurface8_LockRect GetCurrentThreadId(), pThis, pLockedRect, pRect, Flags); if(Flags & 0x40) - printf("EmuIDirect3DSurface8_LockRect: *Warning* D3DLOCK_TILED ignored!\n"); + printf("*Warning* D3DLOCK_TILED ignored!\n"); } #endif @@ -1731,6 +1731,251 @@ VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex return; } +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_NormalizeNormals +// ****************************************************************** +VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals +( + DWORD Value +) +{ + EmuSwapFS(); // Win2k/XP FS + + // ****************************************************************** + // * debug trace + // ****************************************************************** + #ifdef _DEBUG_TRACE + { + printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_NormalizeNormals\n" + "(\n" + " Value : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), Value); + } + #endif + + g_pD3DDevice8->SetRenderState(D3DRS_NORMALIZENORMALS, Value); + + EmuSwapFS(); // XBox FS + + return; +} + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_TextureFactor +( + DWORD Value +) +{ + EmuSwapFS(); // Win2k/XP FS + + // ****************************************************************** + // * debug trace + // ****************************************************************** + #ifdef _DEBUG_TRACE + { + printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_TextureFactor\n" + "(\n" + " Value : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), Value); + } + #endif + + g_pD3DDevice8->SetRenderState(D3DRS_TEXTUREFACTOR, Value); + + EmuSwapFS(); // XBox FS + + return; +} + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_ZBias +// ****************************************************************** +VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_ZBias +( + DWORD Value +) +{ + EmuSwapFS(); // Win2k/XP FS + + // ****************************************************************** + // * debug trace + // ****************************************************************** + #ifdef _DEBUG_TRACE + { + printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_ZBias\n" + "(\n" + " Value : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), Value); + } + #endif + + g_pD3DDevice8->SetRenderState(D3DRS_ZBIAS, Value); + + EmuSwapFS(); // XBox FS + + return; +} + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias +// ****************************************************************** +VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias +( + DWORD Value +) +{ + EmuSwapFS(); // Win2k/XP FS + + // ****************************************************************** + // * debug trace + // ****************************************************************** + #ifdef _DEBUG_TRACE + { + printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias\n" + "(\n" + " Value : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), Value); + } + #endif + +// TODO: Analyze performance and compatibility (undefined behavior on PC with triangles or points) +// g_pD3DDevice8->SetRenderState(D3DRS_EDGEANTIALIAS, Value); + + printf("*Warning* SetRenderState_EdgeAntiAlias not implemented!\n"); + + EmuSwapFS(); // XBox FS + + return; +} + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_FillMode +// ****************************************************************** +VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_FillMode +( + DWORD Value +) +{ + EmuSwapFS(); // Win2k/XP FS + + // ****************************************************************** + // * debug trace + // ****************************************************************** + #ifdef _DEBUG_TRACE + { + printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_FillMode\n" + "(\n" + " Value : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), Value); + } + #endif + + printf("*Warning* SetRenderState_FillMode not implemented!\n"); + + EmuSwapFS(); // XBox FS + + return; +} + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_FogColor +// ****************************************************************** +VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_FogColor +( + DWORD Value +) +{ + EmuSwapFS(); // Win2k/XP FS + + // ****************************************************************** + // * debug trace + // ****************************************************************** + #ifdef _DEBUG_TRACE + { + printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_FogColor\n" + "(\n" + " Value : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), Value); + } + #endif + + printf("*Warning* SetRenderState_FogColor not implemented!\n"); + + EmuSwapFS(); // XBox FS + + return; +} + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +( + DWORD Value +) +{ + EmuSwapFS(); // Win2k/XP FS + + // ****************************************************************** + // * debug trace + // ****************************************************************** + #ifdef _DEBUG_TRACE + { + printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable\n" + "(\n" + " Value : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), Value); + } + #endif + + printf("*Warning* SetRenderState_Dxt1NoiseEnable not implemented!\n"); + + EmuSwapFS(); // XBox FS + + return; +} + +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetRenderState_Simple +// ****************************************************************** +VOID __fastcall xd3d8::EmuIDirect3DDevice8_SetRenderState_Simple +( + DWORD Method, + DWORD Value +) +{ + EmuSwapFS(); // Win2k/XP FS + + // ****************************************************************** + // * debug trace + // ****************************************************************** + #ifdef _DEBUG_TRACE + { + printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_Simple\n" + "(\n" + " Method : 0x%.08X\n" + " Value : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), Method, Value); + } + #endif + + printf("*Warning* SetRenderState_Simple not implemented!\n"); + + EmuSwapFS(); // XBox FS + + return; +} + // ****************************************************************** // * func: EmuIDirect3DDevice8_SetRenderState_CullMode // ******************************************************************