Gamepad/Rumble demos "working" (screwyily)
This commit is contained in:
parent
a281279db0
commit
1052311a10
|
@ -67,9 +67,9 @@ typedef signed long sint32;
|
|||
// * Version information
|
||||
// ******************************************************************
|
||||
#ifndef _DEBUG_TRACE
|
||||
#define _CXBX_VERSION "0.7.3"
|
||||
#define _CXBX_VERSION "0.7.4"
|
||||
#else
|
||||
#define _CXBX_VERSION "0.7.3-Trace"
|
||||
#define _CXBX_VERSION "0.7.4-Trace"
|
||||
#endif
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -117,7 +117,7 @@ static inline void EmuSwapFS()
|
|||
mov ax, fs:[0x14]
|
||||
mov fs, ax
|
||||
}
|
||||
|
||||
/*
|
||||
// ******************************************************************
|
||||
// * Every "N" interceptions, perform various periodic services
|
||||
// ******************************************************************
|
||||
|
@ -135,7 +135,7 @@ static inline void EmuSwapFS()
|
|||
|
||||
// Back to Zero!
|
||||
dwInterceptionCount = 0;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -217,6 +217,31 @@ typedef struct _XINPUT_STATE
|
|||
}
|
||||
XINPUT_STATE, *PXINPUT_STATE;
|
||||
|
||||
// ******************************************************************
|
||||
// * XINPUT_FEEDBACK_HEADER
|
||||
// ******************************************************************
|
||||
typedef struct _XINPUT_FEEDBACK_HEADER
|
||||
{
|
||||
DWORD dwStatus;
|
||||
HANDLE OPTIONAL hEvent;
|
||||
BYTE Reserved[58];
|
||||
}
|
||||
XINPUT_FEEDBACK_HEADER, *PXINPUT_FEEDBACK_HEADER;
|
||||
|
||||
// ******************************************************************
|
||||
// * XINPUT_FEEDBACK
|
||||
// ******************************************************************
|
||||
typedef struct _XINPUT_FEEDBACK
|
||||
{
|
||||
XINPUT_FEEDBACK_HEADER Header;
|
||||
|
||||
union
|
||||
{
|
||||
XINPUT_RUMBLE Rumble;
|
||||
};
|
||||
}
|
||||
XINPUT_FEEDBACK, *PXINPUT_FEEDBACK;
|
||||
|
||||
// ******************************************************************
|
||||
// * RTL_HEAP_PARAMETERS
|
||||
// ******************************************************************
|
||||
|
@ -298,7 +323,7 @@ DWORD WINAPI EmuXInputGetCapabilities
|
|||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuInputGetState
|
||||
// * func: EmuXInputGetState
|
||||
// ******************************************************************
|
||||
DWORD WINAPI EmuXInputGetState
|
||||
(
|
||||
|
@ -306,6 +331,15 @@ DWORD WINAPI EmuXInputGetState
|
|||
OUT PXINPUT_STATE pState
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuXInputGetState
|
||||
// ******************************************************************
|
||||
DWORD WINAPI EmuXInputSetState
|
||||
(
|
||||
IN HANDLE hDevice,
|
||||
IN OUT PXINPUT_FEEDBACK pFeedback
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuCreateThread
|
||||
// ******************************************************************
|
||||
|
|
|
@ -89,23 +89,26 @@ inline D3DFORMAT EmuXB2PC_D3DFormat(X_D3DFORMAT Format)
|
|||
case 0:
|
||||
return (D3DFORMAT)NULL;
|
||||
|
||||
case 0x05: // Swizzled
|
||||
case 0x04: // Swizzled (X_D3DFMT_A4R4G4B4)
|
||||
return D3DFMT_A4R4G4B4;
|
||||
|
||||
case 0x05: // Swizzled (X_D3DFMT_R5G6B5)
|
||||
return D3DFMT_R5G6B5;
|
||||
|
||||
case 0x12: // Linear (X_D3DFMT_LIN_A8R8G8B8)
|
||||
case 0x06: // Swizzled
|
||||
case 0x12: // Linear (X_D3DFMT_LIN_A8R8G8B8)
|
||||
case 0x06: // Swizzled (X_D3DFMT_LIN_A8R8G8B8)
|
||||
return D3DFMT_A8R8G8B8;
|
||||
|
||||
case 0x07:
|
||||
case 0x07: // Swizzled (X_D3DFMT_X8R8G8B8)
|
||||
return D3DFMT_X8R8G8B8;
|
||||
|
||||
case 0x0E:
|
||||
case 0x0E: // Compressed (X_D3DFMT_DXT2)
|
||||
return D3DFMT_DXT2;
|
||||
|
||||
case 0x2A:
|
||||
case 0x2A: // Swizzled (X_D3DFMT_D24S8)
|
||||
return D3DFMT_D24S8;
|
||||
|
||||
case 0x2C:
|
||||
case 0x2C: // Swizzled (X_D3DFMT_D16)
|
||||
return D3DFMT_D16;
|
||||
}
|
||||
|
||||
|
@ -499,6 +502,14 @@ HRESULT WINAPI EmuIDirect3DDevice8_CreatePixelShader
|
|||
DWORD *pHandle
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetPixelShader
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI EmuIDirect3DDevice8_SetPixelShader
|
||||
(
|
||||
DWORD Handle
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_CreateTexture2
|
||||
// ******************************************************************
|
||||
|
@ -612,6 +623,14 @@ ULONG WINAPI EmuIDirect3DResource8_Release
|
|||
X_D3DResource *pThis
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DResource8_IsBusy
|
||||
// ******************************************************************
|
||||
BOOL WINAPI EmuIDirect3DResource8_IsBusy
|
||||
(
|
||||
X_D3DResource *pThis
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DSurface8_GetDesc
|
||||
// ******************************************************************
|
||||
|
@ -769,6 +788,14 @@ VOID WINAPI EmuIDirect3DDevice8_SetRenderState_ZEnable
|
|||
DWORD Value
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetRenderState_StencilEnable
|
||||
// ******************************************************************
|
||||
VOID WINAPI EmuIDirect3DDevice8_SetRenderState_StencilEnable
|
||||
(
|
||||
DWORD Value
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias
|
||||
// ******************************************************************
|
||||
|
|
|
@ -325,6 +325,36 @@ SOOVPA<11> IDirect3DDevice8_CreatePixelShader_1_0_4361 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_SetPixelShader
|
||||
// ******************************************************************
|
||||
SOOVPA<10> IDirect3DDevice8_SetPixelShader_1_0_4361 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
{
|
||||
// IDirect3DDevice8_SetPixelShader+0x0E : mov esi, [ebx+0x0370]
|
||||
{ 0x0E, 0x8B }, // (Offset,Value)-Pair #1
|
||||
{ 0x0F, 0xB3 }, // (Offset,Value)-Pair #2
|
||||
{ 0x10, 0x70 }, // (Offset,Value)-Pair #3
|
||||
{ 0x11, 0x03 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// IDirect3DDevice8_SetPixelShader+0x3A : or eax, 0x2000
|
||||
{ 0x3A, 0x0D }, // (Offset,Value)-Pair #5
|
||||
{ 0x3C, 0x20 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// IDirect3DDevice8_SetPixelShader+0x78 : retn 0x04
|
||||
{ 0x78, 0xC2 }, // (Offset,Value)-Pair #7
|
||||
{ 0x79, 0x04 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// IDirect3DDevice8_SetPixelShader+0xE3 : rep movsd
|
||||
{ 0xE3, 0xF3 }, // (Offset,Value)-Pair #9
|
||||
{ 0xE4, 0xA5 }, // (Offset,Value)-Pair #10
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_CreateTexture
|
||||
// ******************************************************************
|
||||
|
@ -641,6 +671,127 @@ SOOVPA<13> IDirect3DDevice8_SetRenderState_CullMode_1_0_4361 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_SetRenderState_TextureFactor
|
||||
// ******************************************************************
|
||||
SOOVPA<9> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4361 =
|
||||
{
|
||||
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_EdgeAntiAlias
|
||||
// ******************************************************************
|
||||
SOOVPA<10> IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361 =
|
||||
{
|
||||
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_4361 =
|
||||
{
|
||||
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_Simple
|
||||
// ******************************************************************
|
||||
SOOVPA<13> IDirect3DDevice8_SetRenderState_Simple_1_0_4361 =
|
||||
{
|
||||
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
|
||||
// ******************************************************************
|
||||
|
@ -673,6 +824,36 @@ SOOVPA<13> IDirect3DDevice8_SetRenderState_ZEnable_1_0_4361 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_SetRenderState_StencilEnable
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
{
|
||||
// IDirect3DDevice8_SetRenderState_StencilEnable+0x0C : jb +0x05
|
||||
{ 0x0C, 0x72 }, // (Offset,Value)-Pair #1
|
||||
{ 0x0D, 0x05 }, // (Offset,Value)-Pair #2
|
||||
|
||||
// IDirect3DDevice8_SetRenderState_StencilEnable+0x2C : jz +0x19
|
||||
{ 0x2C, 0x74 }, // (Offset,Value)-Pair #3
|
||||
{ 0x2D, 0x19 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// IDirect3DDevice8_SetRenderState_StencilEnable+0x4D : mov dword ptr [eax], 0x00041D84
|
||||
{ 0x4D, 0xC7 }, // (Offset,Value)-Pair #5
|
||||
{ 0x4E, 0x00 }, // (Offset,Value)-Pair #6
|
||||
{ 0x4F, 0x84 }, // (Offset,Value)-Pair #7
|
||||
{ 0x50, 0x1D }, // (Offset,Value)-Pair #8
|
||||
{ 0x51, 0x04 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirect3DDevice8_SetRenderState_StencilEnable+0x81 : retn 0x04
|
||||
{ 0x81, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x82, 0x04 }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias
|
||||
// ******************************************************************
|
||||
|
@ -1130,6 +1311,36 @@ SOOVPA<13> IDirect3DResource8_Release_1_0_4361 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DResource8_IsBusy
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirect3DResource8_IsBusy_1_0_4361 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
{
|
||||
// IDirect3DResource8_IsBusy+0x24 : test eax, 0x780000
|
||||
{ 0x24, 0xA9 }, // (Offset,Value)-Pair #1
|
||||
{ 0x25, 0x00 }, // (Offset,Value)-Pair #2
|
||||
{ 0x26, 0x00 }, // (Offset,Value)-Pair #3
|
||||
{ 0x27, 0x78 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// IDirect3DResource8_IsBusy+0x35 : jnz +0x41
|
||||
{ 0x35, 0x75 }, // (Offset,Value)-Pair #5
|
||||
{ 0x36, 0x41 }, // (Offset,Value)-Pair #6
|
||||
|
||||
// IDirect3DResource8_IsBusy+0x4E : mov eax, [ecx+0x14]
|
||||
{ 0x4E, 0x8B }, // (Offset,Value)-Pair #7
|
||||
{ 0x4F, 0x41 }, // (Offset,Value)-Pair #8
|
||||
{ 0x50, 0x14 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirect3DResource8_IsBusy+0x76 : jnb +0x09
|
||||
{ 0x76, 0x73 }, // (Offset,Value)-Pair #10
|
||||
{ 0x77, 0x09 }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirect3DSurface8_GetDesc
|
||||
// ******************************************************************
|
||||
|
@ -1391,6 +1602,16 @@ OOVPATable D3D8_1_0_4361[] =
|
|||
"EmuIDirect3DDevice8_CreatePixelShader"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetPixelShader
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetPixelShader,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_SetPixelShader"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::CreateTexture
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_CreateTexture_1_0_4361,
|
||||
|
@ -1491,6 +1712,46 @@ OOVPATable D3D8_1_0_4361[] =
|
|||
"EmuIDirect3DDevice8_SetRenderState_CullMode"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_TextureFactor
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_TextureFactor,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_SetRenderState_TextureFactor"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_EdgeAntiAlias
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_FillMode
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_FillMode,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_SetRenderState_FillMode"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_Simple
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_Simple,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_SetRenderState_Simple"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_ZEnable
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_4361,
|
||||
|
@ -1501,6 +1762,16 @@ OOVPATable D3D8_1_0_4361[] =
|
|||
"EmuIDirect3DDevice8_SetRenderState_ZEnable"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_StencilEnable
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_StencilEnable,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DDevice8_SetRenderState_StencilEnable"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4361,
|
||||
|
@ -1641,6 +1912,16 @@ OOVPATable D3D8_1_0_4361[] =
|
|||
"EmuIDirect3DResource8_Release"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DResource8::IsBusy
|
||||
{
|
||||
(OOVPA*)&IDirect3DResource8_IsBusy_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DResource8_IsBusy,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirect3DResource8_IsBusy"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DSurface8::GetDesc
|
||||
{
|
||||
(OOVPA*)&IDirect3DSurface8_GetDesc_1_0_4361,
|
||||
|
|
|
@ -489,34 +489,6 @@ SOOVPA<8> IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4627 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * 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
|
||||
// ******************************************************************
|
||||
|
@ -546,65 +518,6 @@ SOOVPA<10> IDirect3DDevice8_SetRenderState_ZBias_1_0_4627 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * 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
|
||||
// ******************************************************************
|
||||
|
@ -660,40 +573,6 @@ SOOVPA<9> IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4627 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * 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
|
||||
// ******************************************************************
|
||||
|
@ -1088,9 +967,9 @@ OOVPATable D3D8_1_0_4627[] =
|
|||
"EmuIDirect3DDevice8_SetRenderState_NormalizeNormals"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_TextureFactor
|
||||
// IDirect3DDevice8::SetRenderState_TextureFactor (* unchanged since 4361 *)
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4627,
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_TextureFactor,
|
||||
|
||||
|
@ -1108,9 +987,9 @@ OOVPATable D3D8_1_0_4627[] =
|
|||
"EmuIDirect3DDevice8_SetRenderState_ZBias"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_EdgeAntiAlias
|
||||
// IDirect3DDevice8::SetRenderState_EdgeAntiAlias (* unchanged since 4361 *)
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4627,
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias,
|
||||
|
||||
|
@ -1118,9 +997,9 @@ OOVPATable D3D8_1_0_4627[] =
|
|||
"EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_FillMode
|
||||
// IDirect3DDevice8::SetRenderState_FillMode (* unchanged since 4361 *)
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4627,
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_FillMode,
|
||||
|
||||
|
@ -1148,9 +1027,9 @@ OOVPATable D3D8_1_0_4627[] =
|
|||
"EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable"
|
||||
#endif
|
||||
},
|
||||
// IDirect3DDevice8::SetRenderState_Simple
|
||||
// IDirect3DDevice8::SetRenderState_Simple (* unchanged since 4361 *)
|
||||
{
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4627,
|
||||
(OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4361,
|
||||
|
||||
xd3d8::EmuIDirect3DDevice8_SetRenderState_Simple,
|
||||
|
||||
|
|
|
@ -953,7 +953,7 @@ HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_CreateVertexShader
|
|||
);
|
||||
|
||||
if(FAILED(hRet))
|
||||
printf("*Warning* we're lying about the creation of a vertex shader!");
|
||||
printf("*Warning* we're lying about the creation of a vertex shader!\n");
|
||||
|
||||
// hey look, we lied
|
||||
hRet = D3D_OK;
|
||||
|
@ -1050,6 +1050,45 @@ HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_CreatePixelShader
|
|||
return hRet;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetPixelShader
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_SetPixelShader
|
||||
(
|
||||
DWORD Handle
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetPixelShader\n"
|
||||
"(\n"
|
||||
" Handle : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), Handle);
|
||||
}
|
||||
#endif
|
||||
|
||||
// ******************************************************************
|
||||
// * redirect to windows d3d
|
||||
// ******************************************************************
|
||||
HRESULT hRet = g_pD3DDevice8->SetPixelShader
|
||||
(
|
||||
Handle
|
||||
);
|
||||
|
||||
// hey look, we lied
|
||||
hRet = D3D_OK;
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
return hRet;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_CreateTexture2
|
||||
// ******************************************************************
|
||||
|
@ -1201,9 +1240,16 @@ HRESULT WINAPI xd3d8::EmuIDirect3DDevice8_SetTexture
|
|||
}
|
||||
#endif
|
||||
|
||||
IDirect3DBaseTexture8 *pBaseTexture8 = pTexture->EmuBaseTexture8;
|
||||
HRESULT hRet;
|
||||
|
||||
HRESULT hRet = g_pD3DDevice8->SetTexture(Stage, pBaseTexture8);
|
||||
if(pTexture == NULL)
|
||||
hRet = g_pD3DDevice8->SetTexture(Stage, NULL);
|
||||
else
|
||||
{
|
||||
IDirect3DBaseTexture8 *pBaseTexture8 = pTexture->EmuBaseTexture8;
|
||||
|
||||
hRet = g_pD3DDevice8->SetTexture(Stage, pBaseTexture8);
|
||||
}
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
|
@ -1501,7 +1547,7 @@ HRESULT WINAPI xd3d8::EmuIDirect3DResource8_Register
|
|||
case X_D3DCOMMON_TYPE_VERTEXBUFFER:
|
||||
{
|
||||
#ifdef _DEBUG_TRACE
|
||||
printf("( Registering VertexBuffer... )\n");
|
||||
printf("EmuIDirect3DResource8_Register :-> VertexBuffer...\n");
|
||||
#endif
|
||||
|
||||
X_D3DVertexBuffer *pVertexBuffer = (X_D3DVertexBuffer*)pResource;
|
||||
|
@ -1537,7 +1583,7 @@ HRESULT WINAPI xd3d8::EmuIDirect3DResource8_Register
|
|||
case X_D3DCOMMON_TYPE_INDEXBUFFER:
|
||||
{
|
||||
#ifdef _DEBUG_TRACE
|
||||
printf("( Registering IndexBuffer... )\n");
|
||||
printf("EmuIDirect3DResource8_Register :-> IndexBuffer...\n");
|
||||
#endif
|
||||
|
||||
X_D3DIndexBuffer *pIndexBuffer = (X_D3DIndexBuffer*)pResource;
|
||||
|
@ -1573,7 +1619,7 @@ HRESULT WINAPI xd3d8::EmuIDirect3DResource8_Register
|
|||
case X_D3DCOMMON_TYPE_TEXTURE:
|
||||
{
|
||||
#ifdef _DEBUG_TRACE
|
||||
printf("( Registering Texture... )\n");
|
||||
printf("EmuIDirect3DResource8_Register :-> Texture...\n");
|
||||
#endif
|
||||
|
||||
X_D3DPixelContainer *pPixelContainer = (X_D3DPixelContainer*)pResource;
|
||||
|
@ -1598,7 +1644,7 @@ HRESULT WINAPI xd3d8::EmuIDirect3DResource8_Register
|
|||
dwHeight = 1 << ((pPixelContainer->Format & X_D3DFORMAT_VSIZE_MASK) >> X_D3DFORMAT_VSIZE_SHIFT);
|
||||
dwBPP = 4;
|
||||
}
|
||||
else if(X_Format == 0x05 /* X_D3DFMT_R5G6B5 */)
|
||||
else if(X_Format == 0x05 /* X_D3DFMT_R5G6B5 */ || X_Format == 0x04 /* X_D3DFMT_A4R4G4B4 */)
|
||||
{
|
||||
bSwizzled = TRUE;
|
||||
|
||||
|
@ -1721,6 +1767,38 @@ ULONG WINAPI xd3d8::EmuIDirect3DResource8_Release
|
|||
return uRet;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DResource8_IsBusy
|
||||
// ******************************************************************
|
||||
BOOL WINAPI xd3d8::EmuIDirect3DResource8_IsBusy
|
||||
(
|
||||
X_D3DResource *pThis
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuD3D8 (0x%X): EmuIDirect3DResource8_IsBusy\n"
|
||||
"(\n"
|
||||
" pThis : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), pThis);
|
||||
}
|
||||
#endif
|
||||
|
||||
IDirect3DResource8 *pResource8 = pThis->EmuResource8;
|
||||
|
||||
// I guess we arent doing anything, just return false..
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DSurface8_GetDesc
|
||||
// ******************************************************************
|
||||
|
@ -2336,6 +2414,37 @@ VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_ZEnable
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetRenderState_StencilEnable
|
||||
// ******************************************************************
|
||||
VOID WINAPI xd3d8::EmuIDirect3DDevice8_SetRenderState_StencilEnable
|
||||
(
|
||||
DWORD Value
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetRenderState_StencilEnable\n"
|
||||
"(\n"
|
||||
" Value : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), Value);
|
||||
}
|
||||
#endif
|
||||
|
||||
g_pD3DDevice8->SetRenderState(D3DRS_STENCILENABLE, Value);
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias
|
||||
// ******************************************************************
|
||||
|
|
|
@ -599,6 +599,36 @@ XBSYSAPI EXPORTNUM(166) xboxkrnl::PVOID NTAPI xboxkrnl::MmAllocateContiguousMemo
|
|||
return pRet;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x00AB - MmFreeContiguousMemory
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(171) VOID NTAPI xboxkrnl::MmFreeContiguousMemory
|
||||
(
|
||||
IN PVOID BaseAddress
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuKrnl (0x%X): MmFreeContiguousMemory\n"
|
||||
"(\n"
|
||||
" BaseAddress : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), BaseAddress);
|
||||
}
|
||||
#endif
|
||||
|
||||
delete BaseAddress;
|
||||
|
||||
EmuSwapFS(); // Xbox FS
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x00B8 - NtAllocateVirtualMemory
|
||||
// ******************************************************************
|
||||
|
|
|
@ -368,6 +368,38 @@ DWORD WINAPI xapi::EmuXInputGetState
|
|||
return ret;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuInputGetState
|
||||
// ******************************************************************
|
||||
DWORD WINAPI xapi::EmuXInputSetState
|
||||
(
|
||||
IN HANDLE hDevice,
|
||||
IN OUT PXINPUT_FEEDBACK pFeedback
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuXapi (0x%X): EmuXInputSetState\n"
|
||||
"(\n"
|
||||
" hDevice : 0x%.08X\n"
|
||||
" pFeedback : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), hDevice, pFeedback);
|
||||
}
|
||||
#endif
|
||||
|
||||
printf("*Warning* Ignoring EmuXInputSetState!\n");
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuCloseHandle
|
||||
// ******************************************************************
|
||||
|
|
|
@ -236,7 +236,7 @@ extern "C" CXBXKRNL_API uint32 KernelThunkTable[367] =
|
|||
(uint32)PANIC(0x00A8), // 0x00A8 (168)
|
||||
(uint32)PANIC(0x00A9), // 0x00A9 (169)
|
||||
(uint32)PANIC(0x00AA), // 0x00AA (170)
|
||||
(uint32)PANIC(0x00AB), // 0x00AB (171)
|
||||
(uint32)&xboxkrnl::MmFreeContiguousMemory, // 0x00AB (171)
|
||||
(uint32)PANIC(0x00AC), // 0x00AC (172)
|
||||
(uint32)PANIC(0x00AD), // 0x00AD (173)
|
||||
(uint32)PANIC(0x00AE), // 0x00AE (174)
|
||||
|
|
|
@ -266,6 +266,39 @@ SOOVPA<12> XInputGetState_1_0_4361 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * XInputSetState
|
||||
// ******************************************************************
|
||||
SOOVPA<12> XInputSetState_1_0_4361 =
|
||||
{
|
||||
0, // Large == 0
|
||||
12, // Count == 12
|
||||
|
||||
{
|
||||
// XInputSetState+0x04 : lea eax, [ecx+0x0A3]
|
||||
{ 0x04, 0x8D }, // (Offset,Value)-Pair #1
|
||||
{ 0x05, 0x81 }, // (Offset,Value)-Pair #2
|
||||
{ 0x06, 0xA3 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// XInputSetState+0x15 : push 0x57
|
||||
{ 0x15, 0x6A }, // (Offset,Value)-Pair #4
|
||||
{ 0x16, 0x57 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// XInputSetState+0x18 : jmp +0x19
|
||||
{ 0x18, 0xEB }, // (Offset,Value)-Pair #6
|
||||
{ 0x19, 0x19 }, // (Offset,Value)-Pair #7
|
||||
|
||||
// XInputSetState+0x2B : mov [edx+0x41], al
|
||||
{ 0x2B, 0x88 }, // (Offset,Value)-Pair #8
|
||||
{ 0x2C, 0x42 }, // (Offset,Value)-Pair #9
|
||||
{ 0x2D, 0x41 }, // (Offset,Value)-Pair #10
|
||||
|
||||
// XInputSetState+0x33 : retn 0x08
|
||||
{ 0x33, 0xC2 }, // (Offset,Value)-Pair #11
|
||||
{ 0x34, 0x08 }, // (Offset,Value)-Pair #12
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CreateThread
|
||||
// ******************************************************************
|
||||
|
@ -492,6 +525,16 @@ OOVPATable XAPI_1_0_4361[] =
|
|||
"EmuXInputGetState"
|
||||
#endif
|
||||
},
|
||||
// XInputSetState
|
||||
{
|
||||
(OOVPA*)&XInputSetState_1_0_4361,
|
||||
|
||||
xapi::EmuXInputSetState,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuXInputSetState"
|
||||
#endif
|
||||
},
|
||||
//* Too High Level
|
||||
// XapiInitProcess
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue