Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade OOVPA symbol group files #208

Merged
merged 32 commits into from
Sep 25, 2024
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
c4975e6
remove some disabled clang format to allow format from now on
RadWolfie Jun 6, 2024
5351651
prepare current changes to work with future code plus fix a hidden bu…
RadWolfie Jun 6, 2024
9bf768c
upgrade symbol groups to include support for stack/params inline exce…
RadWolfie Jun 10, 2024
9e2414b
upgrade d3d8ltcg symbol group to include support for stack/params inline
RadWolfie Jun 17, 2024
d1d5243
extend API support to include symbol type, parameter list and count
RadWolfie Jun 21, 2024
b621237
remove XAPI prefix, no longer necessary plus cause conflict with new …
RadWolfie Jun 21, 2024
5240615
prepare additional helpers to support new API usage better
RadWolfie Jun 22, 2024
47fc07c
replace COUNTARGS_ prefix macro to COUNT_ARRAYSIZE macro generic usage
RadWolfie Jul 1, 2024
4c3fc7d
fix wording of Function to Symbol correctly
RadWolfie Jul 28, 2024
a333fa4
fix an error to allow accept xref derived setter
RadWolfie Jul 29, 2024
2e9676c
add internal_RegisterXRefHelper function
RadWolfie Jul 27, 2024
e2cd7f2
add internal_RegisterValidXRefAddrv2 function
RadWolfie Jul 29, 2024
107501c
unittest: remove multiple possible symbol names for one symbol reference
RadWolfie Jul 15, 2024
b13d981
upgrade XNet/XOnline symbol groups to include support for stack and p…
RadWolfie Jul 2, 2024
80c2298
upgrade DSound symbol groups to include support for stack and params
RadWolfie Jun 23, 2024
542c8bc
upgrade XGraphic symbol groups to include support for stack and params
RadWolfie Jul 16, 2024
ae66846
upgrade XACTENG symbol group to include support for stack and params
RadWolfie Jul 25, 2024
ee89a5e
upgrade Xapi symbol group to include support for stack and params
RadWolfie Jul 27, 2024
3df8541
upgrade d3d8 symbol group to include support for stack and params
RadWolfie Aug 4, 2024
641f6e1
upgrade JVS symbol groups to include support for stack and params
RadWolfie Jul 16, 2024
fa34827
lib: fix missing manual JVS header file in cmake
RadWolfie Jul 29, 2024
a188663
lib: add calling convention support
RadWolfie Sep 18, 2024
c03d338
update d3d8(ltcg) calling conventions
RadWolfie Sep 20, 2024
d9141cd
update DSOUND calling conventions
RadWolfie Sep 20, 2024
577975e
update JVS calling conventions
RadWolfie Sep 20, 2024
acb7e6f
update XActEng calling conventions
RadWolfie Sep 20, 2024
4719e66
update XGraphic calling conventions
RadWolfie Sep 20, 2024
0b79bcd
update XNet/XOnline calling conventions (plus fix parameters for some…
RadWolfie Sep 20, 2024
a167837
update Xapi calling conventions
RadWolfie Sep 20, 2024
a1b1a5b
review remarks
RadWolfie Sep 24, 2024
5b10dbe
replace stk(#) to psh(#) per team votes
RadWolfie Sep 25, 2024
2ee3ab5
fix undefined macros
RadWolfie Sep 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions include/libCallTypes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// SPDX-License-Identifier: ODbL-1.0

CALL_(unknown) // Unknown, intended to be used for "not a function" types and for "function" documentation when reverse-engineering efforts could not narrow it down to either the stack or one of the registers.
CALL_(none)
CALL_(cdecl)
CALL_(stdcall)
CALL_(thiscall)
CALL_(fastcall)
25 changes: 25 additions & 0 deletions include/libParamTypes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// SPDX-License-Identifier: ODbL-1.0

PARAM_TYPE_32(unk) // Unknown, intended to be used for "not a function" types and for "function" documentation when reverse-engineering efforts could not narrow it down to either the stack or one of the registers.
PARAM_TYPE__0(void) // 0 bits
PARAM_TYPE_64(stk2) // 64 bits
PARAM_TYPE_32(stk) // 32 bits
PARAM_TYPE_32(eax) // 32 bits
PARAM_TYPE_16_(ax) // 16 bits
PARAM_TYPE__8_(ah) // 8 bits
PARAM_TYPE__8_(al) // 8 bits
PARAM_TYPE_32(ebx) // 32 bits
PARAM_TYPE_16_(bx) // 16 bits
PARAM_TYPE__8_(bh) // 8 bits
PARAM_TYPE__8_(bl) // 8 bits
PARAM_TYPE_32(ecx) // 32 bits
PARAM_TYPE_16_(cx) // 16 bits
PARAM_TYPE__8_(ch) // 8 bits
PARAM_TYPE__8_(cl) // 8 bits
PARAM_TYPE_32(edx) // 32 bits
PARAM_TYPE_16_(dx) // 16 bits
PARAM_TYPE__8_(dh) // 8 bits
PARAM_TYPE__8_(dl) // 8 bits
PARAM_TYPE_32(ebp) // 32 bits
PARAM_TYPE_32(edi) // 32 bits
PARAM_TYPE_32(esi) // 32 bits
63 changes: 60 additions & 3 deletions include/libXbSymbolDatabase.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,39 @@ static const char* xbe_type_str[XB_XBE_TYPE_MAX] = {
"CHIHIRO"
};

typedef enum _XbSDBSymbolType {
symbol_internal = 0, // Only for internal usage.
symbol_variable,
symbol_function
} XbSDBSymbolType;

typedef enum _XbSDBCallType {
#define CALL_(type) call_##type,
#include <libCallTypes.h>
#undef CALL_
call_max
} XbSDBCallType;

typedef enum _XbSDBParamType {
#define PARAM_TYPE__0(type) param_##type,
#define PARAM_TYPE_64(type) param_##type,
#define PARAM_TYPE_32(type) param_##type,
#define PARAM_TYPE_16_(type) param__##type,
#define PARAM_TYPE__8_(type) param__##type,
#include <libParamTypes.h>
#undef PARAM_TYPE__0
#undef PARAM_TYPE_64
#undef PARAM_TYPE_32
#undef PARAM_TYPE_16_
#undef PARAM_TYPE__8_
param_max
} XbSDBParamType;

typedef struct _XbSDBSymbolParam {
XbSDBParamType type;
const char* const name;
} XbSDBSymbolParam;

#ifndef xbaddr
typedef uint32_t xbaddr;
#endif
Expand Down Expand Up @@ -197,15 +230,18 @@ void XbSymbolDatabase_SetOutputMessage(xb_output_message_t message_func);

/// <summary>
/// To register any detected symbol name with address and build version back to third-party program.
/// NOTE: Be aware of library name will be varity since some libraries are detecting in other sections as well.
/// NOTE: Be aware of library name will be variety since some libraries are detecting in other sections as well.
ergo720 marked this conversation as resolved.
Show resolved Hide resolved
/// </summary>
/// <param name="library_str">Name of the library in string.</param>
/// <param name="library_flag">Name of the library in flag.</param>
/// <param name="xref_index">Output unique xreference of symbol name.</param>
/// <param name="symbol_str">Name of the library in symbol string.</param>
/// <param name="address">Return xbox's virtual address.</param>
/// <param name="build_verison">Found with specific build verison.</param>
typedef void (*xb_symbol_register_t)(const char* library_str, uint32_t library_flag, uint32_t xref_index, const char* symbol_str, xbaddr address, uint32_t build_verison);
/// <param name="build_version">Found with specific build version.</param>
/// <param name="symbol_type">Type of symbol. If symbol type is a function, then the following arguments starting with a param_ prefix will be set.</param>
/// <param name="param_count">Total count of parameters.</param>
/// <param name="param_list">List of parameters.</param>
typedef void (*xb_symbol_register_t)(const char* library_str, uint32_t library_flag, uint32_t xref_index, const char* symbol_str, xbaddr address, uint32_t build_version, uint32_t symbol_type, uint32_t call_type, uint32_t param_count, const XbSDBSymbolParam* param_list);

/// <summary>
/// DEPRECATED: To scan symbols in memory of raw xbe or host's virtual xbox environment.
Expand All @@ -223,6 +259,27 @@ bool XbSymbolScan(const void* xb_header_addr, xb_symbol_register_t register_func
/// <returns>Return "UNKNOWN" string if does not exist in the database. Otherwise will return library name string.</returns>
const char* XbSymbolDatabase_LibraryToString(uint32_t library_flag);

/// <summary>
/// To convert parameter type into string format.
/// </summary>
/// <param name="param_type">Input provided param_type from symbol register callback.</param>
/// <returns>Return "unk" string if does not exist in the database. Otherwise it will return the string representation of the parameter type.</returns>
const char* XbSymbolDatabase_ParamToString(uint32_t param_type);

/// <summary>
/// To convert calling convention type into string format.
/// </summary>
/// <param name="call_type">Input provided call_type from symbol register callback.</param>
/// <returns>Return "unknown" string if does not exist in the database. Otherwise it will return the string representation of the calling convention type.</returns>
const char* XbSymbolDatabase_CallingConventionToString(uint32_t call_type);

/// <summary>
/// To convert a symbol reference index into string format.
/// </summary>
/// <param name="xref_index">Input provided xref_index from symbol register callback.</param>
/// <returns>Returns a demangled symbol name string.</returns>
const char* XbSymbolDatabase_SymbolReferenceToString(uint32_t xref_index);

/// <summary>
/// To convert library name string into flag format.
/// </summary>
Expand Down
18 changes: 9 additions & 9 deletions include/xref/d3d8.def
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,15 @@ XREF_SYMBOL(D3DTSS_TEXCOORDINDEX)


// Offsets :
XREF_SYMBOL(OFFSET_D3DDevice__m_PixelShader) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_D3DDevice__m_Textures) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_D3DDevice__m_Palettes) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_D3DDevice__m_RenderTarget) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_D3DDevice__m_DepthStencil) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_D3DDevice__m_VerticalBlankEvent) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_D3DDevice__m_SwapCallback) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_D3DDevice__m_VBlankCallback) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_D3DDevice__m_VertexShader) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_PixelShader_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_Textures_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_Palettes_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_RenderTarget_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_DepthStencil_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_VerticalBlankEvent_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_SwapCallback_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_VBlankCallback_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(D3DDevice__m_VertexShader_OFFSET) // initially set to XREF_ADDR_DERIVE

