Updated 4361. CxbxPong works hah!

This commit is contained in:
Aaron Robinson 2003-05-06 06:40:09 +00:00
parent 622286b633
commit a7362991e1
4 changed files with 369 additions and 194 deletions

View File

@ -140,6 +140,18 @@ HRESULT WINAPI EmuIDirect3DDevice8_Swap
DWORD Flags
);
// ******************************************************************
// * func: EmuIDirect3DDevice8_CreateVertexBuffer
// ******************************************************************
HRESULT WINAPI EmuIDirect3DDevice8_CreateVertexBuffer
(
UINT Length,
DWORD Usage,
DWORD FVF,
D3DPOOL Pool,
D3DVertexBuffer **ppVertexBuffer
);
// ******************************************************************
// * func: EmuIDirect3DDevice8_CreateVertexBuffer
// ******************************************************************
@ -168,7 +180,19 @@ VOID WINAPI EmuIDirect3DDevice8_SetTransform
// ******************************************************************
// * func: EmuIDirect3DVertexBuffer8_Lock
// ******************************************************************
BYTE* WINAPI EmuIDirect3DVertexBuffer8_Lock
VOID WINAPI EmuIDirect3DVertexBuffer8_Lock
(
D3DVertexBuffer *ppVertexBuffer,
UINT OffsetToLock,
UINT SizeToLock,
BYTE **ppbData,
DWORD Flags
);
// ******************************************************************
// * func: EmuIDirect3DVertexBuffer8_Lock2
// ******************************************************************
BYTE* WINAPI EmuIDirect3DVertexBuffer8_Lock2
(
D3DVertexBuffer *ppVertexBuffer,
DWORD Flags
@ -177,7 +201,7 @@ BYTE* WINAPI EmuIDirect3DVertexBuffer8_Lock
// ******************************************************************
// * func: EmuIDirect3DDevice8_SetStreamSource
// ******************************************************************
void WINAPI EmuIDirect3DDevice8_SetStreamSource
HRESULT WINAPI EmuIDirect3DDevice8_SetStreamSource
(
UINT StreamNumber,
D3DVertexBuffer *pStreamData,
@ -187,7 +211,7 @@ void WINAPI EmuIDirect3DDevice8_SetStreamSource
// ******************************************************************
// * func: EmuIDirect3DDevice8_SetVertexShader
// ******************************************************************
void WINAPI EmuIDirect3DDevice8_SetVertexShader
HRESULT WINAPI EmuIDirect3DDevice8_SetVertexShader
(
DWORD Handle
);
@ -195,7 +219,7 @@ void WINAPI EmuIDirect3DDevice8_SetVertexShader
// ******************************************************************
// * func: EmuIDirect3DDevice8_DrawVertices
// ******************************************************************
void WINAPI EmuIDirect3DDevice8_DrawVertices
HRESULT WINAPI EmuIDirect3DDevice8_DrawVertices
(
D3DPRIMITIVETYPE PrimitiveType,
UINT StartVertex,

View File

@ -115,10 +115,99 @@ SOOVPA<11> IDirect3DDevice8_Swap_1_0_4361 =
}
};
// ******************************************************************
// * IDirect3DDevice8_CreateVertexBuffer
// ******************************************************************
// NOTE: This is set up differently than other XDK version!
SOOVPA<13> IDirect3DDevice8_CreateVertexBuffer_1_0_4627 =
{
0, // Large == 0
13, // Count == 13
{
// IDirect3DDevice8_CreateVertexBuffer+0x03 : push 0x40
{ 0x03, 0x6A }, // (Offset,Value)-Pair #1
{ 0x04, 0x40 }, // (Offset,Value)-Pair #2
// IDirect3DDevice8_CreateVertexBuffer+0x10 : mov eax, [esp+8]
{ 0x10, 0x8B }, // (Offset,Value)-Pair #3
{ 0x11, 0x44 }, // (Offset,Value)-Pair #4
{ 0x12, 0x24 }, // (Offset,Value)-Pair #5
{ 0x13, 0x08 }, // (Offset,Value)-Pair #6
// IDirect3DDevice8_CreateVertexBuffer+0x48 : mov dword ptr [esi], 0x01000001
{ 0x48, 0xC7 }, // (Offset,Value)-Pair #7
{ 0x49, 0x06 }, // (Offset,Value)-Pair #8
{ 0x4A, 0x01 }, // (Offset,Value)-Pair #9
{ 0x4B, 0x00 }, // (Offset,Value)-Pair #10
{ 0x4D, 0x01 }, // (Offset,Value)-Pair #11
// IDirect3DDevice8_CreateVertexBuffer+0x53 : retn 0x14
{ 0x53, 0xC2 }, // (Offset,Value)-Pair #12
{ 0x54, 0x14 }, // (Offset,Value)-Pair #13
}
};
// ******************************************************************
// * IDirect3DDevice8_SetRenderState_CullMode
// ******************************************************************
SOOVPA<13> IDirect3DDevice8_SetRenderState_CullMode_1_0_4361 =
{
0, // Large == 0
13, // Count == 13
{
// IDirect3DDevice8_SetRenderState_CullMode+0x19 : mov dword ptr [eax], 0x40308
{ 0x19, 0xC7 }, // (Offset,Value)-Pair #1
{ 0x1B, 0x08 }, // (Offset,Value)-Pair #2
{ 0x1C, 0x03 }, // (Offset,Value)-Pair #3
{ 0x1D, 0x04 }, // (Offset,Value)-Pair #4
// IDirect3DDevice8_SetRenderState_CullMode+0x24 : add eax, 8
{ 0x24, 0x83 }, // (Offset,Value)-Pair #5
{ 0x25, 0xC0 }, // (Offset,Value)-Pair #6
{ 0x26, 0x08 }, // (Offset,Value)-Pair #7
// IDirect3DDevice8_SetRenderState_CullMode+0x30 : retn 4
{ 0x30, 0xC2 }, // (Offset,Value)-Pair #8
{ 0x31, 0x04 }, // (Offset,Value)-Pair #9
// IDirect3DDevice8_SetRenderState_CullMode+0x53 : add edx, 0x404
{ 0x53, 0x81 }, // (Offset,Value)-Pair #10
{ 0x54, 0xC2 }, // (Offset,Value)-Pair #11
{ 0x55, 0x04 }, // (Offset,Value)-Pair #12
{ 0x56, 0x04 }, // (Offset,Value)-Pair #13
}
};
// ******************************************************************
// * IDirect3DDevice8_SetTransform
// ******************************************************************
SOOVPA<10> IDirect3DDevice8_SetTransform_1_0_4361 =
{
0, // Large == 0
10, // Count == 10
{
// IDirect3DDevice8_SetTransform+0x16 : lea edi, [ecx+ebx+0x750]
{ 0x16, 0x8D }, // (Offset,Value)-Pair #1
{ 0x17, 0xBC }, // (Offset,Value)-Pair #2
{ 0x18, 0x19 }, // (Offset,Value)-Pair #3
// IDirect3DDevice8_SetTransform+0x24 : repe movsd
{ 0x24, 0xF3 }, // (Offset,Value)-Pair #4
{ 0x25, 0xA5 }, // (Offset,Value)-Pair #5
// IDirect3DDevice8_SetTransform+0x78 : fld [edx+0x3C]
{ 0x78, 0xD9 }, // (Offset,Value)-Pair #6
{ 0x79, 0x42 }, // (Offset,Value)-Pair #7
{ 0x7A, 0x3C }, // (Offset,Value)-Pair #8
// IDirect3DDevice8_SetTransform+0x92 : jmp +0x10
{ 0x92, 0xEB }, // (Offset,Value)-Pair #9
{ 0x93, 0x10 }, // (Offset,Value)-Pair #10
}
};
// ******************************************************************
// * IDirect3DVertexBuffer8_Lock
@ -150,6 +239,105 @@ SOOVPA<11> IDirect3DVertexBuffer8_Lock_1_0_4361 =
}
};
// ******************************************************************
// * IDirect3DDevice8_SetStreamSource
// ******************************************************************
SOOVPA<14> IDirect3DDevice8_SetStreamSource_1_0_4361 =
{
0, // Large == 0
14, // Count == 14
{
// IDirect3DDevice8_SetStreamSource+0x08 : mov edi, [esp+8+0x04]
{ 0x08, 0x8B }, // (Offset,Value)-Pair #1
{ 0x09, 0x7C }, // (Offset,Value)-Pair #2
{ 0x0A, 0x24 }, // (Offset,Value)-Pair #3
{ 0x0B, 0x10 }, // (Offset,Value)-Pair #4
// IDirect3DDevice8_SetStreamSource+0x28 : jz +0x26
{ 0x28, 0x74 }, // (Offset,Value)-Pair #5
{ 0x29, 0x26 }, // (Offset,Value)-Pair #6
// IDirect3DDevice8_SetStreamSource+0x70 : or ecx, 0x40
{ 0x70, 0x83 }, // (Offset,Value)-Pair #7
{ 0x71, 0xC9 }, // (Offset,Value)-Pair #8
{ 0x72, 0x40 }, // (Offset,Value)-Pair #9
// IDirect3DDevice8_SetStreamSource+0x7E : or ecx, 0x70
{ 0x7E, 0x83 }, // (Offset,Value)-Pair #10
{ 0x7F, 0xC9 }, // (Offset,Value)-Pair #11
{ 0x80, 0x70 }, // (Offset,Value)-Pair #12
// IDirect3DDevice8_SetStreamSource+0x89 : retn 0x0C
{ 0x89, 0xC2 }, // (Offset,Value)-Pair #13
{ 0x8A, 0x0C }, // (Offset,Value)-Pair #14
}
};
// ******************************************************************
// * IDirect3DDevice8_SetVertexShader
// ******************************************************************
SOOVPA<14> IDirect3DDevice8_SetVertexShader_1_0_4361 =
{
0, // Large == 0
14, // Count == 14
{
// IDirect3DDevice8_SetVertexShader+0x06 : test bl, 1
{ 0x06, 0xF6 }, // (Offset,Value)-Pair #1
{ 0x07, 0xC3 }, // (Offset,Value)-Pair #2
{ 0x08, 0x01 }, // (Offset,Value)-Pair #3
// IDirect3DDevice8_SetVertexShader+0x11 : mov eax, [esi+0x0380]
{ 0x11, 0x8B }, // (Offset,Value)-Pair #4
{ 0x12, 0x86 }, // (Offset,Value)-Pair #5
{ 0x13, 0x80 }, // (Offset,Value)-Pair #6
{ 0x14, 0x03 }, // (Offset,Value)-Pair #7
// IDirect3DDevice8_SetVertexShader+0x90 : retn 0x04
{ 0x90, 0xC2 }, // (Offset,Value)-Pair #8
{ 0x91, 0x04 }, // (Offset,Value)-Pair #9
// IDirect3DDevice8_SetVertexShader+0xB0 : mov dword ptr [eaax], 0x4194C
{ 0xB0, 0xC7 }, // (Offset,Value)-Pair #10
{ 0xB1, 0x00 }, // (Offset,Value)-Pair #11
{ 0xB2, 0x4C }, // (Offset,Value)-Pair #12
{ 0xB3, 0x19 }, // (Offset,Value)-Pair #13
{ 0xB4, 0x04 }, // (Offset,Value)-Pair #14
}
};
// ******************************************************************
// * IDirect3DDevice8_DrawVertices
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_DrawVertices_1_0_4361 =
{
0, // Large == 0
12, // Count == 12
{
// IDirect3DDevice8_DrawVertices+0x12 : mov edi, [esp+0x0C+0x0C]
{ 0x12, 0x8B }, // (Offset,Value)-Pair #1
{ 0x13, 0x7C }, // (Offset,Value)-Pair #2
{ 0x14, 0x24 }, // (Offset,Value)-Pair #3
{ 0x15, 0x18 }, // (Offset,Value)-Pair #4
// IDirect3DDevice8_DrawVertices+0x16 : lea esi, [edi-1]
{ 0x16, 0x8D }, // (Offset,Value)-Pair #5
{ 0x17, 0x77 }, // (Offset,Value)-Pair #6
{ 0x18, 0xFF }, // (Offset,Value)-Pair #7
// IDirect3DDevice8_DrawVertices+0x7E : shl edi, 0x18
{ 0x7E, 0xC1 }, // (Offset,Value)-Pair #8
{ 0x7F, 0xE7 }, // (Offset,Value)-Pair #9
{ 0x80, 0x18 }, // (Offset,Value)-Pair #10
// IDirect3DDevice8_DrawVertices+0x9C : retn 0x0C
{ 0x9C, 0xC2 }, // (Offset,Value)-Pair #11
{ 0x9D, 0x0C }, // (Offset,Value)-Pair #12
}
};
// ******************************************************************
// * D3D8_1_0_4361
// ******************************************************************
@ -185,6 +373,76 @@ OOVPATable D3D8_1_0_4361[] =
"EmuIDirect3DDevice8_Swap"
#endif
},
// IDirect3DDevice8::CreateVertexBuffer
{
(OOVPA*)&IDirect3DDevice8_CreateVertexBuffer_1_0_4627,
xd3d8::EmuIDirect3DDevice8_CreateVertexBuffer,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_CreateVertexBuffer"
#endif
},
// IDirect3DDevice8::SetRenderState_CullMode
{
(OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4361,
xd3d8::EmuIDirect3DDevice8_SetRenderState_CullMode,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetRenderState_CullMode"
#endif
},
// IDirect3DDevice8::SetTransform
{
(OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4361,
xd3d8::EmuIDirect3DDevice8_SetTransform,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetTransform"
#endif
},
// IDirect3DVertexBuffer8::Lock
{
(OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_4361,
xd3d8::EmuIDirect3DVertexBuffer8_Lock,
#ifdef _DEBUG_TRACE
"EmuIDirect3DVertexBuffer8_Lock"
#endif
},
// IDirect3DDevice8::SetStreamSource
{
(OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361,
xd3d8::EmuIDirect3DDevice8_SetStreamSource,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetStreamSource"
#endif
},
// IDirect3DDevice8::DrawVertices
{
(OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_4361,
xd3d8::EmuIDirect3DDevice8_DrawVertices,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_DrawVertices"
#endif
},
// IDirect3DDevice8::SetVertexShader
{
(OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_4361,
xd3d8::EmuIDirect3DDevice8_SetVertexShader,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetVertexShader"
#endif
},
};
// ******************************************************************

View File

@ -116,7 +116,7 @@ SOOVPA<11> IDirect3DDevice8_Swap_1_0_4627 =
};
// ******************************************************************
// * IDirect3DDevice8_CreateVertexBuffer
// * IDirect3DDevice8_CreateVertexBuffer2
// ******************************************************************
SOOVPA<13> IDirect3DDevice8_CreateVertexBuffer2_1_0_4627 =
{
@ -148,72 +148,9 @@ SOOVPA<13> IDirect3DDevice8_CreateVertexBuffer2_1_0_4627 =
};
// ******************************************************************
// * IDirect3DDevice8_SetRenderState_CullMode
// * IDirect3DVertexBuffer8_Lock2
// ******************************************************************
SOOVPA<13> IDirect3DDevice8_SetRenderState_CullMode_1_0_4627 =
{
0, // Large == 0
13, // Count == 13
{
// IDirect3DDevice8_SetRenderState_CullMode+0x19 : mov dword ptr [eax], 0x40308
{ 0x19, 0xC7 }, // (Offset,Value)-Pair #1
{ 0x1B, 0x08 }, // (Offset,Value)-Pair #2
{ 0x1C, 0x03 }, // (Offset,Value)-Pair #3
{ 0x1D, 0x04 }, // (Offset,Value)-Pair #4
// IDirect3DDevice8_SetRenderState_CullMode+0x24 : add eax, 8
{ 0x24, 0x83 }, // (Offset,Value)-Pair #5
{ 0x25, 0xC0 }, // (Offset,Value)-Pair #6
{ 0x26, 0x08 }, // (Offset,Value)-Pair #7
// IDirect3DDevice8_SetRenderState_CullMode+0x30 : retn 4
{ 0x30, 0xC2 }, // (Offset,Value)-Pair #8
{ 0x31, 0x04 }, // (Offset,Value)-Pair #9
// IDirect3DDevice8_SetRenderState_CullMode+0x53 : add edx, 0x404
{ 0x53, 0x81 }, // (Offset,Value)-Pair #10
{ 0x54, 0xC2 }, // (Offset,Value)-Pair #11
{ 0x55, 0x04 }, // (Offset,Value)-Pair #12
{ 0x56, 0x04 }, // (Offset,Value)-Pair #13
}
};
// ******************************************************************
// * IDirect3DDevice8_SetTransform
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_SetTransform_1_0_4627 =
{
0, // Large == 0
12, // Count == 12
{
// IDirect3DDevice8_SetTransform+0x16 : lea edi, [ecx+ebx+0x810]
{ 0x16, 0x8D }, // (Offset,Value)-Pair #1
{ 0x17, 0xBC }, // (Offset,Value)-Pair #2
{ 0x18, 0x19 }, // (Offset,Value)-Pair #3
{ 0x19, 0x10 }, // (Offset,Value)-Pair #4
{ 0x1A, 0x08 }, // (Offset,Value)-Pair #5
// IDirect3DDevice8_SetTransform+0x24 : repe movsd
{ 0x24, 0xF3 }, // (Offset,Value)-Pair #6
{ 0x25, 0xA5 }, // (Offset,Value)-Pair #7
// IDirect3DDevice8_SetTransform+0x78 : fld [edx+0x3C]
{ 0x78, 0xD9 }, // (Offset,Value)-Pair #8
{ 0x79, 0x42 }, // (Offset,Value)-Pair #9
{ 0x7A, 0x3C }, // (Offset,Value)-Pair #10
// IDirect3DDevice8_SetTransform+0x92 : jmp +0x10
{ 0x92, 0xEB }, // (Offset,Value)-Pair #11
{ 0x93, 0x10 }, // (Offset,Value)-Pair #12
}
};
// ******************************************************************
// * IDirect3DVertexBuffer8_Lock
// ******************************************************************
SOOVPA<11> IDirect3DVertexBuffer8_Lock_1_0_4627 =
SOOVPA<11> IDirect3DVertexBuffer8_Lock2_1_0_4627 =
{
0, // Large == 0
11, // Count == 11
@ -240,105 +177,6 @@ SOOVPA<11> IDirect3DVertexBuffer8_Lock_1_0_4627 =
}
};
// ******************************************************************
// * IDirect3DDevice8_SetStreamSource
// ******************************************************************
SOOVPA<14> IDirect3DDevice8_SetStreamSource_1_0_4627 =
{
0, // Large == 0
14, // Count == 14
{
// IDirect3DDevice8_SetStreamSource+0x08 : mov edi, [esp+8+0x04]
{ 0x08, 0x8B }, // (Offset,Value)-Pair #1
{ 0x09, 0x7C }, // (Offset,Value)-Pair #2
{ 0x0A, 0x24 }, // (Offset,Value)-Pair #3
{ 0x0B, 0x10 }, // (Offset,Value)-Pair #4
// IDirect3DDevice8_SetStreamSource+0x28 : jz +0x26
{ 0x28, 0x74 }, // (Offset,Value)-Pair #5
{ 0x29, 0x26 }, // (Offset,Value)-Pair #6
// IDirect3DDevice8_SetStreamSource+0x70 : or ecx, 0x40
{ 0x70, 0x83 }, // (Offset,Value)-Pair #7
{ 0x71, 0xC9 }, // (Offset,Value)-Pair #8
{ 0x72, 0x40 }, // (Offset,Value)-Pair #9
// IDirect3DDevice8_SetStreamSource+0x7E : or ecx, 0x70
{ 0x7E, 0x83 }, // (Offset,Value)-Pair #10
{ 0x7F, 0xC9 }, // (Offset,Value)-Pair #11
{ 0x80, 0x70 }, // (Offset,Value)-Pair #12
// IDirect3DDevice8_SetStreamSource+0x89 : retn 0x0C
{ 0x89, 0xC2 }, // (Offset,Value)-Pair #13
{ 0x8A, 0x0C }, // (Offset,Value)-Pair #14
}
};
// ******************************************************************
// * IDirect3DDevice8_SetVertexShader
// ******************************************************************
SOOVPA<14> IDirect3DDevice8_SetVertexShader_1_0_4627 =
{
0, // Large == 0
14, // Count == 14
{
// IDirect3DDevice8_SetVertexShader+0x06 : test bl, 1
{ 0x06, 0xF6 }, // (Offset,Value)-Pair #1
{ 0x07, 0xC3 }, // (Offset,Value)-Pair #2
{ 0x08, 0x01 }, // (Offset,Value)-Pair #3
// IDirect3DDevice8_SetVertexShader+0x11 : mov eax, [esi+0x0380]
{ 0x11, 0x8B }, // (Offset,Value)-Pair #4
{ 0x12, 0x86 }, // (Offset,Value)-Pair #5
{ 0x13, 0x80 }, // (Offset,Value)-Pair #6
{ 0x14, 0x03 }, // (Offset,Value)-Pair #7
// IDirect3DDevice8_SetVertexShader+0x90 : retn 0x04
{ 0x90, 0xC2 }, // (Offset,Value)-Pair #8
{ 0x91, 0x04 }, // (Offset,Value)-Pair #9
// IDirect3DDevice8_SetVertexShader+0xB0 : mov dword ptr [eaax], 0x4194C
{ 0xB0, 0xC7 }, // (Offset,Value)-Pair #10
{ 0xB1, 0x00 }, // (Offset,Value)-Pair #11
{ 0xB2, 0x4C }, // (Offset,Value)-Pair #12
{ 0xB3, 0x19 }, // (Offset,Value)-Pair #13
{ 0xB4, 0x04 }, // (Offset,Value)-Pair #14
}
};
// ******************************************************************
// * IDirect3DDevice8_DrawVertices
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_DrawVertices_1_0_4627 =
{
0, // Large == 0
12, // Count == 12
{
// IDirect3DDevice8_DrawVertices+0x12 : mov edi, [esp+0x0C+0x0C]
{ 0x12, 0x8B }, // (Offset,Value)-Pair #1
{ 0x13, 0x7C }, // (Offset,Value)-Pair #2
{ 0x14, 0x24 }, // (Offset,Value)-Pair #3
{ 0x15, 0x18 }, // (Offset,Value)-Pair #4
// IDirect3DDevice8_DrawVertices+0x16 : lea esi, [edi-1]
{ 0x16, 0x8D }, // (Offset,Value)-Pair #5
{ 0x17, 0x77 }, // (Offset,Value)-Pair #6
{ 0x18, 0xFF }, // (Offset,Value)-Pair #7
// IDirect3DDevice8_DrawVertices+0x7E : shl edi, 0x18
{ 0x7E, 0xC1 }, // (Offset,Value)-Pair #8
{ 0x7F, 0xE7 }, // (Offset,Value)-Pair #9
{ 0x80, 0x18 }, // (Offset,Value)-Pair #10
// IDirect3DDevice8_DrawVertices+0x9C : retn 0x0C
{ 0x9C, 0xC2 }, // (Offset,Value)-Pair #11
{ 0x9D, 0x0C }, // (Offset,Value)-Pair #12
}
};
// ******************************************************************
// * D3D8_1_0_4627
// ******************************************************************
@ -384,9 +222,9 @@ OOVPATable D3D8_1_0_4627[] =
"EmuIDirect3DDevice8_CreateVertexBuffer2"
#endif
},
// IDirect3DDevice8::SetRenderState_CullMode
// IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 4361 *)
{
(OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4627,
(OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4361,
xd3d8::EmuIDirect3DDevice8_SetRenderState_CullMode,
@ -394,9 +232,9 @@ OOVPATable D3D8_1_0_4627[] =
"EmuIDirect3DDevice8_SetRenderState_CullMode"
#endif
},
// IDirect3DDevice8::SetTransform
// IDirect3DDevice8::SetTransform (* unchanged since 4361 *)
{
(OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4627,
(OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4361,
xd3d8::EmuIDirect3DDevice8_SetTransform,
@ -404,19 +242,19 @@ OOVPATable D3D8_1_0_4627[] =
"EmuIDirect3DDevice8_SetTransform"
#endif
},
// IDirect3DVertexBuffer8::Lock
// IDirect3DVertexBuffer8::Lock2
{
(OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_4627,
(OOVPA*)&IDirect3DVertexBuffer8_Lock2_1_0_4627,
xd3d8::EmuIDirect3DVertexBuffer8_Lock,
xd3d8::EmuIDirect3DVertexBuffer8_Lock2,
#ifdef _DEBUG_TRACE
"EmuIDirect3DVertexBuffer8_Lock"
"EmuIDirect3DVertexBuffer8_Lock2"
#endif
},
// IDirect3DDevice8::SetStreamSource
// IDirect3DDevice8::SetStreamSource (* unchanged since 4361 *)
{
(OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4627,
(OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361,
xd3d8::EmuIDirect3DDevice8_SetStreamSource,
@ -424,9 +262,9 @@ OOVPATable D3D8_1_0_4627[] =
"EmuIDirect3DDevice8_SetStreamSource"
#endif
},
// IDirect3DDevice8::SetVertexShader
// IDirect3DDevice8::SetVertexShader (* unchanged since 4361 *)
{
(OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_4627,
(OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_4361,
xd3d8::EmuIDirect3DDevice8_SetVertexShader,
@ -434,9 +272,9 @@ OOVPATable D3D8_1_0_4627[] =
"EmuIDirect3DDevice8_SetVertexShader"
#endif
},
// IDirect3DDevice8::DrawVertices
// IDirect3DDevice8::DrawVertices (* unchanged since 4361 *)
{
(OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_4627,
(OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_4361,
xd3d8::EmuIDirect3DDevice8_DrawVertices,

View File

@ -559,6 +559,23 @@ HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_Swap
// ******************************************************************
// * func: EmuIDirect3DDevice8_CreateVertexBuffer
// ******************************************************************
HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_CreateVertexBuffer
(
UINT Length,
DWORD Usage,
DWORD FVF,
D3DPOOL Pool,
D3DVertexBuffer **ppVertexBuffer
)
{
*ppVertexBuffer = EmuIDirect3DDevice8_CreateVertexBuffer2(Length);
return D3D_OK;
}
// ******************************************************************
// * func: EmuIDirect3DDevice8_CreateVertexBuffer2
// ******************************************************************
xd3d8::D3DVertexBuffer* WINAPI xd3d8::EmuIDirect3DDevice8_CreateVertexBuffer2
(
UINT Length
@ -689,7 +706,45 @@ VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetTransform
// ******************************************************************
// * func: EmuIDirect3DVertexBuffer8_Lock
// ******************************************************************
BYTE* WINAPI xd3d8::EmuIDirect3DVertexBuffer8_Lock
VOID WINAPI xd3d8::EmuIDirect3DVertexBuffer8_Lock
(
D3DVertexBuffer *ppVertexBuffer,
UINT OffsetToLock,
UINT SizeToLock,
BYTE **ppbData,
DWORD Flags
)
{
EmuSwapFS(); // Win2k/XP FS
// ******************************************************************
// * debug trace
// ******************************************************************
#ifdef _DEBUG_TRACE
{
printf("EmuD3D8 (0x%.08X): EmuIDirect3DVertexBuffer8_Lock\n"
"(\n"
" ppVertexBuffer : 0x%.08X\n"
" OffsetToLock : 0x%.08X\n"
" SizeToLock : 0x%.08X\n"
" ppbData : 0x%.08X\n"
" Flags : 0x%.08X\n"
");\n",
GetCurrentThreadId(), ppVertexBuffer, OffsetToLock, SizeToLock, ppbData, Flags);
}
#endif
HRESULT hRet = ((IDirect3DVertexBuffer8*)ppVertexBuffer)->Lock(OffsetToLock, SizeToLock, ppbData, Flags);
EmuSwapFS(); // XBox FS
return;
}
// ******************************************************************
// * func: EmuIDirect3DVertexBuffer8_Lock2
// ******************************************************************
BYTE* WINAPI xd3d8::EmuIDirect3DVertexBuffer8_Lock2
(
D3DVertexBuffer *ppVertexBuffer,
DWORD Flags
@ -702,7 +757,7 @@ BYTE* WINAPI xd3d8::EmuIDirect3DVertexBuffer8_Lock
// ******************************************************************
#ifdef _DEBUG_TRACE
{
printf("EmuD3D8 (0x%.08X): EmuIDirect3DVertexBuffer8_Lock\n"
printf("EmuD3D8 (0x%.08X): EmuIDirect3DVertexBuffer8_Lock2\n"
"(\n"
" ppVertexBuffer : 0x%.08X\n"
" Flags : 0x%.08X\n"
@ -723,7 +778,7 @@ BYTE* WINAPI xd3d8::EmuIDirect3DVertexBuffer8_Lock
// ******************************************************************
// * func: EmuIDirect3DDevice8_SetStreamSource
// ******************************************************************
void WINAPI xd3d8::EmuIDirect3DDevice8_SetStreamSource
HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_SetStreamSource
(
UINT StreamNumber,
D3DVertexBuffer *pStreamData,
@ -749,17 +804,17 @@ void WINAPI xd3d8::EmuIDirect3DDevice8_SetStreamSource
((IDirect3DVertexBuffer8*)pStreamData)->Unlock();
HRESULT ret = g_pD3D8Device->SetStreamSource(StreamNumber, (IDirect3DVertexBuffer8*)pStreamData, Stride);
HRESULT hRet = g_pD3D8Device->SetStreamSource(StreamNumber, (IDirect3DVertexBuffer8*)pStreamData, Stride);
EmuSwapFS(); // XBox FS
return;
return hRet;
}
// ******************************************************************
// * func: EmuIDirect3DDevice8_SetVertexShader
// ******************************************************************
void WINAPI xd3d8::EmuIDirect3DDevice8_SetVertexShader
HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_SetVertexShader
(
DWORD Handle
)
@ -779,17 +834,17 @@ void WINAPI xd3d8::EmuIDirect3DDevice8_SetVertexShader
}
#endif
HRESULT ret = g_pD3D8Device->SetVertexShader(Handle);
HRESULT hRet = g_pD3D8Device->SetVertexShader(Handle);
EmuSwapFS(); // XBox FS
return;
return hRet;
}
// ******************************************************************
// * func: EmuIDirect3DDevice8_DrawVertices
// ******************************************************************
void WINAPI xd3d8::EmuIDirect3DDevice8_DrawVertices
HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_DrawVertices
(
D3DPRIMITIVETYPE PrimitiveType,
UINT StartVertex,
@ -827,5 +882,5 @@ void WINAPI xd3d8::EmuIDirect3DDevice8_DrawVertices
EmuSwapFS(); // XBox FS
return;
return hRet;
}