nba jam 2004

This commit is contained in:
Aaron Robinson 2004-04-22 04:25:08 +00:00
parent 929fc3dd49
commit 971be33ed8
10 changed files with 585 additions and 25 deletions

View File

@ -1,5 +1,5 @@
# Microsoft Developer Studio Project File - Name="Cxbx" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# Microsoft Developer Studio Generated Build File, Format Version 60000
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101

BIN
Cxbx.opt

Binary file not shown.

View File

@ -63,10 +63,10 @@ typedef signed long sint32;
//#define _DEBUG_ALLOC
// 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

View File

@ -1230,6 +1230,14 @@ HRESULT WINAPI EmuIDirect3DDevice8_CreatePalette
X_D3DPalette **ppPalette
);
// ******************************************************************
// * func: EmuIDirect3DDevice8_CreatePalette2
// ******************************************************************
X_D3DPalette * WINAPI EmuIDirect3DDevice8_CreatePalette2
(
X_D3DPALETTESIZE Size
);
// ******************************************************************
// * func: EmuIDirect3DDevice8_BlockUntilVerticalBlank
// ******************************************************************
@ -1279,6 +1287,15 @@ HRESULT WINAPI EmuIDirect3DPalette8_Lock
DWORD Flags
);
// ******************************************************************
// * func: EmuIDirect3DPalette8_Lock2
// ******************************************************************
D3DCOLOR * WINAPI EmuIDirect3DPalette8_Lock2
(
X_D3DPalette *pThis,
DWORD Flags
);
// ******************************************************************
// * func: EmuIDirect3DDevice8_GetVertexShaderSize
// ******************************************************************

View File

@ -37,6 +37,7 @@
#include "OOVPA.h"
extern SOOVPA<8> XapiInitProcess_1_0_5558;
extern SOOVPA<8> XapiInitProcess_1_0_5659;
extern OOVPATable XAPI_1_0_5558[];
extern uint32 XAPI_1_0_5558_SIZE;

View File

@ -379,6 +379,9 @@ extern "C" CXBXKRNL_API void NTAPI EmuInit
uint16 MinorVersion = pLibraryVersion[v].wMinorVersion;
uint16 BuildVersion = pLibraryVersion[v].wBuildVersion;
if(BuildVersion == 5659)
BuildVersion = 5558;
char szLibraryName[9] = {0};
for(uint32 c=0;c<8;c++)
@ -423,6 +426,13 @@ extern "C" CXBXKRNL_API void NTAPI EmuInit
else if(BuildVersion >= 5558)
{
pFunc = EmuLocateFunction((OOVPA*)&XapiInitProcess_1_0_5558, lower, upper);
// 5659 has an updated function
if(pFunc == 0)
{
pFunc = EmuLocateFunction((OOVPA*)&XapiInitProcess_1_0_5659, lower, upper);
}
ProcessHeapOffs = 0x51;
RtlCreateHeapOffs = 0x4A;
}

View File

@ -1256,6 +1256,7 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_LoadVertexShader
}
EmuSwapFS(); // Xbox FS
return D3D_OK;
}
@ -1272,8 +1273,8 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_SelectVertexShader
DbgPrintf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SelectVertexShader\n"
"(\n"
" Handle : 0x%.08X\n"
" Address : 0x%.08X\n"
" Handle : 0x%.08X\n"
" Address : 0x%.08X\n"
");\n",
GetCurrentThreadId(), Handle, Address);
@ -1284,7 +1285,16 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_SelectVertexShader
}
else if(Address < 136)
{
g_pD3DDevice8->SetVertexShader(((VERTEX_SHADER *)((X_D3DVertexShader *)g_VertexShaderSlots[Address])->Handle)->Handle);
X_D3DVertexShader *pVertexShader = (X_D3DVertexShader*)g_VertexShaderSlots[Address];
if(pVertexShader != NULL)
{
g_pD3DDevice8->SetVertexShader(((VERTEX_SHADER *)((X_D3DVertexShader *)g_VertexShaderSlots[Address])->Handle)->Handle);
}
else
{
EmuWarning("g_VertexShaderSlots[%d] = 0", Address);
}
}
EmuSwapFS(); // XBox FS
@ -1941,7 +1951,7 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_SetShaderConstantMode
DbgPrintf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetShaderConstantMode\n"
"(\n"
" Mode : 0x%.08X\n"
" Mode : 0x%.08X\n"
");\n",
GetCurrentThreadId(), Mode);
@ -3682,7 +3692,7 @@ HRESULT WINAPI XTL::EmuIDirect3DResource8_Register
dwPitch = dwWidth*2;
dwBPP = 2;
}
else if(X_Format == 0x00 /* X_D3DFMT_L8 */ || X_Format == 0x01 /* X_D3DFMT_AL8 */ || X_Format == 0x1A /* X_D3DFMT_A8L8 */)
else if(X_Format == 0x00 /* X_D3DFMT_L8 */ || X_Format == 0x0B /* X_D3DFMT_P8 */ || X_Format == 0x01 /* X_D3DFMT_AL8 */ || X_Format == 0x1A /* X_D3DFMT_A8L8 */)
{
bSwizzled = TRUE;
@ -6804,18 +6814,30 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_CreatePalette
X_D3DPALETTESIZE Size,
X_D3DPalette **ppPalette
)
{
*ppPalette = EmuIDirect3DDevice8_CreatePalette2(Size);
return D3D_OK;
}
// ******************************************************************
// * func: EmuIDirect3DDevice8_CreatePalette2
// ******************************************************************
XTL::X_D3DPalette * WINAPI XTL::EmuIDirect3DDevice8_CreatePalette2
(
X_D3DPALETTESIZE Size
)
{
EmuSwapFS(); // Win2k/XP FS
DbgPrintf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_CreatePalette\n"
DbgPrintf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_CreatePalette2\n"
"(\n"
" Size : 0x%.08X\n"
" ppPalette : 0x%.08X\n"
");\n",
GetCurrentThreadId(), Size, ppPalette);
*ppPalette = new X_D3DPalette();
GetCurrentThreadId(), Size);
X_D3DPalette *pPalette = new X_D3DPalette();
static int lk[4] =
{
256*sizeof(D3DCOLOR), // D3DPALETTE_256
@ -6824,13 +6846,13 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_CreatePalette
32*sizeof(D3DCOLOR) // D3DPALETTE_32
};
(*ppPalette)->Common = 0;
(*ppPalette)->Lock = 0x8000BEEF; // emulated reference count for palettes
(*ppPalette)->Data = (DWORD)new uint08[lk[Size]];
pPalette->Common = 0;
pPalette->Lock = 0x8000BEEF; // emulated reference count for palettes
pPalette->Data = (DWORD)new uint08[lk[Size]];
EmuSwapFS(); // XBox FS
return D3D_OK;
return pPalette;
}
// ******************************************************************
@ -6915,22 +6937,35 @@ HRESULT WINAPI XTL::EmuIDirect3DPalette8_Lock
D3DCOLOR **ppColors,
DWORD Flags
)
{
*ppColors = EmuIDirect3DPalette8_Lock2(pThis, Flags);
return D3D_OK;
}
// ******************************************************************
// * func: EmuIDirect3DPalette8_Lock2
// ******************************************************************
XTL::D3DCOLOR * WINAPI XTL::EmuIDirect3DPalette8_Lock2
(
X_D3DPalette *pThis,
DWORD Flags
)
{
EmuSwapFS(); // Win2k/XP FS
DbgPrintf("EmuD3D8 (0x%X): EmuIDirect3DPalette8_Lock\n"
"(\n"
" pThis : 0x%.08X\n"
" ppColors : 0x%.08X\n"
" Flags : 0x%.08X\n"
");\n",
GetCurrentThreadId(), ppColors, Flags);
GetCurrentThreadId(), Flags);
*ppColors = (D3DCOLOR*)pThis->Data;
D3DCOLOR *pColors = (D3DCOLOR*)pThis->Data;
EmuSwapFS(); // XBox FS
return D3D_OK;
return pColors;
}
// ******************************************************************

View File

@ -32,6 +32,73 @@
// *
// ******************************************************************
// ******************************************************************
// * IDirect3DDevice8_LoadVertexShader
// ******************************************************************
SOOVPA<10> IDirect3DDevice8_LoadVertexShader_1_0_5558 =
{
0, // Large == 0
7, // Count == 7
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x09, 0x45 },
{ 0x14, 0x75 },
{ 0x21, 0x8B },
{ 0x2D, 0x8B },
{ 0x35, 0x04 },
{ 0x40, 0x00 },
{ 0x4B, 0x5E },
}
};
// ******************************************************************
// * IDirect3DDevice8_SelectVertexShader
// ******************************************************************
SOOVPA<11> IDirect3DDevice8_SelectVertexShader_1_0_5558 =
{
0, // Large == 0
7, // Count == 7
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x12, 0x07 },
{ 0x26, 0x00 },
{ 0x3A, 0x0D },
{ 0x4F, 0x8B },
{ 0x62, 0xE1 },
{ 0x76, 0x3B },
{ 0x8A, 0x89 },
}
};
// ******************************************************************
// * IDirect3DDevice8_SetViewport
// ******************************************************************
SOOVPA<9> IDirect3DDevice8_SetViewport_1_0_5558 =
{
0, // Large == 0
8, // Count == 8
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x1E, 0x86 },
{ 0x3E, 0x1B },
{ 0x5E, 0x8B },
{ 0x7E, 0x6D },
{ 0x9E, 0x81 },
{ 0xBE, 0x0C },
{ 0xDE, 0x75 },
{ 0xFE, 0x85 },
}
};
// ******************************************************************
// * IDirect3DDevice8_Clear
// ******************************************************************
@ -55,6 +122,28 @@ LOOVPA<8> IDirect3DDevice8_Clear_1_0_5558 =
}
};
// ******************************************************************
// * IDirect3DDevice8_CreatePalette2
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_CreatePalette2_1_0_5558 =
{
0, // Large == 0
7, // Count == 7
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x0D, 0x8B },
{ 0x16, 0x00 },
{ 0x23, 0x68 },
{ 0x2E, 0x85 },
{ 0x3D, 0x5E },
{ 0x46, 0x1E },
{ 0x52, 0x89 },
}
};
// ******************************************************************
// * IDirect3DDevice8_SetPixelShader
// ******************************************************************
@ -157,6 +246,76 @@ SOOVPA<8> IDirect3DDevice8_SetRenderState_ZEnable_1_0_5558 =
}
};
// ******************************************************************
// * IDirect3DDevice8_SetLight
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_SetLight_1_0_5558 =
{
0, // Large == 0
8, // Count == 8
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x1E, 0x00 },
{ 0x3E, 0x89 },
{ 0x5E, 0x00 },
{ 0x7E, 0x07 },
{ 0x9E, 0xC8 },
{ 0xBE, 0xC9 },
{ 0xDE, 0x07 },
{ 0xFE, 0xC1 },
}
};
// ******************************************************************
// * IDirect3DDevice8_SetMaterial
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_SetMaterial_1_0_5558 =
{
0, // Large == 0
9, // Count == 9
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x04, 0x08 },
{ 0x0C, 0x81 },
{ 0x0E, 0xF0 },
{ 0x10, 0x00 },
{ 0x16, 0x00 },
{ 0x1F, 0x81 },
{ 0x22, 0x90 },
{ 0x2C, 0x5E },
{ 0x2E, 0x04 },
}
};
// ******************************************************************
// * IDirect3DDevice8_LightEnable
// ******************************************************************
SOOVPA<13> IDirect3DDevice8_LightEnable_1_0_5558 =
{
0, // Large == 0
8, // Count == 8
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x1E, 0x8D },
{ 0x3E, 0xC7 },
{ 0x5E, 0xC7 },
{ 0x7E, 0x00 },
{ 0x9E, 0x85 },
{ 0xBE, 0x01 },
{ 0xDE, 0x00 },
{ 0xFE, 0x83 },
}
};
// ******************************************************************
// * IDirect3DDevice8_SetVertexShader
// ******************************************************************
@ -225,6 +384,38 @@ SOOVPA<7> IDirect3DDevice8_Begin_1_0_5558 =
}
};
// ******************************************************************
// * IDirect3DDevice8_SetPalette
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_SetPalette_1_0_5558 =
{
0, // Large == 0
12, // Count == 12
-1, // XRef Not Saved
0, // XRef Not Used
{
// IDirect3DDevice8_SetPalette+0x0D : mov eax, [edi+esi*4+0x0A88]
{ 0x0D, 0x8B }, // (Offset,Value)-Pair #1
{ 0x0E, 0x84 }, // (Offset,Value)-Pair #2
{ 0x0F, 0xBE }, // (Offset,Value)-Pair #3
{ 0x10, 0x88 }, // (Offset,Value)-Pair #4
{ 0x11, 0x0F }, // (Offset,Value)-Pair #5
// IDirect3DDevice8_SetPalette+0x76 : add esi, 0x41B20
{ 0x76, 0x81 }, // (Offset,Value)-Pair #6
{ 0x77, 0xC7 }, // (Offset,Value)-Pair #7
{ 0x78, 0x20 }, // (Offset,Value)-Pair #8
{ 0x79, 0x1B }, // (Offset,Value)-Pair #9
{ 0x7A, 0x04 }, // (Offset,Value)-Pair #10
// IDirect3DDevice8_SetPalette+0x8A : retn 0x08
{ 0x8A, 0xC2 }, // (Offset,Value)-Pair #11
{ 0x8B, 0x08 }, // (Offset,Value)-Pair #12
}
};
// ******************************************************************
// * IDirect3DDevice8_Swap
// ******************************************************************
@ -247,6 +438,50 @@ SOOVPA<7> IDirect3DDevice8_Swap_1_0_5558 =
}
};
// ******************************************************************
// * IDirect3DDevice8_BlockUntilVerticalBlank
// ******************************************************************
SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_5558 =
{
0, // Large == 0
7, // Count == 7
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x05, 0x6A },
{ 0x08, 0x00 },
{ 0x0D, 0xB0 },
{ 0x12, 0x00 },
{ 0x17, 0x05 },
{ 0x1C, 0x50 },
{ 0x23, 0xC3 },
}
};
// ******************************************************************
// * IDirect3DPalette8_Lock2
// ******************************************************************
SOOVPA<13> IDirect3DPalette8_Lock2_1_0_5558 =
{
0, // Large == 0
7, // Count == 7
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x02, 0x24 },
{ 0x06, 0x8B },
{ 0x0A, 0x75 },
{ 0x12, 0x8B },
{ 0x13, 0x46 },
{ 0x16, 0x00 },
{ 0x1A, 0x5E },
}
};
// ******************************************************************
// * IDirect3DDevice8_SetTransform
// ******************************************************************
@ -270,6 +505,85 @@ SOOVPA<8> IDirect3DDevice8_SetTransform_1_0_5558 =
}
};
// ******************************************************************
// * IDirect3DDevice8_GetBackBuffer2
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_GetBackBuffer2_1_0_5558 =
{
0, // Large == 0
12, // Count == 12
-1, // XRef Not Saved
0, // XRef Not Used
{
// IDirect3DDevice8_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF
{ 0x04, 0x83 }, // (Offset,Value)-Pair #1
{ 0x05, 0xF8 }, // (Offset,Value)-Pair #2
{ 0x06, 0xFF }, // (Offset,Value)-Pair #3
// IDirect3DDevice8_GetBackBuffer2+0x0D : jnz +0x19
{ 0x0D, 0x75 }, // (Offset,Value)-Pair #4
{ 0x0E, 0x19 }, // (Offset,Value)-Pair #5
// IDirect3DDevice8_GetBackBuffer2+0x18 : mov esi, [ecx+eax*4+0x21C0]
{ 0x15, 0x8B }, // (Offset,Value)-Pair #6
{ 0x16, 0xB4 }, // (Offset,Value)-Pair #7
{ 0x17, 0x81 }, // (Offset,Value)-Pair #8
{ 0x18, 0x04 }, // (Offset,Value)-Pair #9
{ 0x19, 0x1A }, // (Offset,Value)-Pair #10
// IDirect3DDevice8_GetBackBuffer2+0x40 : retn 0x04
{ 0x40, 0xC2 }, // (Offset,Value)-Pair #11
{ 0x41, 0x04 }, // (Offset,Value)-Pair #12
}
};
// ******************************************************************
// * IDirect3DDevice8_SetShaderConstantMode
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_SetShaderConstantMode_1_0_5558 =
{
0, // Large == 0
8, // Count == 8
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x1D, 0xFD },
{ 0x3C, 0x8B },
{ 0x5B, 0x0B },
{ 0x7A, 0x56 },
{ 0x99, 0xC0 },
{ 0xB8, 0x00 },
{ 0xD7, 0x89 },
{ 0xF6, 0x00 },
}
};
// ******************************************************************
// * IDirect3DTexture8_LockRect
// ******************************************************************
SOOVPA<17> IDirect3DTexture8_LockRect_1_0_5558 =
{
0, // Large == 0
7, // Count == 7
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x03, 0x14 },
{ 0x08, 0x8B },
{ 0x0D, 0x8B },
{ 0x12, 0x8B },
{ 0x17, 0x50 },
{ 0x20, 0xC2 },
{ 0x21, 0x14 },
}
};
// ******************************************************************
// * D3D8_1_0_5558
// ******************************************************************
@ -285,6 +599,26 @@ OOVPATable D3D8_1_0_5558[] =
"EmuIDirect3D8_CreateDevice"
#endif
},
// IDirect3DDevice8::LoadVertexShader
{
(OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_5558,
XTL::EmuIDirect3DDevice8_LoadVertexShader,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_LoadVertexShader"
#endif
},
// IDirect3DDevice8::SelectVertexShader
{
(OOVPA*)&IDirect3DDevice8_SelectVertexShader_1_0_5558,
XTL::EmuIDirect3DDevice8_SelectVertexShader,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SelectVertexShader"
#endif
},
// IDirect3DDevice8::Clear
{
(OOVPA*)&IDirect3DDevice8_Clear_1_0_5558,
@ -295,6 +629,26 @@ OOVPATable D3D8_1_0_5558[] =
"EmuIDirect3DDevice8_Clear"
#endif
},
// IDirect3DDevice8::CreatePalette2
{
(OOVPA*)&IDirect3DDevice8_CreatePalette2_1_0_5558,
XTL::EmuIDirect3DDevice8_CreatePalette2,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_CreatePalette2"
#endif
},
// IDirect3DDevice8::SetPalette
{
(OOVPA*)&IDirect3DDevice8_SetPalette_1_0_5558,
XTL::EmuIDirect3DDevice8_SetPalette,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetPalette"
#endif
},
// IDirect3DDevice8::Swap
{
(OOVPA*)&IDirect3DDevice8_Swap_1_0_5558,
@ -305,6 +659,16 @@ OOVPATable D3D8_1_0_5558[] =
"EmuIDirect3DDevice8_Swap"
#endif
},
// IDirect3DDevice8::BlockUntilVerticalBlank
{
(OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_5558,
XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_BlockUntilVerticalBlank"
#endif
},
// IDirect3DDevice8::SetPixelShader
{
(OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_5558,
@ -455,6 +819,56 @@ OOVPATable D3D8_1_0_5558[] =
"EmuIDirect3DDevice8_SetRenderState_ZEnable"
#endif
},
// IDirect3DDevice8::SetRenderState_StencilEnable (* unchanged since 4361 *)
{
(OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361,
XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetRenderState_StencilEnable"
#endif
},
// IDirect3DDevice8::SetRenderState_StencilFail (* unchanged since 4432 *)
{
(OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4432,
XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetRenderState_StencilFail"
#endif
},
// IDirect3DDevice8::SetLight
{
(OOVPA*)&IDirect3DDevice8_SetLight_1_0_5558,
XTL::EmuIDirect3DDevice8_SetLight,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetLight"
#endif
},
// IDirect3DDevice8::SetMaterial
{
(OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_5558,
XTL::EmuIDirect3DDevice8_SetMaterial,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetMaterial"
#endif
},
// IDirect3DDevice8::LightEnable
{
(OOVPA*)&IDirect3DDevice8_LightEnable_1_0_5558,
XTL::EmuIDirect3DDevice8_LightEnable,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_LightEnable"
#endif
},
// IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4432 *)
{
(OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4432,
@ -545,6 +959,36 @@ OOVPATable D3D8_1_0_5558[] =
"EmuIDirect3DDevice8_SetStreamSource"
#endif
},
// IDirect3DDevice8::SetViewport
{
(OOVPA*)&IDirect3DDevice8_SetViewport_1_0_5558,
XTL::EmuIDirect3DDevice8_SetViewport,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetViewport"
#endif
},
// IDirect3DDevice8::GetBackBuffer2
{
(OOVPA*)&IDirect3DDevice8_GetBackBuffer2_1_0_5558,
XTL::EmuIDirect3DDevice8_GetBackBuffer2,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_GetBackBuffer2"
#endif
},
// IDirect3DDevice8::SetShaderConstantMode
{
(OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_5558,
XTL::EmuIDirect3DDevice8_SetShaderConstantMode,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetShaderConstantMode"
#endif
},
// IDirect3DResource8::AddRef (* unchanged since 3925 *)
{
(OOVPA*)&IDirect3DResource8_AddRef_1_0_3925,
@ -575,6 +1019,26 @@ OOVPATable D3D8_1_0_5558[] =
"EmuIDirect3DSurface8_GetDesc"
#endif
},
// IDirect3DPalette8::Lock2
{
(OOVPA*)&IDirect3DPalette8_Lock2_1_0_5558,
XTL::EmuIDirect3DPalette8_Lock2,
#ifdef _DEBUG_TRACE
"EmuIDirect3DPalette8_Lock2"
#endif
},
// IDirect3DTexture8::LockRect
{
(OOVPA*)&IDirect3DTexture8_LockRect_1_0_5558,
XTL::EmuIDirect3DTexture8_LockRect,
#ifdef _DEBUG_TRACE
"EmuIDirect3DTexture8_LockRect"
#endif
},
// IDirect3DSurface8::LockRect (* unchanged since 4361 *)
{
(OOVPA*)&IDirect3DSurface8_LockRect_1_0_4361,

View File

@ -93,18 +93,18 @@ SOOVPA<12> IDirect3DDevice8_GetBackBuffer2_1_0_5849 =
{ 0x05, 0xF8 }, // (Offset,Value)-Pair #2
{ 0x06, 0xFF }, // (Offset,Value)-Pair #3
// IDirect3DDevice8_GetBackBuffer+0x0D : jnz +0x19
// IDirect3DDevice8_GetBackBuffer2+0x0D : jnz +0x19
{ 0x0D, 0x75 }, // (Offset,Value)-Pair #4
{ 0x0E, 0x19 }, // (Offset,Value)-Pair #5
// IDirect3DDevice8_GetBackBuffer+0x18 : mov esi, [ecx+eax*4+0x21C0]
// IDirect3DDevice8_GetBackBuffer2+0x18 : mov esi, [ecx+eax*4+0x21C0]
{ 0x15, 0x8B }, // (Offset,Value)-Pair #6
{ 0x16, 0xB4 }, // (Offset,Value)-Pair #7
{ 0x17, 0x81 }, // (Offset,Value)-Pair #8
{ 0x18, 0x14 }, // (Offset,Value)-Pair #9
{ 0x19, 0x1A }, // (Offset,Value)-Pair #10
// IDirect3DDevice8_GetBackBuffer+0x40 : retn 0x04
// IDirect3DDevice8_GetBackBuffer2+0x40 : retn 0x04
{ 0x40, 0xC2 }, // (Offset,Value)-Pair #11
{ 0x41, 0x04 }, // (Offset,Value)-Pair #12
}

View File

@ -216,6 +216,29 @@ SOOVPA<8> XapiInitProcess_1_0_5558 =
}
};
// ******************************************************************
// * XapiInitProcess
// ******************************************************************
SOOVPA<8> XapiInitProcess_1_0_5659 =
{
0, // Large == 0
8, // Count == 8
-1, // Xref Not Saved
0, // Xref Not Used
{
{ 0x22, 0x6A },
{ 0x3E, 0x01 },
{ 0x5E, 0xEB },
{ 0x7E, 0x8B },
{ 0x9F, 0x68 },
{ 0xBE, 0x01 },
{ 0xDE, 0x6A },
{ 0xFE, 0x02 },
}
};
// ******************************************************************
// * XAPI_1_0_5558
// ******************************************************************
@ -391,6 +414,16 @@ OOVPATable XAPI_1_0_5558[] =
"EmuXapiInitProcess"
#endif
},
// XapiInitProcess
{
(OOVPA*)&XapiInitProcess_1_0_5659,
XTL::EmuXapiInitProcess,
#ifdef _DEBUG_TRACE
"EmuXapiInitProcess"
#endif
},
// XapiBootToDash (* unchanged since 1.0.3911 *)
{
(OOVPA*)&XapiBootDash_1_0_3911,