// Functions
// include D3D8 prefix
Expand Down
3 changes: 3 additions & 0 deletions include/xref/list_xref.h
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,9 @@ typedef enum _XRefDatabase {
// Also, if XREF_COUNT > sizeof(uint16), enlarge struct OOVPA.XRefSaveIndex (and Value somehow)
} XRefDatabase;

// NOTE: XREF_PUBLIC_INDEX is only for library's internal API usage.
#define XREF_PUBLIC_INDEX(xref_index) xref_index - XREF_KT_COUNT - 1
ergo720 marked this conversation as resolved.
Show resolved Hide resolved

#define XREF_ADDR_UNDETERMINED -1
#define XREF_ADDR_NOT_FOUND ((void*)0)
#define XREF_ADDR_DERIVE 1
85 changes: 42 additions & 43 deletions include/xref/xapilib.def
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
// ******************************************************************

// Variables
XREF_SYMBOL(XAPI__tls_array) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(XAPI__tls_index) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(_tls_array) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(_tls_index) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(g_DeviceType_Gamepad) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(g_DeviceType_IRDongle) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(g_DeviceType_Keyboard) // initially set to XREF_ADDR_DERIVE
Expand All @@ -35,51 +35,50 @@ XREF_SYMBOL(g_XapiAltLett_MU) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(g_XapiMountedMUs) // initially set to XREF_ADDR_DERIVE

// Offsets
XREF_SYMBOL(OFFSET_XapiCurrentFiber) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_XapiLastErrorCode) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(OFFSET_XapiThreadFiberData) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(XapiCurrentFiber_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(XapiLastErrorCode_OFFSET) // initially set to XREF_ADDR_DERIVE
XREF_SYMBOL(XapiThreadFiberData_OFFSET) // initially set to XREF_ADDR_DERIVE

// Functions
// include XAPI prefix
XREF_SYMBOL(IUsbInit_GetMaxDeviceTypeCount)
XREF_SYMBOL(MU_Init)
XREF_SYMBOL(XAPI__cinit)
XREF_SYMBOL(XAPI__rtinit)
XREF_SYMBOL(XAPI_ConvertThreadToFiber)
XREF_SYMBOL(XAPI_CreateEventA)
XREF_SYMBOL(XAPI_CreateFiber)
XREF_SYMBOL(XAPI_CreateMutexA)
XREF_SYMBOL(XAPI_CreateThread)
XREF_SYMBOL(XAPI_DeleteFiber)
XREF_SYMBOL(XAPI_ExitThread)
XREF_SYMBOL(XAPI_GetExitCodeThread)
XREF_SYMBOL(XAPI_GetLastError)
XREF_SYMBOL(XAPI_GetOverlappedResult)
XREF_SYMBOL(XAPI_GetThreadPriority)
XREF_SYMBOL(XAPI_GetTimeZoneInformation)
XREF_SYMBOL(XAPI_GetTypeInformation_4)
XREF_SYMBOL(XAPI_GetTypeInformation_8)
XREF_SYMBOL(XAPI_mainCRTStartup)
XREF_SYMBOL(XAPI_mainXapiStartup)
XREF_SYMBOL(XAPI_MoveFileA)
XREF_SYMBOL(XAPI_OpenEventA)
XREF_SYMBOL(XAPI_OutputDebugStringA)
XREF_SYMBOL(XAPI_OutputDebugStringW)
XREF_SYMBOL(XAPI_PulseEvent)
XREF_SYMBOL(XAPI_QueueUserAPC)
XREF_SYMBOL(XAPI_QueryPerformanceCounter)
XREF_SYMBOL(XAPI_RaiseException)
XREF_SYMBOL(XAPI_ResetEvent)
XREF_SYMBOL(XAPI_SetEvent)
XREF_SYMBOL(XAPI_SetLastError)
XREF_SYMBOL(XAPI_SetThreadPriority)
XREF_SYMBOL(XAPI_SetThreadPriorityBoost)
XREF_SYMBOL(XAPI_SignalObjectAndWait)
XREF_SYMBOL(XAPI_SwitchToFiber)
XREF_SYMBOL(XAPI_SwitchToThread)
XREF_SYMBOL(XAPI_timeKillEvent)
XREF_SYMBOL(XAPI_timeSetEvent)
XREF_SYMBOL(XAPI_UnhandledExceptionFilter)
XREF_SYMBOL(_cinit)
XREF_SYMBOL(_rtinit)
XREF_SYMBOL(ConvertThreadToFiber)
XREF_SYMBOL(CreateEventA)
XREF_SYMBOL(CreateFiber)
XREF_SYMBOL(CreateMutexA)
XREF_SYMBOL(CreateThread)
XREF_SYMBOL(DeleteFiber)
XREF_SYMBOL(ExitThread)
XREF_SYMBOL(GetExitCodeThread)
XREF_SYMBOL(GetLastError)
XREF_SYMBOL(GetOverlappedResult)
XREF_SYMBOL(GetThreadPriority)
XREF_SYMBOL(GetTimeZoneInformation)
XREF_SYMBOL(GetTypeInformation_4)
XREF_SYMBOL(GetTypeInformation_8)
XREF_SYMBOL(mainCRTStartup)
XREF_SYMBOL(mainXapiStartup)
XREF_SYMBOL(MoveFileA)
XREF_SYMBOL(OpenEventA)
XREF_SYMBOL(OutputDebugStringA)
XREF_SYMBOL(OutputDebugStringW)
XREF_SYMBOL(PulseEvent)
XREF_SYMBOL(QueueUserAPC)
XREF_SYMBOL(QueryPerformanceCounter)
XREF_SYMBOL(RaiseException)
XREF_SYMBOL(ResetEvent)
XREF_SYMBOL(SetEvent)
XREF_SYMBOL(SetLastError)
XREF_SYMBOL(SetThreadPriority)
XREF_SYMBOL(SetThreadPriorityBoost)
XREF_SYMBOL(SignalObjectAndWait)
XREF_SYMBOL(SwitchToFiber)
XREF_SYMBOL(SwitchToThread)
XREF_SYMBOL(timeKillEvent)
XREF_SYMBOL(timeSetEvent)
XREF_SYMBOL(UnhandledExceptionFilter)
// Xapi prefix
XREF_SYMBOL(XapiBootToDash)
XREF_SYMBOL(XapiCallThreadNotifyRoutines)
Expand Down
3 changes: 3 additions & 0 deletions projects/libXbSymbolDatabase/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ find_package(Threads)

file(GLOB INCLUDES
"${XBSDB_ROOT_DIR}/include/Xbe.h"
"${XBSDB_ROOT_DIR}/include/libCallTypes.h"
"${XBSDB_ROOT_DIR}/include/libParamTypes.h"
"${XBSDB_ROOT_DIR}/include/libXbSymbolDatabase.h"

# Include xrefs for ABI feature support.
Expand Down Expand Up @@ -36,6 +38,7 @@ file(GLOB HEADERS
"${XBSDB_ROOT_DIR}/src/lib/manual_custom.h"
"${XBSDB_ROOT_DIR}/src/lib/manual_d3d8__ltcg.h"
"${XBSDB_ROOT_DIR}/src/lib/manual_dsound.h"
"${XBSDB_ROOT_DIR}/src/lib/manual_jvs.h"
"${XBSDB_ROOT_DIR}/src/lib/manual_xapilib.h"
"${XBSDB_ROOT_DIR}/src/OOVPADatabase/OOVPA.h"
)
Expand Down
2 changes: 1 addition & 1 deletion src/OOVPADatabase/.clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Cpp11BracedListStyle: 'false'
IndentCaseLabels: 'true'
IndentWidth: '4'
MacroBlockBegin: ^OOVPA_XREF$|^OOVPA_NO_XREF$|^OOVPA_XREF_DETECT$|^OOVPA_NO_XREF_DETECT$|^OOVPA_XREF_EXTEND$|^OOVPA_SIG_HEADER_XREF$|^OOVPA_SIG_HEADER_NO_XREF$|^OOVPA_SIG_HEADER_XREF_DETECT$|^OOVPA_SIG_HEADER_NO_XREF_DETECT$|^OOVPA_SIG_HEADER_XREF_EXTEND$
MacroBlockEnd: ^OOVPA_END$|^OOVPA_SIG_MATCH$
MacroBlockEnd: ^OOVPA_END$|^OOVPA_SIG_MATCH$|^OOVPA_SIG_MATCH_DUMMY$
MaxEmptyLinesToKeep: '2'
PointerAlignment: Left
SortIncludes: 'false'
Expand Down
56 changes: 52 additions & 4 deletions src/OOVPADatabase/D3D8/3911.inl
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ OOVPA_SIG_MATCH(
XREF_ENTRY(0x01, XREF_D3D_g_pDevice),

// add eax, OFFSET_D3DDevice__m_VerticalBlankEvent
XREF_ENTRY(0x18, XREF_OFFSET_D3DDevice__m_VerticalBlankEvent), // <-- Deriving this XRef is the purpose of this OOVPA
XREF_ENTRY(0x18, XREF_D3DDevice__m_VerticalBlankEvent_OFFSET), // <-- Deriving this XRef is the purpose of this OOVPA

// mov eax,[D3D_g_pDevice]
OV_MATCH(0x00, 0xA1),
Expand Down Expand Up @@ -110,6 +110,54 @@ OOVPA_SIG_MATCH(
//
);

// ******************************************************************
// * D3D_g_pDevice
// ******************************************************************
// dummy signature
OOVPA_SIG_HEADER_NO_XREF(D3D_g_pDevice,
0)
OOVPA_SIG_MATCH_DUMMY();

// ******************************************************************
// * D3DDevice__m_PixelShader OFFSET
// ******************************************************************
// dummy signature
OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_PixelShader_OFFSET,
0)
OOVPA_SIG_MATCH_DUMMY();

// ******************************************************************
// * D3DDevice__m_VerticalBlankEvent OFFSET
// ******************************************************************
// dummy signature
OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_VerticalBlankEvent_OFFSET,
0)
OOVPA_SIG_MATCH_DUMMY();

// ******************************************************************
// * D3DDevice__m_SwapCallback OFFSET
// ******************************************************************
// dummy signature
OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_SwapCallback_OFFSET,
0)
OOVPA_SIG_MATCH_DUMMY();

// ******************************************************************
// * D3DDevice__m_VBlankCallback OFFSET
// ******************************************************************
// dummy signature
OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_VBlankCallback_OFFSET,
0)
OOVPA_SIG_MATCH_DUMMY();

// ******************************************************************
// * D3DDevice__m_VertexShader OFFSET
// ******************************************************************
// dummy signature
OOVPA_SIG_HEADER_NO_XREF(D3DDevice__m_VertexShader_OFFSET,
0)
OOVPA_SIG_MATCH_DUMMY();

// ******************************************************************
// * Direct3D_CreateDevice
// ******************************************************************
Expand Down Expand Up @@ -1557,7 +1605,7 @@ OOVPA_SIG_MATCH(
XREF_ENTRY(0x01, XREF_D3D_g_pDevice),

// D3DDevice_BlockUntilVerticalBlank+0x17 : add eax, OFFSET_D3DDevice__m_VerticalBlankEvent
XREF_ENTRY(0x18, XREF_OFFSET_D3DDevice__m_VerticalBlankEvent),
XREF_ENTRY(0x18, XREF_D3DDevice__m_VerticalBlankEvent_OFFSET),

// D3DDevice_BlockUntilVerticalBlank+0x00 : mov eax,[D3D_g_pDevice]
OV_MATCH(0x00, 0xA1),
Expand Down Expand Up @@ -1596,7 +1644,7 @@ OOVPA_SIG_MATCH(
XREF_ENTRY(0x06, XREF_D3D_g_pDevice),

// D3DDevice_SetVerticalBlankCallback+0x0A : mov [ecx+OFFSET_D3DDevice__m_VBlankCallback],eax
XREF_ENTRY(0x0C, XREF_OFFSET_D3DDevice__m_VBlankCallback),
XREF_ENTRY(0x0C, XREF_D3DDevice__m_VBlankCallback_OFFSET),

// D3DDevice_SetVerticalBlankCallback+0x00 : mov eax,[esp+0x04]
OV_MATCH(0x00, 0x8B, 0x44, 0x24, 0x04),
Expand Down Expand Up @@ -1753,7 +1801,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader,
XRefOne)
OOVPA_SIG_MATCH(

XREF_ENTRY(0x12, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived
XREF_ENTRY(0x12, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived

// D3DDevice_SetVertexShader+0x00 : push ebx
{ 0x00, 0x53 },
Expand Down
2 changes: 1 addition & 1 deletion src/OOVPADatabase/D3D8/4034.inl
Original file line number Diff line number Diff line change
Expand Up @@ -1027,7 +1027,7 @@ OOVPA_SIG_HEADER_XREF(D3DDevice_SetVertexShader,
XRefOne)
OOVPA_SIG_MATCH(

XREF_ENTRY(0x13, XREF_OFFSET_D3DDevice__m_VertexShader), // Derived
XREF_ENTRY(0x13, XREF_D3DDevice__m_VertexShader_OFFSET), // Derived

// D3DDevice_SetVertexShader+0x06 : test bl, 1
{ 0x06, 0xF6 },
Expand Down
2 changes: 1 addition & 1 deletion src/OOVPADatabase/D3D8/4039.inl
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ OOVPA_SIG_MATCH(
XREF_ENTRY(0x06, XREF_D3D_g_pDevice),

// D3DDevice_SetSwapCallback+0x0A : mov [ecx+OFFSET_D3DDevice__m_SwapCallback],eax
XREF_ENTRY(0x0C, XREF_OFFSET_D3DDevice__m_SwapCallback),
XREF_ENTRY(0x0C, XREF_D3DDevice__m_SwapCallback_OFFSET),

// D3DDevice_SetSwapCallback+0x00 : mov eax,[esp+0x04]
OV_MATCH(0x00, 0x8B, 0x44, 0x24, 0x04),
Expand Down
Loading