Merge remote-tracking branch 'upstream/master' into fnc-4

This commit is contained in:
jarupxx 2017-02-10 08:22:12 +09:00
commit 4e5040430c
86 changed files with 4319 additions and 3902 deletions

View File

@ -128,7 +128,7 @@ XBSYSAPI EXPORTNUM(108) VOID NTAPI KeInitializeEvent
(
IN PRKEVENT Event,
IN EVENT_TYPE Type,
IN BOOLEAN State
IN BOOLEAN SignalState
);
// ******************************************************************

View File

@ -12,13 +12,44 @@
#ifndef XBOXKRNL_OB_H
#define XBOXKRNL_OB_H
XBSYSAPI VOID *ObCreateObject;
// ******************************************************************
// * 0x00EF - ObCreateObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(239) NTSTATUS NTAPI ObCreateObject
(
IN POBJECT_TYPE ObjectType,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN ULONG ObjectBodySize,
OUT PVOID *Object
);
// ******************************************************************
// * 0x00F0 - ObDirectoryObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(240) OBJECT_TYPE ObDirectoryObjectType;
XBSYSAPI VOID *ObInsertObject;
XBSYSAPI VOID *ObMakeTemporaryObject;
// ******************************************************************
// * 0x00F1 - ObInsertObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(241) NTSTATUS NTAPI ObInsertObject
(
IN PVOID Object,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN ULONG ObjectPointerBias,
OUT PHANDLE Handle
);
// ******************************************************************
// * 0x00F2 - ObMakeTemporaryObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(242) VOID NTAPI ObMakeTemporaryObject
(
IN PVOID Object
);
// ******************************************************************
// * 0x00F3 - ObOpenObjectByName()
// ******************************************************************
XBSYSAPI EXPORTNUM(243) NTSTATUS NTAPI ObOpenObjectByName
(
IN POBJECT_ATTRIBUTES ObjectAttributes,
@ -27,9 +58,24 @@ XBSYSAPI EXPORTNUM(243) NTSTATUS NTAPI ObOpenObjectByName
OUT PHANDLE Handle
);
XBSYSAPI VOID *ObOpenObjectByPointer;
// ******************************************************************
// * 0x00F4 - ObOpenObjectByPointer()
// ******************************************************************
XBSYSAPI EXPORTNUM(244) NTSTATUS NTAPI ObOpenObjectByPointer
(
IN PVOID Object,
IN POBJECT_TYPE ObjectType,
OUT PHANDLE Handle
);
// ******************************************************************
// * 0x00F5 - ObpObjectHandleTable
// ******************************************************************
XBSYSAPI EXPORTNUM(245) DWORD ObpObjectHandleTable[1];
// ******************************************************************
// * 0x00F6 - ObReferenceObjectByHandle()
// ******************************************************************
XBSYSAPI EXPORTNUM(246) NTSTATUS NTAPI ObReferenceObjectByHandle
(
IN HANDLE Handle,
@ -37,17 +83,48 @@ XBSYSAPI EXPORTNUM(246) NTSTATUS NTAPI ObReferenceObjectByHandle
OUT PVOID *ReturnedObject
);
// ******************************************************************
// * 0x00F7 - ObReferenceObjectByName()
// ******************************************************************
XBSYSAPI EXPORTNUM(247) NTSTATUS NTAPI ObReferenceObjectByName
(
IN POBJECT_STRING ObjectName,
IN ULONG Attributes,
IN POBJECT_TYPE ObjectType,
IN OUT PVOID ParseContext OPTIONAL,
OUT PVOID *Object
);
XBSYSAPI VOID *ObReferenceObjectByName;
XBSYSAPI VOID *ObReferenceObjectByPointer;
// ******************************************************************
// * 0x00F8 - ObReferenceObjectByPointer()
// ******************************************************************
XBSYSAPI EXPORTNUM(248) NTSTATUS NTAPI ObReferenceObjectByPointer
(
IN PVOID Object,
IN POBJECT_TYPE ObjectType
);
// ******************************************************************
// * 0x00F9 - ObSymbolicLinkObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(249) OBJECT_TYPE ObSymbolicLinkObjectType;
// ******************************************************************
// * 0x00FA - ObfDereferenceObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(250) VOID FASTCALL ObfDereferenceObject
(
IN PVOID Object
);
XBSYSAPI VOID *ObfReferenceObject;
// ******************************************************************
// * 0x00FB - ObfReferenceObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(251) VOID FASTCALL ObfReferenceObject
(
IN PVOID Object
);
#endif

View File

@ -98,6 +98,7 @@ typedef long INT_PTR;
typedef signed __int64 LONGLONG;
typedef unsigned __int64 ULONGLONG;
typedef wchar_t WCHAR;
typedef unsigned __int64 QUAD; // 8 byte aligned 8 byte long
// ******************************************************************
// * Pointer types
@ -123,6 +124,7 @@ typedef __int32 LONG_PTR; // TODO : Update this declaration for 64 bit
typedef unsigned __int32 ULONG_PTR; // TODO : Update this declaration for 64 bit
typedef LONGLONG *PLONGLONG;
typedef QUAD *PQUAD;
// ******************************************************************
// ANSI (Multi-byte Character) types
@ -355,7 +357,10 @@ typedef struct _STRING
}
STRING, ANSI_STRING, *PSTRING, *PANSI_STRING;
typedef STRING OBJECT_STRING;
// ******************************************************************
// * OBJECT_STRING
// ******************************************************************
typedef STRING OBJECT_STRING, *POBJECT_STRING;
// ******************************************************************
// * UNICODE_STRING
@ -415,6 +420,9 @@ typedef _SLIST_ENTRY {
#endif // _WIN64
*/
// ******************************************************************
// * SLIST_HEADER
// ******************************************************************
typedef union _SLIST_HEADER {
ULONGLONG Alignment;
struct {
@ -578,24 +586,64 @@ OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
// ******************************************************************
// * OBJECT_TYPE
// ******************************************************************
typedef PVOID(NTAPI *OB_ALLOCATE_METHOD)(
IN SIZE_T NumberOfBytes,
IN ULONG Tag
);
typedef VOID(NTAPI *OB_FREE_METHOD)(
IN PVOID Pointer
);
typedef VOID(NTAPI *OB_CLOSE_METHOD)(
IN PVOID Object,
IN ULONG SystemHandleCount
);
typedef VOID(NTAPI *OB_DELETE_METHOD)(
IN PVOID Object
);
typedef NTSTATUS(NTAPI *OB_PARSE_METHOD)(
IN PVOID ParseObject,
IN struct _OBJECT_TYPE *ObjectType,
IN ULONG Attributes,
IN OUT POBJECT_STRING CompleteName,
IN OUT POBJECT_STRING RemainingName,
IN OUT PVOID Context OPTIONAL,
OUT PVOID *Object
);
typedef struct _OBJECT_TYPE
{
/* TODO : Declare missing types and enable corresponding members :
OB_ALLOCATE_METHOD AllocateProcedure;
OB_FREE_METHOD FreeProcedure;
OB_CLOSE_METHOD CloseProcedure;
OB_DELETE_METHOD DeleteProcedure;
OB_PARSE_METHOD ParseProcedure;
*/
PVOID DefaultObject;
ULONG PoolTag;
}
OBJECT_TYPE, *POBJECT_TYPE;
// ******************************************************************
// * OBJECT_HEADER
// ******************************************************************
typedef struct _OBJECT_HEADER {
LONG PointerCount;
LONG HandleCount;
POBJECT_TYPE Type;
ULONG Flags;
QUAD Body;
} OBJECT_HEADER, *POBJECT_HEADER;
// Source : DXBX
typedef ULONG_PTR KSPIN_LOCK;
typedef KSPIN_LOCK *PKSPIN_LOCK;
// ******************************************************************
// * FILETIME
// ******************************************************************
// Source : DXBX
typedef struct _FILETIME
{
@ -604,6 +652,9 @@ typedef struct _FILETIME
}
FILETIME, *PFILETIME;
// ******************************************************************
// * XBOX_REFURB_INFO
// ******************************************************************
// Source : DXBX (Xbox Refurb Info)
typedef struct _XBOX_REFURB_INFO
{
@ -615,6 +666,9 @@ XBOX_REFURB_INFO, *PXBOX_REFURB_INFO;
#define EXCEPTION_MAXIMUM_PARAMETERS 15 // maximum number of exception parameters
// ******************************************************************
// * EXCEPTION_RECORD
// ******************************************************************
// Source : DXBX
typedef struct _EXCEPTION_RECORD
{
@ -1073,6 +1127,9 @@ PCI_SLOT_NUMBER, *PPCI_SLOT_NUMBER;
#define PCI_TYPE1_ADDR_PORT ((PULONG) 0xCF8)
#define PCI_TYPE1_DATA_PORT 0xCFC
// ******************************************************************
// * PCI_TYPE1_CFG_BITS
// ******************************************************************
typedef struct _PCI_TYPE1_CFG_BITS {
union {
struct {
@ -1203,6 +1260,9 @@ DISPATCHER_HEADER;
typedef LONG KPRIORITY;
// ******************************************************************
// * KEVENT
// ******************************************************************
typedef struct _KEVENT
{
DISPATCHER_HEADER Header;
@ -1210,13 +1270,17 @@ typedef struct _KEVENT
//KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT;
KEVENT, *PKEVENT, *PRKEVENT; // even with undefined RESTRICTED_POINTER, this doesn't compile
// ******************************************************************
// EVENT_BASIC_INFORMATION - same as Windows
// ******************************************************************
typedef struct _EVENT_BASIC_INFORMATION {
EVENT_TYPE EventType;
LONG EventState;
} EVENT_BASIC_INFORMATION, *PEVENT_BASIC_INFORMATION;
// ******************************************************************
// KSEMAPHORE
// ******************************************************************
typedef struct _KSEMAPHORE
{
DISPATCHER_HEADER Header;
@ -1224,19 +1288,26 @@ typedef struct _KSEMAPHORE
}
KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE;
// ******************************************************************
// SEMAPHORE_BASIC_INFORMATION - same as Windows
// ******************************************************************
typedef struct _SEMAPHORE_BASIC_INFORMATION {
LONG CurrentCount;
LONG MaximumCount;
} SEMAPHORE_BASIC_INFORMATION, *PSEMAPHORE_BASIC_INFORMATION;
// ******************************************************************
// MUTANT_BASIC_INFORMATION - same as Windows
// ******************************************************************
typedef struct _MUTANT_BASIC_INFORMATION {
LONG CurrentCount;
BOOLEAN OwnedByCaller;
BOOLEAN AbandonedState;
} MUTANT_BASIC_INFORMATION, *PMUTANT_BASIC_INFORMATION;
// ******************************************************************
// ERWLOCK
// ******************************************************************
typedef struct _ERWLOCK
{
LONG LockCount;
@ -1248,6 +1319,9 @@ typedef struct _ERWLOCK
}
ERWLOCK, *PERWLOCK;
// ******************************************************************
// KDEVICE_QUEUE
// ******************************************************************
typedef struct _KDEVICE_QUEUE
{
CSHORT Type; // 0x00
@ -1257,8 +1331,14 @@ typedef struct _KDEVICE_QUEUE
}
KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE;
// ******************************************************************
// FILE_SEGMENT_ELEMENT
// ******************************************************************
typedef PVOID PFILE_SEGMENT_ELEMENT;
// ******************************************************************
// IRP
// ******************************************************************
typedef struct _IRP
{
CSHORT Type; // 0x00
@ -1280,6 +1360,9 @@ typedef struct _IRP
}
IRP, *PIRP;
// ******************************************************************
// DEVICE_OBJECT
// ******************************************************************
typedef struct _DEVICE_OBJECT
{
CSHORT Type;
@ -1302,6 +1385,9 @@ typedef struct _DEVICE_OBJECT
}
DEVICE_OBJECT, *PDEVICE_OBJECT;
// ******************************************************************
// PDRIVER_OBJECT
// ******************************************************************
typedef VOID *PDRIVER_OBJECT;
// ******************************************************************
@ -1556,6 +1642,9 @@ NT_TIB, *PNT_TIB;
// }
// KEXECUTE_OPTIONS, *PKEXECUTE_OPTIONS;
// ******************************************************************
// * KPROCESS
// ******************************************************************
typedef struct _KPROCESS
{
/* 0x0/0 */ LIST_ENTRY ReadyListHead;
@ -1569,6 +1658,9 @@ typedef struct _KPROCESS
}
KPROCESS, *PKPROCESS;
// ******************************************************************
// * KAPC_STATE
// ******************************************************************
typedef struct _KAPC_STATE
{
LIST_ENTRY ApcListHead[2];
@ -1580,12 +1672,28 @@ typedef struct _KAPC_STATE
}
KAPC_STATE, *PKAPC_STATE;
// ******************************************************************
// * KGATE
// ******************************************************************
typedef struct _KGATE
{
DISPATCHER_HEADER Header;
}
KGATE, *PKGATE;
// ******************************************************************
// * KMUTANT
// ******************************************************************
typedef struct _KMUTANT {
DISPATCHER_HEADER Header;
LIST_ENTRY MutantListEntry;
struct _KTHREAD *RESTRICTED_POINTER OwnerThread;
BOOLEAN Abandoned;
} KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT;
// ******************************************************************
// * KQUEUE
// ******************************************************************
typedef struct _KQUEUE
{
DISPATCHER_HEADER Header;
@ -1596,6 +1704,9 @@ typedef struct _KQUEUE
}
KQUEUE, *PKQUEUE;
// ******************************************************************
// * EXCEPTION_DISPOSITION
// ******************************************************************
typedef enum _EXCEPTION_DISPOSITION
{
ExceptionContinueExecution = 0,
@ -1605,7 +1716,10 @@ typedef enum _EXCEPTION_DISPOSITION
}
EXCEPTION_DISPOSITION, *PEXCEPTION_DISPOSITION;
typedef struct _EXCEPTION_REGISTRATION_RECORD *PEXCEPTION_REGISTRATION_RECORD;
// ******************************************************************
// * EXCEPTION_REGISTRATION_RECORD
// ******************************************************************
typedef struct _EXCEPTION_REGISTRATION_RECORD *PEXCEPTION_REGISTRATION_RECORD; // forward
typedef struct _EXCEPTION_REGISTRATION_RECORD
{
@ -1614,6 +1728,9 @@ typedef struct _EXCEPTION_REGISTRATION_RECORD
}
EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
// ******************************************************************
// * KTRAP_FRAME
// ******************************************************************
typedef struct _KTRAP_FRAME
{
ULONG DbgEbp;
@ -1656,7 +1773,11 @@ typedef struct _KTRAP_FRAME
}
KTRAP_FRAME, *PKTRAP_FRAME;
typedef struct _KTHREAD KTHREAD, *PKTHREAD;
typedef struct _KTHREAD KTHREAD, *PKTHREAD; // forward
// ******************************************************************
// * KWAIT_BLOCK
// ******************************************************************
typedef struct _KWAIT_BLOCK
{
@ -1670,6 +1791,9 @@ typedef struct _KWAIT_BLOCK
}
KWAIT_BLOCK, *PKWAIT_BLOCK;
// ******************************************************************
// * KAPC
// ******************************************************************
typedef struct _KAPC
{
/* 0x0/0 */ USHORT Type;
@ -2105,6 +2229,9 @@ static VOID WRITE_REGISTER_ULONG(PVOID Address, ULONG Value)
};
}
// ******************************************************************
// * SCSI_PASS_THROUGH_DIRECT
// ******************************************************************
typedef struct _SCSI_PASS_THROUGH_DIRECT {
USHORT Length;
UCHAR ScsiStatus;
@ -2121,6 +2248,9 @@ typedef struct _SCSI_PASS_THROUGH_DIRECT {
UCHAR Cdb[16];
}SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
// ******************************************************************
// * MODE_PARAMETER_HEADER10
// ******************************************************************
typedef struct _MODE_PARAMETER_HEADER10 {
UCHAR ModeDataLength[2];
UCHAR MediumType;
@ -2129,6 +2259,9 @@ typedef struct _MODE_PARAMETER_HEADER10 {
UCHAR BlockDescriptorLength[2];
}MODE_PARAMETER_HEADER10, *PMODE_PARAMETER_HEADER10;
// ******************************************************************
// * DVDX2_AUTHENTICATION_PAGE
// ******************************************************************
typedef struct _DVDX2_AUTHENTICATION_PAGE {
UCHAR Unknown[2];
UCHAR PartitionArea;
@ -2138,11 +2271,17 @@ typedef struct _DVDX2_AUTHENTICATION_PAGE {
ULONG Unknown3[3];
} DVDX2_AUTHENTICATION_PAGE, *PDVDX2_AUTHENTICATION_PAGE;
// ******************************************************************
// * DVDX2_AUTHENTICATION
// ******************************************************************
typedef struct _DVDX2_AUTHENTICATION {
MODE_PARAMETER_HEADER10 Header;
DVDX2_AUTHENTICATION_PAGE AuthenticationPage;
} DVDX2_AUTHENTICATION, *PDVDX2_AUTHENTICATION;
// ******************************************************************
// * XBEIMAGE_SECTION
// ******************************************************************
// Section headers - Source: XBMC
// See Xbe.h struct SectionHeader
typedef struct _XBE_SECTION // Was _XBE_SECTIONHEADER

View File

@ -209,8 +209,12 @@ extern "C" CXBXKRNL_API void CxbxKrnlMain(int argc, char* argv[])
// Copy over loaded Xbe Header to specified base address
memcpy((void*)CxbxKrnl_Xbe->m_Header.dwBaseAddr, &CxbxKrnl_Xbe->m_Header, sizeof(Xbe::Header));
// Copy over the certificate
memcpy((void*)(CxbxKrnl_Xbe->m_Header.dwBaseAddr + sizeof(Xbe::Header)), CxbxKrnl_Xbe->m_HeaderEx, CxbxKrnl_Xbe->m_ExSize);
// Copy over the library versions
memcpy((void*)CxbxKrnl_Xbe->m_Header.dwLibraryVersionsAddr, CxbxKrnl_Xbe->m_LibraryVersion, CxbxKrnl_Xbe->m_Header.dwLibraryVersions * sizeof(DWORD));
// TODO : Actually, instead of copying from CxbxKrnl_Xbe, we should load the entire Xbe directly into memory, like Dxbx does.
// Load Sections
for (uint32 i = 0; i < CxbxKrnl_Xbe->m_Header.dwSections; i++) {
memcpy((void*)CxbxKrnl_Xbe->m_SectionHeader[i].dwVirtualAddr, CxbxKrnl_Xbe->m_bzSection[i], CxbxKrnl_Xbe->m_SectionHeader[i].dwSizeofRaw);
@ -358,9 +362,11 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
}
#ifdef _DEBUG_TRACE
VerifyHLEDataBase();
// VerifyHLEDataBase();
#endif
// TODO : The following seems to cause a crash when booting the game "Forza Motorsport",
// according to https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/101#issuecomment-277230140
{
// Create a fake kernel header for XapiRestrictCodeSelectorLimit
// Thanks advancingdragon / DirtBox
@ -392,9 +398,18 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
// Read which components need to be LLE'ed :
int CxbxLLE_Flags;
g_EmuShared->GetFlagsLLE(&CxbxLLE_Flags);
bLLE_APU = (CxbxLLE_Flags & LLE_APU) > 0;
if (bLLE_APU)
DbgPrintf("EmuMain : LLE enabled for APU.\n");
bLLE_GPU = (CxbxLLE_Flags & LLE_GPU) > 0;
if (bLLE_GPU)
DbgPrintf("EmuMain : LLE enabled for GPU.\n");
bLLE_JIT = (CxbxLLE_Flags & LLE_JIT) > 0;
if (bLLE_JIT)
DbgPrintf("EmuMain : LLE enabled for JIT.\n");
// Initialize devices :
char szBuffer[MAX_PATH];
@ -525,10 +540,10 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
else
{
DbgPrintf("EmuMain: Initializing Direct3D.\n");
XTL::EmuD3DInit(pXbeHeader, dwXbeHeaderSize);
XTL::EmuD3DInit();
}
EmuHLEIntercept(pLibraryVersion, pXbeHeader);
EmuHLEIntercept(pXbeHeader);
//
// initialize FS segment selector
@ -715,8 +730,3 @@ extern "C" CXBXKRNL_API void CxbxKrnlPanic()
CxbxKrnlCleanup("Kernel Panic!");
}
extern "C" CXBXKRNL_API void CxbxKrnlNoFunc()
{
DbgPrintf("EmuMain: CxbxKrnlNoFunc()\n");
}

View File

@ -46,6 +46,11 @@
extern "C" {
#endif
#define OPCODE_NOP_90 0x90
#define OPCODE_INT3_CC 0xCC
#define OPCODE_CALL_E8 0xE8
#define OPCODE_JMP_E9 0xE9
/*! xbaddr is the type of a physical address */
typedef uint32 xbaddr;

View File

@ -63,7 +63,7 @@ extern volatile bool g_bEmuException;
extern volatile bool g_bEmuSuspended;
// global exception patching address
extern uint32 funcExclude[2048];
extern void * funcExclude[2048];
// partition emulation directory handles
extern HANDLE g_hCurDir;

View File

@ -35,9 +35,9 @@
#include <malloc.h>
#ifdef _DEBUG_ALLOC
#define CxbxMalloc(x) CxbxMallocDebug(x, __FILE__, __LINE__)
#define CxbxCalloc(x, y) CxbxCallocDebug(x, y, __FILE__, __LINE__)
#define CxbxFree(x) CxbxFreeDebug(x, __FILE__, __LINE__)
#define CxbxMalloc(Size) CxbxMallocDebug(Size, __FILE__, __LINE__)
#define CxbxCalloc(Num, Size) CxbxCallocDebug(Num, Size, __FILE__, __LINE__)
#define CxbxFree(Addr) CxbxFreeDebug(Addr, __FILE__, __LINE__)
#define CxbxRtlAlloc(Heap, Flags, Bytes) CxbxRtlAllocDebug(Heap, Flags, Bytes, __FILE__, __LINE__)
#define CxbxRtlFree(Heap, Flags, pMem) CxbxRtlFreeDebug(Heap, Flags, pMem, __FILE__, __LINE__)
#define CxbxRtlRealloc(Heap, Flags, pMem, Bytes) CxbxRtlReallocDebug(Heap, Flags, pMem, Bytes, __FILE__, __LINE__)
@ -115,9 +115,9 @@ DWORD CxbxVirtualQueryDebug(LPCVOID lpAddress,
void CxbxAllocDump(bool DumpData);
#else // _DEBUG_ALLOC
#define CxbxMalloc(x) malloc(x)
#define CxbxCalloc(x, y) calloc(x, y)
#define CxbxFree(x) free(x)
#define CxbxMalloc(Size) malloc(Size)
#define CxbxCalloc(Num, Size) calloc(Num, Size)
#define CxbxFree(Addr) free(Addr)
#define CxbxRtlAlloc(Heap, Flags, Bytes) NtDll::RtlAllocateHeap(Heap, Flags, Bytes)
#define CxbxRtlFree(Heap, Flags, pMem) NtDll::RtlFreeHeap(Heap, Flags, pMem)
#define CxbxRtlRealloc(Heap, Flags, pMem, Bytes) NtDll::RtlReAllocateHeap(Heap, Flags, pMem, Bytes)

View File

@ -138,7 +138,7 @@ static DWORD g_dwVertexShaderUsage = 0;
static DWORD g_VertexShaderSlots[136];
// cached palette pointer
static PVOID pCurrentPalette;
static PVOID pCurrentPalette = nullptr;
// cached palette size
static DWORD dwCurrentPaletteSize = -1;
@ -239,7 +239,7 @@ VOID XTL::CxbxInitWindow(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
}
// Direct3D initialization (called before emulation begins)
VOID XTL::EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize)
VOID XTL::EmuD3DInit()
{
// create the create device proxy thread
{
@ -2402,12 +2402,10 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVertexShader)
pDeclaration, pFunction, pHandle, Usage);
// create emulated shader struct
X_D3DVertexShader *pD3DVertexShader = (X_D3DVertexShader*)CxbxMalloc(sizeof(X_D3DVertexShader));
VERTEX_SHADER *pVertexShader = (VERTEX_SHADER*)CxbxMalloc(sizeof(VERTEX_SHADER));
X_D3DVertexShader *pD3DVertexShader = (X_D3DVertexShader*)CxbxCalloc(1, sizeof(X_D3DVertexShader));
VERTEX_SHADER *pVertexShader = (VERTEX_SHADER*)CxbxCalloc(1, sizeof(VERTEX_SHADER));
// TODO: Intelligently fill out these fields as necessary
ZeroMemory(pD3DVertexShader, sizeof(X_D3DVertexShader));
ZeroMemory(pVertexShader, sizeof(VERTEX_SHADER));
// HACK: TODO: support this situation
if(pDeclaration == NULL)
@ -2818,8 +2816,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreatePixelShader)
// CreatePixelShader() is expected to return a pHandle directly to a shader interface.
/*
PIXEL_SHADER *pPixelShader = (PIXEL_SHADER*)CxbxMalloc(sizeof(PIXEL_SHADER));
ZeroMemory(pPixelShader, sizeof(PIXEL_SHADER));
PIXEL_SHADER *pPixelShader = (PIXEL_SHADER*)CxbxCalloc(1, sizeof(PIXEL_SHADER)); // Clear, to prevent side-effects on random contents
memcpy(&pPixelShader->PSDef, pPSDef, sizeof(X_D3DPIXELSHADERDEF));
@ -3201,11 +3198,11 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVolumeTexture)
// If YUY2 is not supported in hardware, we'll actually mark this as a special fake texture (set highest bit)
(*ppVolumeTexture)->Data = X_D3DRESOURCE_DATA_FLAG_SPECIAL | X_D3DRESOURCE_DATA_FLAG_YUVSURF;
(*ppVolumeTexture)->Lock = dwPtr;
(*ppVolumeTexture)->Format = 0x24;
(*ppVolumeTexture)->Format = Format; // TODO : apply << X_D3DFORMAT_FORMAT_SHIFT here?
(*ppVolumeTexture)->Size = (g_dwOverlayW & X_D3DSIZE_WIDTH_MASK);
(*ppVolumeTexture)->Size |= (g_dwOverlayH << X_D3DSIZE_HEIGHT_SHIFT);
(*ppVolumeTexture)->Size |= (g_dwOverlayP << X_D3DSIZE_PITCH_SHIFT);
(*ppVolumeTexture)->Size = (g_dwOverlayW & X_D3DSIZE_WIDTH_MASK)
| (g_dwOverlayH << X_D3DSIZE_HEIGHT_SHIFT)
| (g_dwOverlayP << X_D3DSIZE_PITCH_SHIFT);
hRet = D3D_OK;
}
@ -4601,13 +4598,14 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
*pRefCount = 1;
// If YUY2 is not supported in hardware, we'll actually mark this as a special fake texture (set highest bit)
pPixelContainer->Common = 1; // Set refcount to 1
pPixelContainer->Data = X_D3DRESOURCE_DATA_FLAG_SPECIAL | X_D3DRESOURCE_DATA_FLAG_YUVSURF;
pPixelContainer->Lock = dwPtr;
pPixelContainer->Format = 0x24;
pPixelContainer->Format = (X_D3DFMT_YUY2 << X_D3DFORMAT_FORMAT_SHIFT);
pPixelContainer->Size = (g_dwOverlayW & X_D3DSIZE_WIDTH_MASK);
pPixelContainer->Size |= (g_dwOverlayH << X_D3DSIZE_HEIGHT_SHIFT);
pPixelContainer->Size |= (g_dwOverlayP << X_D3DSIZE_PITCH_SHIFT);
pPixelContainer->Size |= (g_dwOverlayH << X_D3DSIZE_HEIGHT_SHIFT) & X_D3DSIZE_HEIGHT_MASK;
pPixelContainer->Size |= (g_dwOverlayP << X_D3DSIZE_PITCH_SHIFT) & X_D3DSIZE_PITCH_MASK;
}
else
{
@ -4810,8 +4808,15 @@ HRESULT WINAPI XTL::EMUPATCH(D3DResource_Register)
{
// Read P8 pixel :
unsigned char p = (unsigned char)pPixelData[w++];
// Read the corresponding ARGB from the palette and store it in the new texture :
pExpandedTexture[y] = pTexturePalette[p];
// HACK: Prevent crash if a pallete has not been loaded yet
if (pTexturePalette != nullptr) {
pExpandedTexture[y] = pTexturePalette[p];
} else {
pExpandedTexture[y] = 0;
}
// are we at the end of a line?
if(++x == dwMipWidth)
{
@ -8821,6 +8826,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_SetDepthClipPlanes)
return hRet;
}
#if 0 // DISABLED (Just calls MmAllocateContiguousMemory)
// ******************************************************************
// * patch: D3D_AllocContiguousMemory
// ******************************************************************
@ -8866,6 +8872,7 @@ PVOID WINAPI XTL::EMUPATCH(D3D_AllocContiguousMemory)
return pRet;
}
#endif
// ******************************************************************
// * patch: IDirect3DTexture8_GetLevelDesc

View File

@ -46,7 +46,7 @@
extern VOID CxbxInitWindow(Xbe::Header *XbeHeader, uint32 XbeHeaderSize);
// initialize direct3d
extern VOID EmuD3DInit(Xbe::Header *XbeHeader, uint32 XbeHeaderSize);
extern VOID EmuD3DInit();
// cleanup direct3d
extern VOID EmuD3DCleanup();
@ -1506,6 +1506,7 @@ HRESULT WINAPI EMUPATCH(D3DDevice_SetDepthClipPlanes)
DWORD Flags
);
#if 0 // DISABLED (Just calls MmAllocateContiguousMemory)
// ******************************************************************
// * patch: D3D_AllocContiguousMemory
// ******************************************************************
@ -1514,6 +1515,7 @@ PVOID WINAPI EMUPATCH(D3D_AllocContiguousMemory)
SIZE_T dwSize,
DWORD dwAllocAttributes
);
#endif
// ******************************************************************
// * patch: D3DTexture_GetLevelDesc

View File

@ -151,9 +151,7 @@ void XTL::VertexPatcher::CacheStream(VertexPatchDesc *pPatchDesc,
void *pCalculateData = NULL;
uint32 uiKey;
UINT uiLength;
CACHEDSTREAM *pCachedStream = (CACHEDSTREAM *)CxbxMalloc(sizeof(CACHEDSTREAM));
ZeroMemory(pCachedStream, sizeof(CACHEDSTREAM));
CACHEDSTREAM *pCachedStream = (CACHEDSTREAM *)CxbxCalloc(1, sizeof(CACHEDSTREAM));
// Check if the cache is full, if so, throw away the least used stream
if(g_PatchedStreamsCache.get_count() > VERTEX_BUFFER_CACHE_SIZE)
@ -504,182 +502,132 @@ bool XTL::VertexPatcher::PatchStream(VertexPatchDesc *pPatchDesc,
}
}
for(uint32 uiVertex = 0; uiVertex < pPatchDesc->dwVertexCount; uiVertex++)
{
DWORD dwPosOrig = 0;
DWORD dwPosNew = 0;
for(UINT uiType = 0; uiType < pStreamPatch->NbrTypes; uiType++)
{
switch(pStreamPatch->pTypes[uiType])
{
case 0x12: // FLOAT1
memcpy(&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew],
&pOrigData[uiVertex * uiStride + dwPosOrig],
sizeof(FLOAT));
dwPosOrig += sizeof(FLOAT);
dwPosNew += sizeof(FLOAT);
break;
case 0x22: // FLOAT2
memcpy(&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew],
&pOrigData[uiVertex * uiStride + dwPosOrig],
2 * sizeof(FLOAT));
dwPosOrig += 2 * sizeof(FLOAT);
dwPosNew += 2 * sizeof(FLOAT);
break;
case 0x32: // FLOAT3
memcpy(&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew],
&pOrigData[uiVertex * uiStride + dwPosOrig],
3 * sizeof(FLOAT));
dwPosOrig += 3 * sizeof(FLOAT);
dwPosNew += 3 * sizeof(FLOAT);
break;
case 0x42: // FLOAT4
memcpy(&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew],
&pOrigData[uiVertex * uiStride + dwPosOrig],
4 * sizeof(FLOAT));
dwPosOrig += 4 * sizeof(FLOAT);
dwPosNew += 4 * sizeof(FLOAT);
break;
case 0x40: // D3DCOLOR
memcpy(&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew],
&pOrigData[uiVertex * uiStride + dwPosOrig],
sizeof(XTL::D3DCOLOR));
dwPosOrig += sizeof(XTL::D3DCOLOR);
dwPosNew += sizeof(XTL::D3DCOLOR);
break;
case 0x16: //NORMPACKED3
{
DWORD dwPacked = ((DWORD *)&pOrigData[uiVertex * uiStride + dwPosOrig])[0];
for (uint32 uiVertex = 0; uiVertex < pPatchDesc->dwVertexCount; uiVertex++)
{
DWORD dwPosOrig = 0;
uint08 *pOrigVertex = &pOrigData[uiVertex * uiStride];
uint08 *pNewDataPos = &pNewData[uiVertex * pStreamPatch->ConvertedStride];
for (UINT uiType = 0; uiType < pStreamPatch->NbrTypes; uiType++)
{
switch (pStreamPatch->pTypes[uiType])
{
case X_D3DVSDT_NORMPACKED3: // 0x16:
{
DWORD dwPacked = ((DWORD *)&pOrigData[uiVertex * uiStride + dwPosOrig])[0];
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)(dwPacked & 0x7ff)) / 1023.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[1] = ((FLOAT)((dwPacked >> 11) & 0x7ff)) / 1023.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[2] = ((FLOAT)((dwPacked >> 22) & 0x3ff)) / 511.0f;
((FLOAT *)pNewDataPos)[0] = ((FLOAT)(dwPacked & 0x7ff)) / 1023.0f;
((FLOAT *)pNewDataPos)[1] = ((FLOAT)((dwPacked >> 11) & 0x7ff)) / 1023.0f;
((FLOAT *)pNewDataPos)[2] = ((FLOAT)((dwPacked >> 22) & 0x3ff)) / 511.0f;
dwPosOrig += sizeof(DWORD);
dwPosNew += 3 * sizeof(FLOAT);
}
break;
case 0x15: // SHORT1
// Make it a SHORT2
(*((SHORT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew + 0 * sizeof(SHORT)])) = *(SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig];
(*((SHORT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew + 1 * sizeof(SHORT)])) = 0x00;
dwPosOrig += sizeof(DWORD);
break;
}
case X_D3DVSDT_SHORT1: // 0x15:
// Make it a SHORT2
((SHORT *)pNewDataPos)[0] = *(SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig];
((SHORT *)pNewDataPos)[1] = 0x00;
dwPosOrig += 1 * sizeof(SHORT);
dwPosNew += 2 * sizeof(SHORT);
dwPosOrig += 1 * sizeof(SHORT);
break;
case X_D3DVSDT_SHORT3: // 0x35:
memcpy(pNewDataPos,
&pOrigData[uiVertex * uiStride + dwPosOrig],
3 * sizeof(SHORT));
// Make it a SHORT4 and set the last short to 1
//(*((SHORT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew + 3 * sizeof(SHORT)])) = 0x01;
((SHORT *)pNewDataPos)[3] = 0x01;
break;
case 0x25: // SHORT2
memcpy(&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew],
&pOrigData[uiVertex * uiStride+dwPosOrig],
2 * sizeof(SHORT));
dwPosOrig += 2 * sizeof(SHORT);
dwPosNew += 2 * sizeof(SHORT);
break;
case 0x35: // SHORT3
memcpy(&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew],
&pOrigData[uiVertex * uiStride + dwPosOrig],
3 * sizeof(SHORT));
// Make it a SHORT4 and set the last short to 1
(*((SHORT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew + 3 * sizeof(SHORT)])) = 0x01;
dwPosOrig += 3 * sizeof(SHORT);
break;
case X_D3DVSDT_PBYTE1: // 0x14:
((FLOAT *)pNewDataPos)[0] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 255.0f;
dwPosOrig += 3 * sizeof(SHORT);
dwPosNew += 4 * sizeof(SHORT);
dwPosOrig += 1 * sizeof(BYTE);
break;
case 0x45: // SHORT4
memcpy(&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew],
&pOrigData[uiVertex * uiStride + dwPosOrig],
4 * sizeof(SHORT));
dwPosOrig += 4 * sizeof(SHORT);
dwPosNew += 4 * sizeof(SHORT);
break;
case 0x14: // PBYTE1
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 255.0f;
break;
case X_D3DVSDT_PBYTE2: // 0x24:
((FLOAT *)pNewDataPos)[0] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 255.0f;
((FLOAT *)pNewDataPos)[1] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 255.0f;
dwPosOrig += 1 * sizeof(BYTE);
dwPosNew += 1 * sizeof(FLOAT);
dwPosOrig += 2 * sizeof(BYTE);
break;
case 0x24: // PBYTE2
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 255.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[1] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 255.0f;
break;
case X_D3DVSDT_PBYTE3: // 0x34:
((FLOAT *)pNewDataPos)[0] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 255.0f;
((FLOAT *)pNewDataPos)[1] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 255.0f;
((FLOAT *)pNewDataPos)[2] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2]) / 255.0f;
dwPosOrig += 2 * sizeof(BYTE);
dwPosNew += 2 * sizeof(FLOAT);
dwPosOrig += 3 * sizeof(BYTE);
break;
case 0x34: // PBYTE3
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 255.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[1] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 255.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[2] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2]) / 255.0f;
break;
case X_D3DVSDT_PBYTE4: // 0x44:
((FLOAT *)pNewDataPos)[0] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 255.0f;
((FLOAT *)pNewDataPos)[1] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 255.0f;
((FLOAT *)pNewDataPos)[2] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2]) / 255.0f;
((FLOAT *)pNewDataPos)[3] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[3]) / 255.0f;
dwPosOrig += 3 * sizeof(BYTE);
dwPosNew += 3 * sizeof(FLOAT);
dwPosOrig += 4 * sizeof(BYTE);
break;
case 0x44: // PBYTE4
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 255.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[1] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 255.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[2] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2]) / 255.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[3] = ((FLOAT)((BYTE*)&pOrigData[uiVertex * uiStride + dwPosOrig])[3]) / 255.0f;
break;
case X_D3DVSDT_NORMSHORT1: // 0x11:
((FLOAT *)pNewDataPos)[0] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 32767.0f;
dwPosOrig += 4 * sizeof(BYTE);
dwPosNew += 4 * sizeof(FLOAT);
dwPosOrig += 1 * sizeof(SHORT);
break;
case X_D3DVSDT_NORMSHORT2: // 0x21:
((FLOAT *)pNewDataPos)[0] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 32767.0f;
((FLOAT *)pNewDataPos)[1] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 32767.0f;
break;
case 0x11: // NORMSHORT1
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 32767.0f;
dwPosOrig += 2 * sizeof(SHORT);
break;
case X_D3DVSDT_NORMSHORT3: // 0x31:
((FLOAT *)pNewDataPos)[0] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 32767.0f;
((FLOAT *)pNewDataPos)[1] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 32767.0f;
((FLOAT *)pNewDataPos)[2] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2]) / 32767.0f;
dwPosOrig += 1 * sizeof(SHORT);
dwPosNew += 1 * sizeof(FLOAT);
break;
case 0x21: // NORMSHORT2
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 32767.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[1] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 32767.0f;
dwPosOrig += 3 * sizeof(SHORT);
break;
case X_D3DVSDT_NORMSHORT4: // 0x41:
((FLOAT *)pNewDataPos)[0] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 32767.0f;
((FLOAT *)pNewDataPos)[1] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 32767.0f;
((FLOAT *)pNewDataPos)[2] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2]) / 32767.0f;
((FLOAT *)pNewDataPos)[3] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[3]) / 32767.0f;
dwPosOrig += 2 * sizeof(SHORT);
dwPosNew += 2 * sizeof(FLOAT);
break;
case 0x31: // NORMSHORT3
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 32767.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[1] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 32767.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[2] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2]) / 32767.0f;
dwPosOrig += 4 * sizeof(SHORT);
break;
case X_D3DVSDT_FLOAT2H: // 0x72:
((FLOAT *)pNewDataPos)[0] = ((FLOAT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0];
((FLOAT *)pNewDataPos)[1] = ((FLOAT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1];
((FLOAT *)pNewDataPos)[2] = 0.0f;
((FLOAT *)pNewDataPos)[3] = ((FLOAT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2];
break;
dwPosOrig += 3 * sizeof(SHORT);
dwPosNew += 3 * sizeof(FLOAT);
break;
case 0x41: // NORMSHORT4
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0]) / 32767.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[1] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1]) / 32767.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[2] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2]) / 32767.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[3] = ((FLOAT)((SHORT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[3]) / 32767.0f;
dwPosOrig += 4 * sizeof(SHORT);
dwPosNew += 4 * sizeof(FLOAT);
break;
case 0x72: // FLOAT2H
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[0] = ((FLOAT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[0];
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[1] = ((FLOAT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[1];
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[2] = 0.0f;
((FLOAT *)&pNewData[uiVertex * pStreamPatch->ConvertedStride + dwPosNew])[3] = ((FLOAT*)&pOrigData[uiVertex * uiStride + dwPosOrig])[2];
/*TODO
case X_D3DVSDT_NONE: // 0x02:
printf("D3DVSDT_NONE / xbox ext. nsp /");
dwNewDataType = 0xFF;
break;
*/
default:
// Generic 'conversion' - just make a copy :
memcpy(pNewDataPos,
&pOrigData[uiVertex * uiStride + dwPosOrig],
pStreamPatch->pSizes[uiType]);
dwPosOrig += pStreamPatch->pSizes[uiType];
break;
} // switch
/*TODO
case 0x02:
printf("D3DVSDT_NONE / xbox ext. nsp /");
dwNewDataType = 0xFF;
break;
*/
default:
CxbxKrnlCleanup("Unhandled stream type: 0x%.02X\n", pStreamPatch->pTypes[uiType]);
break;
}
}
}
// Increment the new pointer :
pNewDataPos += pStreamPatch->pSizes[uiType];
}
}
if(!pPatchDesc->pVertexStreamZeroData)
{
pNewVertexBuffer->Unlock();
pOrigVertexBuffer->Unlock();
//if(pNewVertexBuffer != nullptr) // Dxbx addition
pNewVertexBuffer->Unlock();
//if (pOrigVertexBuffer != nullptr) // Dxbx addition
pOrigVertexBuffer->Unlock();
if(FAILED(g_pD3DDevice8->SetStreamSource(uiStream, pNewVertexBuffer, pStreamPatch->ConvertedStride)))
{

View File

@ -1450,6 +1450,7 @@ typedef struct _VSH_TYPE_PATCH_DATA
{
DWORD NbrTypes;
UINT Types[256];
UINT NewSizes[256];
}
VSH_TYPE_PATCH_DATA;
@ -1676,6 +1677,9 @@ static boolean VshAddStreamPatch(VSH_PATCH_DATA *pPatchData)
// 2010/01/12 - revel8n - fixed allocated data size and type
pStreamPatch->pTypes = (UINT *)CxbxMalloc(pPatchData->TypePatchData.NbrTypes * sizeof(UINT)); //VSH_TYPE_PATCH_DATA));
memcpy(pStreamPatch->pTypes, pPatchData->TypePatchData.Types, pPatchData->TypePatchData.NbrTypes * sizeof(UINT)); //VSH_TYPE_PATCH_DATA));
// 2010/12/06 - PatrickvL - do the same for new sizes :
pStreamPatch->pSizes = (UINT *)CxbxMalloc(pPatchData->TypePatchData.NbrTypes * sizeof(UINT));
memcpy(pStreamPatch->pSizes, pPatchData->TypePatchData.NewSizes, pPatchData->TypePatchData.NbrTypes * sizeof(UINT));
return TRUE;
}
@ -1755,120 +1759,117 @@ static void VshConvertToken_STREAMDATA_REG(DWORD *pToken,
XTL::DWORD DataType = (*pToken >> D3DVSD_DATATYPESHIFT) & 0xFF;
XTL::DWORD NewDataType = 0;
// save patching information
pPatchData->TypePatchData.Types[pPatchData->TypePatchData.NbrTypes] = DataType;
pPatchData->TypePatchData.NbrTypes++;
XTL::DWORD NewSize = 0;
switch(DataType)
{
case 0x12:
case X_D3DVSDT_FLOAT1: // 0x12:
DbgVshPrintf("D3DVSDT_FLOAT1");
NewDataType = D3DVSDT_FLOAT1;
pPatchData->ConvertedStride += sizeof(FLOAT);
NewSize = 1*sizeof(FLOAT);
break;
case 0x22:
case X_D3DVSDT_FLOAT2: // 0x22:
DbgVshPrintf("D3DVSDT_FLOAT2");
NewDataType = D3DVSDT_FLOAT2;
pPatchData->ConvertedStride += 2*sizeof(FLOAT);
NewSize = 2*sizeof(FLOAT);
break;
case 0x32:
case X_D3DVSDT_FLOAT3: // 0x32:
DbgVshPrintf("D3DVSDT_FLOAT3");
NewDataType = D3DVSDT_FLOAT3;
pPatchData->ConvertedStride += 3*sizeof(FLOAT);
NewSize = 3*sizeof(FLOAT);
break;
case 0x42:
case X_D3DVSDT_FLOAT4: // 0x42:
DbgVshPrintf("D3DVSDT_FLOAT4");
NewDataType = D3DVSDT_FLOAT4;
pPatchData->ConvertedStride += 4*sizeof(FLOAT);
NewSize = 4*sizeof(FLOAT);
break;
case 0x40:
case X_D3DVSDT_D3DCOLOR: // 0x40:
DbgVshPrintf("D3DVSDT_D3DCOLOR");
NewDataType = D3DVSDT_D3DCOLOR;
pPatchData->ConvertedStride += sizeof(D3DCOLOR);
NewSize = sizeof(D3DCOLOR);
break;
case 0x25:
case X_D3DVSDT_SHORT2: // 0x25:
DbgVshPrintf("D3DVSDT_SHORT2");
NewDataType = D3DVSDT_SHORT2;
pPatchData->ConvertedStride += 2*sizeof(XTL::SHORT);
NewSize = 2*sizeof(XTL::SHORT);
break;
case 0x45:
case X_D3DVSDT_SHORT4: // 0x45:
DbgVshPrintf("D3DVSDT_SHORT4");
NewDataType = D3DVSDT_SHORT4;
pPatchData->ConvertedStride += 4*sizeof(XTL::SHORT);
NewSize = 4*sizeof(XTL::SHORT);
break;
case 0x11:
case X_D3DVSDT_NORMSHORT1: // 0x11:
DbgVshPrintf("D3DVSDT_NORMSHORT1 /* xbox ext. */");
NewDataType = D3DVSDT_SHORT2; // hmm, emulation?
pPatchData->ConvertedStride += 2*sizeof(XTL::SHORT);
NewSize = 2*sizeof(XTL::SHORT);
pPatchData->NeedPatching = TRUE;
break;
case 0x21:
case X_D3DVSDT_NORMSHORT2: // 0x21:
DbgVshPrintf("D3DVSDT_NORMSHORT2 /* xbox ext. */");
NewDataType = D3DVSDT_SHORT2;
pPatchData->ConvertedStride += 2*sizeof(XTL::SHORT);
NewSize = 2*sizeof(XTL::SHORT);
pPatchData->NeedPatching = TRUE;
break;
case 0x31:
case X_D3DVSDT_NORMSHORT3: // 0x31:
DbgVshPrintf("D3DVSDT_NORMSHORT3 /* xbox ext. nsp */");
NewDataType = D3DVSDT_SHORT4;
pPatchData->ConvertedStride += 4*sizeof(XTL::SHORT);
NewSize = 4*sizeof(XTL::SHORT);
pPatchData->NeedPatching = TRUE;
break;
case 0x41:
case X_D3DVSDT_NORMSHORT4: // 0x41:
DbgVshPrintf("D3DVSDT_NORMSHORT4 /* xbox ext. */");
NewDataType = D3DVSDT_SHORT4;
pPatchData->ConvertedStride += 4*sizeof(XTL::SHORT);
NewSize = 4*sizeof(XTL::SHORT);
pPatchData->NeedPatching = TRUE;
break;
case 0x16:
case X_D3DVSDT_NORMPACKED3: // 0x16:
DbgVshPrintf("D3DVSDT_NORMPACKED3 /* xbox ext. nsp */");
NewDataType = D3DVSDT_FLOAT3;//0xFF; //32bit
pPatchData->ConvertedStride += 3*sizeof(FLOAT);
NewSize = 3*sizeof(FLOAT);
pPatchData->NeedPatching = TRUE;
break;
case 0x15:
case X_D3DVSDT_SHORT1: // 0x15:
DbgVshPrintf("D3DVSDT_SHORT1 /* xbox ext. nsp */");
NewDataType = D3DVSDT_SHORT2;
pPatchData->ConvertedStride += 2*sizeof(XTL::SHORT);
NewSize = 2*sizeof(XTL::SHORT);
pPatchData->NeedPatching = TRUE;
break;
case 0x35:
case X_D3DVSDT_SHORT3: // 0x35:
DbgVshPrintf("D3DVSDT_SHORT3 /* xbox ext. nsp */");
NewDataType = D3DVSDT_SHORT4;
pPatchData->ConvertedStride += 4*sizeof(XTL::SHORT);
NewSize = 4 * sizeof(XTL::SHORT);
pPatchData->NeedPatching = TRUE;
break;
case 0x14:
case X_D3DVSDT_PBYTE1: // 0x14:
DbgVshPrintf("D3DVSDT_PBYTE1 /* xbox ext. nsp */");
NewDataType = D3DVSDT_FLOAT1;
pPatchData->ConvertedStride += 1*sizeof(FLOAT);
NewSize = 1*sizeof(FLOAT);
pPatchData->NeedPatching = TRUE;
break;
case 0x24:
case X_D3DVSDT_PBYTE2: // 0x24:
DbgVshPrintf("D3DVSDT_PBYTE2 /* xbox ext. nsp */");
NewDataType = D3DVSDT_FLOAT2;
pPatchData->ConvertedStride += 2*sizeof(FLOAT);
NewSize = 2*sizeof(FLOAT);
pPatchData->NeedPatching = TRUE;
break;
case 0x34:
case X_D3DVSDT_PBYTE3: // 0x34:
DbgVshPrintf("D3DVSDT_PBYTE3 /* xbox ext. nsp */");
NewDataType = D3DVSDT_FLOAT3;
pPatchData->ConvertedStride += 3*sizeof(FLOAT);
NewSize = 3*sizeof(FLOAT);
pPatchData->NeedPatching = TRUE;
break;
case 0x44:
case X_D3DVSDT_PBYTE4: // 0x44:
DbgVshPrintf("D3DVSDT_PBYTE4 /* xbox ext. */");
NewDataType = D3DVSDT_FLOAT4;
pPatchData->ConvertedStride += 4*sizeof(FLOAT);
NewSize = 4*sizeof(FLOAT);
break;
case 0x72:
case X_D3DVSDT_FLOAT2H: // 0x72:
DbgVshPrintf("D3DVSDT_FLOAT2H /* xbox ext. */");
NewDataType = D3DVSDT_FLOAT3;
pPatchData->ConvertedStride += 3*sizeof(FLOAT);
NewSize = 3*sizeof(FLOAT);
pPatchData->NeedPatching = TRUE;
break;
case 0x02:
case X_D3DVSDT_NONE: // 0x02:
DbgVshPrintf("D3DVSDT_NONE /* xbox ext. nsp */");
NewDataType = 0xFF;
break;
@ -1876,8 +1877,14 @@ static void VshConvertToken_STREAMDATA_REG(DWORD *pToken,
DbgVshPrintf("Unknown data type for D3DVSD_REG: 0x%02X\n", DataType);
break;
}
pPatchData->TypePatchData.Types[pPatchData->TypePatchData.NbrTypes] = DataType;
pPatchData->TypePatchData.NewSizes[pPatchData->TypePatchData.NbrTypes] = NewSize;
pPatchData->TypePatchData.NbrTypes++;
*pToken = D3DVSD_REG(NewVertexRegister, NewDataType);
pPatchData->ConvertedStride += NewSize;
DbgVshPrintf("),\n");
if(NewDataType == 0xFF)
@ -2014,7 +2021,7 @@ extern HRESULT XTL::EmuRecompileVshFunction
VSH_SHADER_HEADER *pShaderHeader = (VSH_SHADER_HEADER*)pFunction;
DWORD *pToken;
boolean EOI = false;
VSH_XBOX_SHADER *pShader = (VSH_XBOX_SHADER*)CxbxMalloc(sizeof(VSH_XBOX_SHADER));
VSH_XBOX_SHADER *pShader = (VSH_XBOX_SHADER*)CxbxCalloc(1, sizeof(VSH_XBOX_SHADER));
LPD3DXBUFFER pErrors = NULL;
HRESULT hRet = 0;
@ -2031,7 +2038,6 @@ extern HRESULT XTL::EmuRecompileVshFunction
EmuWarning("Couldn't allocate memory for vertex shader conversion buffer");
hRet = E_OUTOFMEMORY;
}
memset(pShader, 0, sizeof(VSH_XBOX_SHADER));
pShader->ShaderHeader = *pShaderHeader;
switch(pShaderHeader->Version)
{
@ -2123,6 +2129,9 @@ extern void XTL::FreeVertexDynamicPatch(VERTEX_SHADER *pVertexShader)
for (DWORD i = 0; i < pVertexShader->VertexDynamicPatch.NbrStreams; i++)
{
CxbxFree(pVertexShader->VertexDynamicPatch.pStreamPatches[i].pTypes);
pVertexShader->VertexDynamicPatch.pStreamPatches[i].pTypes = nullptr;
CxbxFree(pVertexShader->VertexDynamicPatch.pStreamPatches[i].pSizes);
pVertexShader->VertexDynamicPatch.pStreamPatches[i].pSizes = nullptr;
}
CxbxFree(pVertexShader->VertexDynamicPatch.pStreamPatches);
pVertexShader->VertexDynamicPatch.pStreamPatches = NULL;

View File

@ -340,6 +340,7 @@ typedef struct _STREAM_DYNAMIC_PATCH_
DWORD ConvertedStride;
DWORD NbrTypes; // Number of the stream data types
UINT *pTypes; // The stream data types (xbox)
UINT *pSizes; // The stream data sizes (pc)
} STREAM_DYNAMIC_PATCH;
typedef struct _VERTEX_DYNAMIC_PATCH_
@ -674,4 +675,51 @@ typedef struct _X_STREAMINPUT
UINT Offset;
} X_STREAMINPUT;
// vertex shader input registers for fixed function vertex shader
// Name Register number D3DFVF
const int X_D3DVSDE_POSITION = 0; // Corresponds to D3DFVF_XYZ
const int X_D3DVSDE_BLENDWEIGHT = 1; // Corresponds to D3DFVF_XYZRHW
const int X_D3DVSDE_NORMAL = 2; // Corresponds to D3DFVF_NORMAL
const int X_D3DVSDE_DIFFUSE = 3; // Corresponds to D3DFVF_DIFFUSE
const int X_D3DVSDE_SPECULAR = 4; // Corresponds to D3DFVF_SPECULAR
const int X_D3DVSDE_FOG = 5; // Xbox extension
const int X_D3DVSDE_POINTSIZE = 6; // Dxbx addition
const int X_D3DVSDE_BACKDIFFUSE = 7; // Xbox extension
const int X_D3DVSDE_BACKSPECULAR = 8; // Xbox extension
const int X_D3DVSDE_TEXCOORD0 = 9; // "Corresponds to D3DFVF_TEX0" says the docs, but 0 means no textures, so probably D3DFVF_TEX1!
const int X_D3DVSDE_TEXCOORD1 = 10; // Corresponds to D3DFVF_TEX{above}+1
const int X_D3DVSDE_TEXCOORD2 = 11; // Corresponds to D3DFVF_TEX{above}+2
const int X_D3DVSDE_TEXCOORD3 = 12; // Corresponds to D3DFVF_TEX{above}+3
const int X_D3DVSDE_VERTEX = 0xFFFFFFFF; // Xbox extension for Begin/End drawing (data is a D3DVSDT_FLOAT4)
//typedef X_D3DVSDE = X_D3DVSDE_POSITION..High(DWORD)-2; // Unique declaration to make overloads possible;
// bit declarations for _Type fields
const int X_D3DVSDT_FLOAT1 = 0x12; // 1D float expanded to (value, 0.0, 0.0, 1.0)
const int X_D3DVSDT_FLOAT2 = 0x22; // 2D float expanded to (value, value, 0.0, 1.0)
const int X_D3DVSDT_FLOAT3 = 0x32; // 3D float expanded to (value, value, value, 1.0) In double word format this is ARGB, or in byte ordering it would be B, G, R, A.
const int X_D3DVSDT_FLOAT4 = 0x42; // 4D float
const int X_D3DVSDT_D3DCOLOR = 0x40; // 4D packed unsigned bytes mapped to 0.0 to 1.0 range
//const int X_D3DVSDT_UBYTE4 = 0x05; // 4D unsigned byte Dxbx note : Not supported on Xbox ?
const int X_D3DVSDT_SHORT2 = 0x25; // 2D signed short expanded to (value, value, 0.0, 1.0)
const int X_D3DVSDT_SHORT4 = 0x45; // 4D signed short
// Xbox only declarations :
const int X_D3DVSDT_NORMSHORT1 = 0x11; // xbox ext. 1D signed, normalized short expanded to (value, 0.0, 0.0, 1.0). Signed, normalized shorts map from -1.0 to 1.0.
const int X_D3DVSDT_NORMSHORT2 = 0x21; // xbox ext. 2D signed, normalized short expanded to (value, value, 0.0, 1.0). Signed, normalized shorts map from -1.0 to 1.0.
const int X_D3DVSDT_NORMSHORT3 = 0x31; // xbox ext. 3D signed, normalized short expanded to (value, value, value, 1.0). Signed, normalized shorts map from -1.0 to 1.0.
const int X_D3DVSDT_NORMSHORT4 = 0x41; // xbox ext. 4D signed, normalized short expanded to (value, value, value, value). Signed, normalized shorts map from -1.0 to 1.0.
const int X_D3DVSDT_NORMPACKED3 = 0x16; // xbox ext. Three signed, normalized components packed in 32-bits. (11,11,10). Each component ranges from -1.0 to 1.0. Expanded to (value, value, value, 1.0).
const int X_D3DVSDT_SHORT1 = 0x15; // xbox ext. 1D signed short expanded to (value, 0., 0., 1). Signed shorts map to the range [-32768, 32767].
const int X_D3DVSDT_SHORT3 = 0x35; // xbox ext. 3D signed short expanded to (value, value, value, 1). Signed shorts map to the range [-32768, 32767].
const int X_D3DVSDT_PBYTE1 = 0x14; // xbox ext. 1D packed byte expanded to (value, 0., 0., 1). Packed bytes map to the range [0, 1].
const int X_D3DVSDT_PBYTE2 = 0x24; // xbox ext. 2D packed byte expanded to (value, value, 0., 1). Packed bytes map to the range [0, 1].
const int X_D3DVSDT_PBYTE3 = 0x34; // xbox ext. 3D packed byte expanded to (value, value, value, 1). Packed bytes map to the range [0, 1].
const int X_D3DVSDT_PBYTE4 = 0x44; // xbox ext. 4D packed byte expanded to (value, value, value, value). Packed bytes map to the range [0, 1].
const int X_D3DVSDT_FLOAT2H = 0x72; // xbox ext. 3D float that expands to (value, value, 0.0, value). Useful for projective texture coordinates.
const int X_D3DVSDT_NONE = 0x02; // xbox ext. nsp
const int MAX_NBR_STREAMS = 16;
#endif

View File

@ -43,7 +43,7 @@ namespace xboxkrnl
};
#include "EmuFS.h"
#include "EmuAlloc.h"
#include "EmuAlloc.h" // For CxbxCalloc()
#include "CxbxKrnl.h"
#include "Exe.h"
@ -311,12 +311,12 @@ void EmuInitFS()
DbgPrintf("Patching FS Instruction at 0x%08X\n", addr);
// Write Call opcode
*(uint08*)addr = 0xE8;
*(uint08*)addr = OPCODE_CALL_E8;
*(uint32*)(addr + 1) = (uint32)fsInstructions[i].functionPtr - addr - 5;
// Fill the remaining bytes with nop instructions
int remaining_bytes = fsInstructions[i].data.size() - 5;
memset((void*)(addr + 5), 0x90, remaining_bytes);
memset((void*)(addr + 5), OPCODE_NOP_90, remaining_bytes);
addr += sizeOfData - 1;
break;
}
@ -347,9 +347,8 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
uint32 dwCopySize = pTLS->dwDataEndAddr - pTLS->dwDataStartAddr;
uint32 dwZeroSize = pTLS->dwSizeofZeroFill;
pNewTLS = (uint08*)CxbxMalloc(dwCopySize + dwZeroSize + 0x100 /* + HACK: extra safety padding 0x100*/);
pNewTLS = (uint08*)CxbxCalloc(1, dwCopySize + dwZeroSize + 0x100 /* + HACK: extra safety padding 0x100*/);
memset(pNewTLS, 0, dwCopySize + dwZeroSize + 0x100);
memcpy(pNewTLS, pTLSData, dwCopySize);
}
@ -398,13 +397,11 @@ void EmuGenerateFS(Xbe::TLS *pTLS, void *pTLSData)
{
uint32 dwSize = sizeof(xboxkrnl::KPCR);
NewPcr = (xboxkrnl::KPCR*)CxbxMalloc(dwSize);
memset(NewPcr, 0, sizeof(*NewPcr));
NewPcr = (xboxkrnl::KPCR*)CxbxCalloc(1, dwSize);
}
// generate TIB
xboxkrnl::ETHREAD *EThread = (xboxkrnl::ETHREAD*)CxbxMalloc(sizeof(xboxkrnl::ETHREAD));
xboxkrnl::ETHREAD *EThread = (xboxkrnl::ETHREAD*)CxbxCalloc(1, sizeof(xboxkrnl::ETHREAD)); // Clear, to prevent side-effects on random contents
EThread->Tcb.TlsData = (void*)pNewTLS;
EThread->UniqueThread = GetCurrentThreadId();

View File

@ -588,8 +588,7 @@ NtDll::FILE_LINK_INFORMATION * _XboxToNTLinkInfo(xboxkrnl::FILE_LINK_INFORMATION
// Build the native FILE_LINK_INFORMATION struct
*Length = sizeof(NtDll::FILE_LINK_INFORMATION) + convertedFileName.size() * sizeof(wchar_t);
NtDll::FILE_LINK_INFORMATION *ntLinkInfo = (NtDll::FILE_LINK_INFORMATION *) CxbxMalloc(*Length);
ZeroMemory(ntLinkInfo, *Length);
NtDll::FILE_LINK_INFORMATION *ntLinkInfo = (NtDll::FILE_LINK_INFORMATION *) CxbxCalloc(1, *Length);
ntLinkInfo->ReplaceIfExists = xboxLinkInfo->ReplaceIfExists;
ntLinkInfo->RootDirectory = RootDirectory;
ntLinkInfo->FileNameLength = convertedFileName.size() * sizeof(wchar_t);
@ -609,8 +608,7 @@ NtDll::FILE_RENAME_INFORMATION * _XboxToNTRenameInfo(xboxkrnl::FILE_RENAME_INFOR
// Build the native FILE_RENAME_INFORMATION struct
*Length = sizeof(NtDll::FILE_RENAME_INFORMATION) + convertedFileName.size() * sizeof(wchar_t);
NtDll::FILE_RENAME_INFORMATION *ntRenameInfo = (NtDll::FILE_RENAME_INFORMATION *) CxbxMalloc(*Length);
ZeroMemory(ntRenameInfo, *Length);
NtDll::FILE_RENAME_INFORMATION *ntRenameInfo = (NtDll::FILE_RENAME_INFORMATION *) CxbxCalloc(1, *Length);
ntRenameInfo->ReplaceIfExists = xboxRenameInfo->ReplaceIfExists;
ntRenameInfo->RootDirectory = RootDirectory;
ntRenameInfo->FileNameLength = convertedFileName.size() * sizeof(wchar_t);

View File

@ -54,7 +54,7 @@ namespace NtDll
#include "CxbxKrnl.h" // For CxbxKrnlCleanup
#include "Emu.h" // For EmuWarning()
#include "EmuAlloc.h" // For CxbxFree(), CxbxMalloc(), etc.
#include "EmuAlloc.h" // For CxbxFree(), CxbxCalloc(), etc.
#pragma warning(disable:4005) // Ignore redefined status values
#include <ntstatus.h> // For STATUS_BUFFER_TOO_SMALL
@ -125,7 +125,7 @@ XBSYSAPI EXPORTNUM(15) xboxkrnl::PVOID NTAPI xboxkrnl::ExAllocatePoolWithTag
LOG_FUNC_END;
// TODO: Actually implement this
PVOID pRet = CxbxMalloc(NumberOfBytes);
PVOID pRet = CxbxCalloc(1, NumberOfBytes); // Clear, to prevent side-effects on random contents
RETURN(pRet);
}
@ -135,14 +135,12 @@ XBSYSAPI EXPORTNUM(15) xboxkrnl::PVOID NTAPI xboxkrnl::ExAllocatePoolWithTag
// ******************************************************************
XBSYSAPI EXPORTNUM(16) xboxkrnl::OBJECT_TYPE xboxkrnl::ExEventObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
NULL,
NULL,
*/
NULL, // (PVOID)FIELD_OFFSET(KEVENT, Header),
(PVOID)offsetof(xboxkrnl::KEVENT, Header),
'vevE' // = first four characters of "Event" in reverse
};
@ -258,14 +256,12 @@ XBSYSAPI EXPORTNUM(21) xboxkrnl::LONGLONG FASTCALL xboxkrnl::ExInterlockedCompar
// ******************************************************************
XBSYSAPI EXPORTNUM(22) xboxkrnl::OBJECT_TYPE xboxkrnl::ExMutantObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
ExpDeleteMutant,
NULL, // TODO : xboxkrnl::ExpDeleteMutant,
NULL,
*/
NULL, // (PVOID)FIELD_OFFSET(KMUTANT, Header),
(PVOID)offsetof(xboxkrnl::KMUTANT, Header),
'atuM' // = first four characters of "Mutant" in reverse
};
@ -571,14 +567,12 @@ XBSYSAPI EXPORTNUM(29) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ExSaveNonVolatileSetti
// ******************************************************************
XBSYSAPI EXPORTNUM(30) xboxkrnl::OBJECT_TYPE xboxkrnl::ExSemaphoreObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
NULL,
NULL,
*/
NULL, // (PVOID)FIELD_OFFSET(KSEMAPHORE, Header),
(PVOID)offsetof(xboxkrnl::KSEMAPHORE, Header),
'ameS' // = first four characters of "Semaphore" in reverse
};
@ -587,14 +581,12 @@ XBSYSAPI EXPORTNUM(30) xboxkrnl::OBJECT_TYPE xboxkrnl::ExSemaphoreObjectType =
// ******************************************************************
XBSYSAPI EXPORTNUM(31) xboxkrnl::OBJECT_TYPE xboxkrnl::ExTimerObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
ExpDeleteTimer,
NULL, // TODO : xboxkrnl::ExpDeleteTimer,
NULL,
*/
NULL, // (PVOID)FIELD_OFFSET(KTIMER, Header),
(PVOID)offsetof(xboxkrnl::KTIMER, Header),
'emiT' // = first four characters of "Timer" in reverse
};

View File

@ -191,14 +191,12 @@ XBSYSAPI EXPORTNUM(63) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoCheckShareAccess
// ******************************************************************
XBSYSAPI EXPORTNUM(64) xboxkrnl::OBJECT_TYPE xboxkrnl::IoCompletionObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
IopDeleteIoCompletion,
NULL, // TODO : xboxkrnl::IopDeleteIoCompletion,
NULL,
*/
NULL, // &ObpDefaultObject,
NULL, // &xboxkrnl::ObpDefaultObject,
'pmoC' // = first four characters of "Completion" in reverse
};
@ -348,14 +346,12 @@ XBSYSAPI EXPORTNUM(69) xboxkrnl::NTSTATUS NTAPI xboxkrnl::IoDeleteSymbolicLink
// ******************************************************************
XBSYSAPI EXPORTNUM(70) xboxkrnl::OBJECT_TYPE xboxkrnl::IoDeviceObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
NULL,
IoParseDevice,
*/
NULL, // &ObpDefaultObject,
NULL, // TODO : xboxkrnl::IoParseDevice,
NULL, // TODO : &xboxkrnl::ObpDefaultObject,
'iveD' // = first four characters of "Device" in reverse
};
@ -364,14 +360,12 @@ XBSYSAPI EXPORTNUM(70) xboxkrnl::OBJECT_TYPE xboxkrnl::IoDeviceObjectType =
// ******************************************************************
XBSYSAPI EXPORTNUM(71) xboxkrnl::OBJECT_TYPE xboxkrnl::IoFileObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
IopCloseFile,
IopDeleteFile,
IopParseFile,
*/
NULL, // (PVOID)FIELD_OFFSET(FILE_OBJECT, Event.Header),
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL, // TODO : xboxkrnl::IopCloseFile,
NULL, // TODO : xboxkrnl::IopDeleteFile,
NULL, // TODO : xboxkrnl::IopParseFile,
(PVOID)offsetof(xboxkrnl::FILE_OBJECT, Event.Header),
'eliF' // = "File" in reverse
};

View File

@ -530,13 +530,13 @@ XBSYSAPI EXPORTNUM(100) xboxkrnl::VOID NTAPI xboxkrnl::KeDisconnectInterrupt
// Mark InterruptObject as not connected anymore
InterruptObject->Connected = FALSE;
// Search for it in the registered list of interrupts:
for(int i = 0; i < EmuFreeInterrupt[InterruptObject->BusInterruptLevel]; i++)
for(uint i = 0; i < EmuFreeInterrupt[InterruptObject->BusInterruptLevel]; i++)
{
// Is it here?
if (EmuInterruptList[InterruptObject->BusInterruptLevel][i] == InterruptObject)
{
// Return the free slot :
int last = --EmuFreeInterrupt[InterruptObject->BusInterruptLevel];
uint last = --EmuFreeInterrupt[InterruptObject->BusInterruptLevel];
// Is this not the last slot?
if (i < last)
// Instead of shifting everything, move the last one into the slot of this InterruptObject :
@ -622,18 +622,18 @@ XBSYSAPI EXPORTNUM(108) xboxkrnl::VOID NTAPI xboxkrnl::KeInitializeEvent
(
IN PRKEVENT Event,
IN EVENT_TYPE Type,
IN BOOLEAN State
IN BOOLEAN SignalState
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Event)
LOG_FUNC_ARG(Type)
LOG_FUNC_ARG(State)
LOG_FUNC_ARG(SignalState)
LOG_FUNC_END;
Event->Header.Type = Type;
Event->Header.Size = sizeof(KEVENT) / sizeof(LONG);
Event->Header.SignalState = State;
Event->Header.SignalState = SignalState;
InitializeListHead(&(Event->Header.WaitListHead));
}
@ -743,7 +743,7 @@ XBSYSAPI EXPORTNUM(121) xboxkrnl::BOOLEAN NTAPI xboxkrnl::KeIsExecutingDpc
{
LOG_FUNC();
BOOLEAN ret = KeGetCurrentPrcb()->DpcRoutineActive;
BOOLEAN ret = (BOOLEAN)KeGetCurrentPrcb()->DpcRoutineActive;
RETURN(ret);
}

View File

@ -231,7 +231,24 @@ XBSYSAPI EXPORTNUM(189) xboxkrnl::NTSTATUS NTAPI xboxkrnl::NtCreateEvent
LOG_FUNC_ARG(EventType)
LOG_FUNC_ARG(InitialState)
LOG_FUNC_END;
/*
NTSTATUS Status;
if ((EventType != NotificationEvent) && (EventType != SynchronizationEvent)) {
Status = STATUS_INVALID_PARAMETER;
}
else {
PKEVENT Event;
Status = ObCreateObject(&ExEventObjectType, ObjectAttributes, sizeof(KEVENT), (PVOID *)&Event);
if (NT_SUCCESS(Status)) {
KeInitializeEvent(Event, EventType, InitialState);
Status = ObInsertObject(Event, ObjectAttributes, 0, EventHandle);
}
}
RETURN(Status);
*/
// initialize object attributes
NativeObjectAttributes nativeObjectAttributes;
CxbxObjectAttributesToNT(ObjectAttributes, /*var*/nativeObjectAttributes);

View File

@ -60,22 +60,135 @@ namespace NtDll
#include <ntstatus.h>
#pragma warning(default:4005)
#define OBJECT_TO_OBJECT_HEADER(Object) \
CONTAINING_RECORD(Object, OBJECT_HEADER, Body)
#define OB_FLAG_NAMED_OBJECT 1
// ******************************************************************
// * 0x00EF - ObCreateObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(239) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObCreateObject
(
IN POBJECT_TYPE ObjectType,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN ULONG ObjectBodySize,
OUT PVOID *Object
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(ObjectType)
LOG_FUNC_ARG(ObjectAttributes)
LOG_FUNC_ARG(ObjectBodySize)
LOG_FUNC_ARG_OUT(Object)
LOG_FUNC_END;
NTSTATUS result = STATUS_SUCCESS;
OBJECT_STRING TmpName = { 0 };
int NameSize = 0;
if (ObjectAttributes != NULL && ObjectAttributes->ObjectName != NULL) {
if (ObjectAttributes->ObjectName->Length == 0) {
result = STATUS_OBJECT_NAME_INVALID;
}
else {
// TODO : Split name in parts?
TmpName.Buffer = ObjectAttributes->ObjectName->Buffer;
TmpName.Length = ObjectAttributes->ObjectName->Length;
TmpName.MaximumLength = ObjectAttributes->ObjectName->Length;
NameSize = sizeof(OBJECT_STRING) + TmpName.Length + sizeof('\0'); // trailing zero
}
}
if (result == STATUS_SUCCESS) {
// Allocate the object
int ObjectSize = offsetof(OBJECT_HEADER, Body) + ObjectBodySize;
// TODO : Is this ever something else than ExAllocatePoolWithTag ?
POBJECT_HEADER ObjectHeader = (POBJECT_HEADER)ObjectType->AllocateProcedure(ObjectSize + NameSize, ObjectType->PoolTag);
if (ObjectHeader == NULL) {
// Detected out of memory
*Object = NULL;
result = STATUS_INSUFFICIENT_RESOURCES;
}
else {
// Initialize default values of object (header) :
ObjectHeader->PointerCount = 1;
ObjectHeader->HandleCount = 0;
ObjectHeader->Type = ObjectType;
if (NameSize == 0)
ObjectHeader->Flags = 0;
else {
// Copy name after object (we've reserved NameSize bytes there) :
OBJECT_STRING *Name = (OBJECT_STRING *)((char *)ObjectHeader + ObjectSize);
char *NameBuffer = (char *)Name + sizeof(OBJECT_STRING);
// Initialize name struct :
Name->Buffer = NameBuffer;
Name->Length = Name->MaximumLength = TmpName.Length;
// Copy name into reserved buffer :
memcpy(NameBuffer, TmpName.Buffer, TmpName.Length);
// Mark object as named :
ObjectHeader->Flags = OB_FLAG_NAMED_OBJECT;
// TODO : Verify this all works, then use it somehow
}
*Object = &ObjectHeader->Body;
result = STATUS_SUCCESS;
}
}
RETURN(result);
}
// ******************************************************************
// * 0x00F0 - ObDirectoryObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(240) xboxkrnl::OBJECT_TYPE xboxkrnl::ObDirectoryObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
NULL,
NULL,
*/
NULL, // &ObpDefaultObject,
NULL, // TODO : &xboxkrnl::ObpDefaultObject,
'eriD' // = first four characters of "Directory" in reverse
};
// ******************************************************************
// * 0x00F1 - ObInsertObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(241) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObInsertObject
(
IN PVOID Object,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN ULONG ObjectPointerBias,
OUT PHANDLE Handle
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Object)
LOG_FUNC_ARG(ObjectAttributes)
LOG_FUNC_ARG(ObjectPointerBias)
LOG_FUNC_ARG_OUT(Handle)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(S_OK);
}
// ******************************************************************
// * 0x00F2 - ObMakeTemporaryObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(242) xboxkrnl::VOID NTAPI xboxkrnl::ObMakeTemporaryObject
(
IN PVOID Object
)
{
LOG_FUNC_ONE_ARG(Object);
LOG_UNIMPLEMENTED();
}
// ******************************************************************
// * 0x00F3 - ObOpenObjectByName()
// ******************************************************************
@ -124,6 +237,27 @@ XBSYSAPI EXPORTNUM(243) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObOpenObjectByName
RETURN(ret);
}
// ******************************************************************
// * 0x00F4 - ObOpenObjectByPointer()
// ******************************************************************
XBSYSAPI EXPORTNUM(244) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObOpenObjectByPointer
(
IN PVOID Object,
IN POBJECT_TYPE ObjectType,
OUT PHANDLE Handle
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Object)
LOG_FUNC_ARG(ObjectType)
LOG_FUNC_ARG_OUT(Handle)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(S_OK);
}
// ******************************************************************
// * 0x00F5 - ObpObjectHandleTable
// ******************************************************************
@ -159,19 +293,66 @@ XBSYSAPI EXPORTNUM(246) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByHa
RETURN(STATUS_SUCCESS);
}
// ******************************************************************
// * 0x00F7 - ObReferenceObjectByName()
// ******************************************************************
XBSYSAPI EXPORTNUM(247) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByName
(
IN POBJECT_STRING ObjectName,
IN ULONG Attributes,
IN POBJECT_TYPE ObjectType,
IN OUT PVOID ParseContext OPTIONAL,
OUT PVOID *Object
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(ObjectName)
LOG_FUNC_ARG(Attributes)
LOG_FUNC_ARG(ObjectType)
LOG_FUNC_ARG_OUT(ParseContext)
LOG_FUNC_ARG_OUT(Object)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
RETURN(S_OK);
}
// ******************************************************************
// * 0x00F8 - ObReferenceObjectByPointer()
// ******************************************************************
XBSYSAPI EXPORTNUM(248) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObReferenceObjectByPointer
(
IN PVOID Object,
IN POBJECT_TYPE ObjectType
)
{
LOG_FUNC_BEGIN
LOG_FUNC_ARG(Object)
LOG_FUNC_ARG(ObjectType)
LOG_FUNC_END;
POBJECT_HEADER ObjectHeader = OBJECT_TO_OBJECT_HEADER(Object);
NTSTATUS result = STATUS_SUCCESS;
if (ObjectType == ObjectHeader->Type)
InterlockedIncrement(&ObjectHeader->PointerCount); // Same as ObfReferenceObject
else
result = STATUS_OBJECT_TYPE_MISMATCH;
RETURN(result);
}
// ******************************************************************
// * 0x00F9 - ObSymbolicLinkObjectType
// ******************************************************************
XBSYSAPI EXPORTNUM(249) xboxkrnl::OBJECT_TYPE xboxkrnl::ObSymbolicLinkObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
ObpDeleteSymbolicLink,
NULL, // TODO : xboxkrnl::ObpDeleteSymbolicLink,
NULL,
*/
NULL, // &ObpDefaultObject,
NULL, // TODO : &xboxkrnl::ObpDefaultObject,
'bmyS' // = first four characters of "SymbolicLink" in reverse
};
@ -184,6 +365,32 @@ XBSYSAPI EXPORTNUM(250) xboxkrnl::VOID FASTCALL xboxkrnl::ObfDereferenceObject
)
{
LOG_FUNC_ONE_ARG_OUT(Object);
LOG_UNIMPLEMENTED();
POBJECT_HEADER ObjectHeader = OBJECT_TO_OBJECT_HEADER(Object);
if (InterlockedDecrement(&ObjectHeader->PointerCount) == 0)
{
if (ObjectHeader->Type->DeleteProcedure != NULL)
ObjectHeader->Type->DeleteProcedure(Object);
// TODO : How to handle named objects?
ObjectHeader->Type->FreeProcedure(ObjectHeader); // TODO : Is this ever something else than ExFreePool ?
}
}
// ******************************************************************
// * 0x00FB - ObfReferenceObject()
// ******************************************************************
XBSYSAPI EXPORTNUM(251) xboxkrnl::VOID FASTCALL xboxkrnl::ObfReferenceObject
(
IN PVOID Object
)
{
LOG_FUNC_ONE_ARG_OUT(Object);
POBJECT_HEADER ObjectHeader = OBJECT_TO_OBJECT_HEADER(Object);
InterlockedIncrement(&ObjectHeader->PointerCount);
}

View File

@ -393,13 +393,11 @@ XBSYSAPI EXPORTNUM(258) xboxkrnl::VOID NTAPI xboxkrnl::PsTerminateSystemThread
// ******************************************************************
XBSYSAPI EXPORTNUM(259) xboxkrnl::OBJECT_TYPE VOLATILE xboxkrnl::PsThreadObjectType =
{
/*
ExAllocatePoolWithTag,
ExFreePool,
xboxkrnl::ExAllocatePoolWithTag,
xboxkrnl::ExFreePool,
NULL,
NULL,
NULL,
*/
NULL, // (PVOID)FIELD_OFFSET(KTHREAD, Header),
(PVOID)offsetof(xboxkrnl::KTHREAD, Header),
'erhT' // = first four characters of "Thread" in reverse
};

View File

@ -365,7 +365,7 @@ xbaddr EmuX86_Distorm_O_SMEM_Addr(LPEXCEPTION_POINTERS e, _DInst& info, int oper
{
xbaddr base = EmuX86_GetRegisterValue32(e, info.ops[operand].index);
return base + info.disp;
return base + (uint32_t)info.disp;
}
xbaddr EmuX86_Distorm_O_MEM_Addr(LPEXCEPTION_POINTERS e, _DInst& info, int operand)
@ -375,9 +375,9 @@ xbaddr EmuX86_Distorm_O_MEM_Addr(LPEXCEPTION_POINTERS e, _DInst& info, int opera
uint32_t index = EmuX86_GetRegisterValue32(e, info.ops[operand].index);
if (info.scale >= 2)
return base + (index * info.scale) + info.disp;
return base + (index * info.scale) + (uint32_t)info.disp;
else
return base + index + info.disp;
return base + index + (uint32_t)info.disp;
}
void EmuX86_Addr_Read(xbaddr srcAddr, uint16_t size, OUT uint32_t *value)
@ -462,7 +462,7 @@ bool EmuX86_Operand_Read(LPEXCEPTION_POINTERS e, _DInst& info, int operand, OUT
}
case O_DISP:
{
xbaddr srcAddr = info.disp;
xbaddr srcAddr = (xbaddr)info.disp;
EmuX86_Addr_Read(srcAddr, info.ops[operand].size, value);
return true;
}
@ -541,7 +541,7 @@ bool EmuX86_Operand_Write(LPEXCEPTION_POINTERS e, _DInst& info, int operand, uin
}
case O_DISP:
{
xbaddr destAddr = info.disp;
xbaddr destAddr = (xbaddr)info.disp;
EmuX86_Addr_Write(destAddr, info.ops[operand].size, value);
return true;
}

View File

@ -78,7 +78,7 @@ HRESULT WINAPI XTL::EMUPATCH(XACTEngineCreate)
// TODO: Any other form of initialization?
*ppEngine = (X_XACTEngine*) CxbxMalloc( sizeof( X_XACTEngine ) );
*ppEngine = (X_XACTEngine*) CxbxCalloc(1, sizeof( X_XACTEngine ) );
@ -122,7 +122,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterWaveBank)
// TODO: Implement
*ppWaveBank = (X_XACTWaveBank*) CxbxMalloc( sizeof( X_XACTWaveBank ) );
*ppWaveBank = (X_XACTWaveBank*) CxbxCalloc(1, sizeof( X_XACTWaveBank ) );
RETURN(S_OK);
}
@ -145,7 +145,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_RegisterStreamedWaveBank)
// TODO: Implement
*ppWaveBank = (X_XACTWaveBank*) CxbxMalloc( sizeof( X_XACTWaveBank ) );
*ppWaveBank = (X_XACTWaveBank*) CxbxCalloc(1, sizeof( X_XACTWaveBank ) );
RETURN(S_OK);
}
@ -170,7 +170,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CreateSoundBank)
// TODO: Implement
*ppSoundBank = (X_XACTSoundBank*) CxbxMalloc( sizeof( X_XACTSoundBank ) );
*ppSoundBank = (X_XACTSoundBank*) CxbxCalloc(1, sizeof( X_XACTSoundBank ) );
RETURN(S_OK);
}
@ -216,7 +216,7 @@ HRESULT WINAPI XTL::EMUPATCH(IXACTEngine_CreateSoundSource)
LOG_FUNC_ARG(ppSoundSource)
LOG_FUNC_END;
*ppSoundSource = (X_XACTSoundSource*) CxbxMalloc( sizeof( X_XACTSoundSource ) );
*ppSoundSource = (X_XACTSoundSource*) CxbxCalloc(1, sizeof( X_XACTSoundSource ) );
RETURN(S_OK);
}

View File

@ -39,6 +39,8 @@
#undef FIELD_OFFSET // prevent macro redefinition warnings
#include <windows.h>
#include "CxbxKrnl.h" // For xbaddr
extern "C" const char *szHLELastCompileTime = __TIMESTAMP__;
const char *Lib_D3D8 = "D3D8";
@ -184,4 +186,4 @@ extern const uint32 HLEDataBaseCount = sizeof(HLEDataBase) / sizeof(HLEData);
// ******************************************************************
// * XRefDataBase
// ******************************************************************
extern uint32 XRefDataBase[XREF_COUNT] = { 0 }; // Reset and populated by EmuHLEIntercept
extern xbaddr XRefDataBase[XREF_COUNT] = { 0 }; // Reset and populated by EmuHLEIntercept

View File

@ -336,14 +336,15 @@ enum XRefDataBaseOffset
// XREF_XFreeSectionByHandle,
XREF_COUNT // XREF_COUNT must always be last.
// Also, if XREF_COUNT > sizeof(byte), enlarge struct OOVPA.XRefSaveIndex (and Value somehow)
// Also, if XREF_COUNT > sizeof(uint16), enlarge struct OOVPA.XRefSaveIndex (and Value somehow)
};
#define XREF_UNKNOWN -1
#define XREF_ADDR_UNDETERMINED -1
#define XREF_ADDR_NOT_FOUND ((xbaddr)nullptr)
// ******************************************************************
// * XRefDataBase
// ******************************************************************
extern uint32 XRefDataBase[XREF_COUNT];
extern xbaddr XRefDataBase[XREF_COUNT];
#endif /*HLEDATABASE_H*/

View File

@ -36,8 +36,8 @@
#include "OOVPA.h"
extern SOOVPA<11> D3DDevice_SetTextureState_TexCoordIndex_3925;
extern SOOVPA<15> D3DDevice_SetRenderState_CullMode_3925;
extern LOOVPA<11> D3DDevice_SetTextureState_TexCoordIndex_3925;
extern LOOVPA<15> D3DDevice_SetRenderState_CullMode_3925;
extern OOVPATable D3D8_3925[];
extern uint32 D3D8_3925_SIZE;

View File

@ -2916,7 +2916,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 3925, 9,
XRefOne)
// D3DDevice_SetRenderState_RopZCmpAlwaysRead+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD]
{ 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD ), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderState_RopZCmpAlwaysRead+0x00 : mov eax, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -2942,7 +2942,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_RopZRead, 3925, 9,
XRefOne)
// D3DDevice_SetRenderState_RopZRead+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD]
{ 0x05, XREF_D3DRS_ROPZREAD }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x05, XREF_D3DRS_ROPZREAD ), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderState_RopZRead+0x00 : mov eax, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -2968,7 +2968,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_DoNotCullUncompressed, 3925, 9,
XRefOne)
// D3DDevice_SetRenderState_DoNotCullUncompressed+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD]
{ 0x05, XREF_D3DRS_DONOTCULLUNCOMPRESSED }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x05, XREF_D3DRS_DONOTCULLUNCOMPRESSED ), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderState_DoNotCullUncompressed+0x00 : mov eax, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -3046,7 +3046,7 @@ OOVPA_XREF(D3DDevice_InsertFence, 3925, 5,
XRefNoSaveIndex,
XRefOne)
{ 0x03, XREF_D3D_SETFENCE },
XREF_ENTRY( 0x03, XREF_D3D_SETFENCE ),
{ 0x00, 0x6A },
{ 0x01, 0x00 },
@ -3299,158 +3299,158 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_3925[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_IsBusy, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_EndVisibilityTest, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetVisibilityTestResult, 3925),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetMaterial, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackMaterial, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2s, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexDataColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_End, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePalette, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVolumeTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateCubeTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer, 3925),
OOVPA_TABLE_PATCH(X_D3DDevice_CreateVertexShader, 3925, D3DDevice_CreateVertexShader),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_PSTextureModes, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Present, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 3925),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DPalette_Lock, 3925),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DVolumeTexture_LockBox, 3925),
OOVPA_TABLE_ENTRY(D3DCubeTexture_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel, 3925),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Unknown1, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayFieldStatus, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_PersistDisplay, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVerticesUP, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVerticesUP, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4s, 3925),
OOVPA_TABLE_ENTRY(D3D_SetPushBufferSize, 3925),
OOVPA_TABLE_ENTRY(D3DResource_GetType, 3925), // Probably not even necessary...
OOVPA_TABLE_ENTRY(D3D_AllocContiguousMemory, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Deferred, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 3948),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetProjectionViewportMatrix, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetTile, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_ApplyStateBlock, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CaptureStateBlock, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteStateBlock, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateStateBlock, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DeletePixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderProgram, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_KickOff, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetModelView, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_FlushVertexCache, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetScissors, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderInput, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_PrimeVertexCache, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4ub, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_InsertCallback, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPushBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_EndPushBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 3925),
// OOVPA_TABLE_ENTRY(XMETAL_StartPush, 3925),
OOVPA_TABLE_XREF(D3D_SetFence, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_InsertFence, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShaderProgram, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_RunPushBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BlockOnFence, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 3925),
OOVPA_TABLE_ENTRY(D3D_GetAdapterIdentifier, 3925),
OOVPA_TABLE_ENTRY(D3D_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3D_SetCommonDebugRegisters, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateImageSurface, 3925),
OOVPA_TABLE_ENTRY(D3D_BlockOnTime, 3925),
OOVPA_TABLE_ENTRY(D3D_BlockOnResource, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 3925),
REGISTER_OOVPA(D3D_CreateDevice, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_IsBusy, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 3925, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetMaterial, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackMaterial, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2s, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_End, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePalette, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVolumeTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateCubeTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, ALIAS, X_D3DDevice_CreateVertexShader),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_PSTextureModes, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Present, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 3925, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DPalette_Lock, 3925, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DVolumeTexture_LockBox, 3925, PATCH),
REGISTER_OOVPA(D3DCubeTexture_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel, 3925, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Unknown1, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayFieldStatus, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_PersistDisplay, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4s, 3925, PATCH),
REGISTER_OOVPA(D3D_SetPushBufferSize, 3925, PATCH),
REGISTER_OOVPA(D3DResource_GetType, 3925, PATCH), // Probably not even necessary...
REGISTER_OOVPA(D3D_AllocContiguousMemory, 3925, DISABLED), // Just calls MmAllocateContiguousMemory. Was PATCH
// REGISTER_OOVPA(D3DDevice_SetRenderState_Deferred, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 3948, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetProjectionViewportMatrix, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetTile, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CaptureStateBlock, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteStateBlock, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateStateBlock, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DeletePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderProgram, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_KickOff, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetModelView, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_FlushVertexCache, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetScissors, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderInput, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_PrimeVertexCache, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4ub, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_InsertCallback, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPushBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_EndPushBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 3925, PATCH),
// REGISTER_OOVPA(XMETAL_StartPush, 3925, PATCH),
REGISTER_OOVPA(D3D_SetFence, 3925, XREF),
REGISTER_OOVPA(D3DDevice_InsertFence, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShaderProgram, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_RunPushBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BlockOnFence, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 3925, PATCH),
REGISTER_OOVPA(D3D_GetAdapterIdentifier, 3925, PATCH),
REGISTER_OOVPA(D3D_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3D_SetCommonDebugRegisters, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateImageSurface, 3925, PATCH),
REGISTER_OOVPA(D3D_BlockOnTime, 3925, PATCH),
REGISTER_OOVPA(D3D_BlockOnResource, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 3925, PATCH),
};
// ******************************************************************

View File

@ -36,7 +36,7 @@
#include "OOVPA.h"
extern SOOVPA<14> D3DDevice_SetRenderState_CullMode_4034;
extern LOOVPA<14> D3DDevice_SetRenderState_CullMode_4034;
extern OOVPATable D3D8_4034[];
extern uint32 D3D8_4034_SIZE;

View File

@ -788,7 +788,7 @@ OOVPA_END;
// ******************************************************************
// * D3DDevice_Clear
// ******************************************************************
OOVPA_NO_XREF_LARGE(D3DDevice_Clear, 4034, 9)
OOVPA_NO_XREF(D3DDevice_Clear, 4034, 9)
// D3DDevice_Clear+0x0000 : sub esp, 38h
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
@ -1090,136 +1090,136 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_4034[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 4034),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
REGISTER_OOVPA(D3D_CreateDevice, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 4034, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
#if 0
// ********************** BEG WARNING UNTESTED!!! *******************
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_EndVisibilityTest, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexDataColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_End, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_PSTextureModes, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Present, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface, 3925),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 3925),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 3925),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 3925),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_End, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_PSTextureModes, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 3925, PATCH),
// REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Present, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface, 3925, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 3925, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 3925, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 3925, PATCH),
// ********************** END WARNING UNTESTED!!! *******************
#endif
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_CreateCubeTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePalette, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVolumeTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DPalette_Lock, 3925),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DVolumeTexture_LockBox, 3925),
OOVPA_TABLE_ENTRY(D3DCubeTexture_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel, 3925),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_EndVisibilityTest, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_CopyRects, 4034),
// OOVPA_TABLE_ENTRY(D3DDevice_DeletePatch, 4034), // (TODO)
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetVisibilityTestResult, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DrawRectPatch, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 4034),
OOVPA_TABLE_ENTRY(D3D_CheckDeviceFormat, 4034),
OOVPA_TABLE_ENTRY(D3D_SetPushBufferSize, 4034),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 4034),
OOVPA_TABLE_ENTRY(D3D_GetAdapterIdentifier, 3925),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 4034),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 4034),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_CreateImageSurface, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer, 4034),
// OOVPA_TABLE_ENTRY(D3DDevice_, 4034),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_CreateCubeTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePalette, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVolumeTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DPalette_Lock, 3925, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DVolumeTexture_LockBox, 3925, PATCH),
REGISTER_OOVPA(D3DCubeTexture_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel, 3925, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_CopyRects, 4034, PATCH),
// REGISTER_OOVPA(D3DDevice_DeletePatch, 4034, PATCH), // (TODO)
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DrawRectPatch, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 4034, PATCH),
REGISTER_OOVPA(D3D_CheckDeviceFormat, 4034, PATCH),
REGISTER_OOVPA(D3D_SetPushBufferSize, 4034, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 4034, PATCH),
REGISTER_OOVPA(D3D_GetAdapterIdentifier, 3925, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4034, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 4034, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_CreateImageSurface, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer, 4034, PATCH),
// REGISTER_OOVPA(D3DDevice_, 4034, PATCH),
};
// ******************************************************************

View File

@ -36,7 +36,7 @@
#include "OOVPA.h"
extern SOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4134;
extern LOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4134;
extern OOVPATable D3D8_4134[];
extern uint32 D3D8_4134_SIZE;

View File

@ -224,7 +224,7 @@ OOVPA_END;
// ******************************************************************
// * D3DDevice_Clear
// ******************************************************************
OOVPA_NO_XREF_LARGE(D3DDevice_Clear, 4134, 9)
OOVPA_NO_XREF(D3DDevice_Clear, 4134, 9)
// D3DDevice_Clear+0x0000 : sub esp, 38h
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
@ -1012,7 +1012,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_FrontFace, 4134, 11,
XRefOne)
// D3DDevice_SetRenderState_FrontFace+0x36 : jmp D3DDevice_SetRenderState_CullMode
{ 0x36, XREF_DXSRSCULLMODE}, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x36, XREF_DXSRSCULLMODE), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderState_FrontFace+0x09 : cmp eax, [esi+4]
{ 0x09, 0x3B }, // (Offset,Value)-Pair #2
@ -1113,7 +1113,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_StencilCullEnable, 4134, 13,
XRefOne)
// D3DDevice_SetRenderState_StencilCullEnable+0x0C : D3D__RenderState[D3DRS_STENCILCULLENABLE]
{ 0x0C, XREF_D3DRS_STENCILCULLENABLE }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0C, XREF_D3DRS_STENCILCULLENABLE ), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderState_StencilCullEnable+0x15 : jb +0x05
{ 0x15, 0x72 }, // (Offset,Value)-Pair #2
@ -1170,7 +1170,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, 9,
XRefOne)
// D3DDevice_SetRenderState_RopZCmpAlwaysRead+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD]
{ 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD ), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderState_RopZCmpAlwaysRead+0x00 : mov eax, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -1196,7 +1196,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_RopZRead, 4134, 9,
XRefOne)
// D3DDevice_SetRenderState_RopZRead+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD]
{ 0x05, XREF_D3DRS_ROPZREAD }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x05, XREF_D3DRS_ROPZREAD ), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderState_RopZRead+0x00 : mov eax, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -1222,7 +1222,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, 9,
XRefOne)
// D3DDevice_SetRenderState_DoNotCullUncompressed+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD]
{ 0x05, XREF_D3DRS_DONOTCULLUNCOMPRESSED }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x05, XREF_D3DRS_DONOTCULLUNCOMPRESSED ), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderState_DoNotCullUncompressed+0x00 : mov eax, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -1790,157 +1790,157 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_4134[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 3925),
OOVPA_TABLE_ENTRY(D3D_CheckDeviceFormat, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 4134),
REGISTER_OOVPA(D3D_CreateDevice, 3925, PATCH),
REGISTER_OOVPA(D3D_CheckDeviceFormat, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 4134, PATCH),
// ********************** BEG WARNING UNTESTED!!! *******************
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_EndVisibilityTest, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexDataColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_End, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePalette, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVolumeTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateCubeTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_PSTextureModes, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Present, 3925),
// OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer, 3925),
// OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 3925),
OOVPA_TABLE_ENTRY(D3DPalette_Lock, 3925),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DVolumeTexture_LockBox, 3925),
OOVPA_TABLE_ENTRY(D3DCubeTexture_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel, 3925),
// OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 3925),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 3925, PATCH),
// REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 3925, PATCH),
// REGISTER_OOVPA(D3DDevice_SetVertexShader, 3925, PATCH),
// REGISTER_OOVPA(D3DDevice_SetPixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_End, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePalette, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVolumeTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateCubeTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_PSTextureModes, 3925, PATCH),
// REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 3925, PATCH),
// REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 3925, PATCH),
// REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Present, 3925, PATCH),
// REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer, 3925, PATCH),
// REGISTER_OOVPA(D3DVertexBuffer_Lock, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 3925, PATCH),
REGISTER_OOVPA(D3DPalette_Lock, 3925, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DVolumeTexture_LockBox, 3925, PATCH),
REGISTER_OOVPA(D3DCubeTexture_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel, 3925, PATCH),
// REGISTER_OOVPA(Get2DSurfaceDesc, 3925, PATCH),
// ********************** END WARNING UNTESTED!!! *******************
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteVertexShader, 3925),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_CopyRects, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_CreateImageSurface, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVerticesUP, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 4134),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 4034),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 4134),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4134),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVerticesUP, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DeletePixelShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteVertexShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetScreenSpaceOffset, 4134),
OOVPA_TABLE_XREF(D3D_SetFence, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetSwapCallback, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetTile, 4134),
OOVPA_TABLE_PATCH(D3DDevice_SetTile, 4134, D3DDevice_SetTileNoWait),
OOVPA_TABLE_ENTRY(D3DDevice_IsBusy, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_PATCH(D3DDevice_KickOff, 4134, D3DDevice_KickOff),
OOVPA_TABLE_ENTRY(D3DDevice_InsertFence, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BlockOnFence, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 4134),
OOVPA_TABLE_ENTRY(D3D_GetAdapterIdentifier, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetVisibilityTestResult, 3925),
REGISTER_OOVPA(D3DDevice_GetBackBuffer, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_CopyRects, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_CreateImageSurface, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 4134, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 4034, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 4134, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DeletePixelShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 4134, PATCH),
REGISTER_OOVPA(D3D_SetFence, 4134, XREF),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetSwapCallback, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetTile, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTileNoWait, 4134, ALIAS, D3DDevice_SetTile),
REGISTER_OOVPA(D3DDevice_IsBusy, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_KickOff, 4134, ALIAS, D3DDevice_KickOff),
REGISTER_OOVPA(D3DDevice_InsertFence, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BlockOnFence, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4134, PATCH),
REGISTER_OOVPA(D3D_GetAdapterIdentifier, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 3925, PATCH),
};
// ******************************************************************

View File

@ -36,7 +36,7 @@
#include "OOVPA.h"
extern SOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4361;
extern LOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4361;
extern OOVPATable D3D8_4361[];
extern uint32 D3D8_4361_SIZE;

View File

@ -289,7 +289,7 @@ OOVPA_XREF(D3DDevice_BeginStateBlock, 4361, 6,
XRefOne)
// D3DDevice_BeginStateBlock+0x0F : call [ClearStateBlockFlags]
{ 0x0A, XREF_CLEARSTATEBLOCKFLAGS }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0A, XREF_CLEARSTATEBLOCKFLAGS ), // (Offset,Value)-Pair #1
// D3DDevice_BeginStateBlock+0x00 : mov eax, [addr]
{ 0x00, 0xA1 }, // (Offset,Value)-Pair #2
@ -364,7 +364,7 @@ OOVPA_XREF(D3DDevice_EndStateBlock, 4361, 6,
XRefOne)
// D3DDevice_EndStateBlock+0x0F : call [ClearStateBlockFlags]
{ 0x0A, XREF_RECORDSTATEBLOCK }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0A, XREF_RECORDSTATEBLOCK ), // (Offset,Value)-Pair #1
// D3DDevice_EndStateBlock+0x00 : mov eax, [addr]
{ 0x00, 0xA1 }, // (Offset,Value)-Pair #2
@ -1775,143 +1775,143 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_4361[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 4361),
OOVPA_TABLE_ENTRY(D3D_CheckDeviceFormat, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_AddRef, 4361),
OOVPA_TABLE_XREF(D3D_ClearStateBlockFlags, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 4361),
OOVPA_TABLE_XREF(D3D_RecordStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CaptureStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_ApplyStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CopyRects, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreateImageSurface, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SwitchTexture, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_EnableOverlay, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_UpdateOverlay, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVerticesUP, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 4361),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 4361),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 4361),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 4361),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 4361),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 4361),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DBaseTexture_GetLevelCount, 4361),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePalette, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer, 3925), // TODO: This needs to be verified on 4361, not just 4242!
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DPalette_Lock, 3925),
OOVPA_TABLE_ENTRY(D3DCubeTexture_LockRect, 3925), // TODO: This needs to be verified on 4361, not just 4242!
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4134),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVerticesUP, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DeletePixelShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetScreenSpaceOffset, 4134),
OOVPA_TABLE_XREF(D3D_SetFence, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetSwapCallback, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetTile, 4134),
OOVPA_TABLE_PATCH(D3DDevice_SetTile, 4134, D3DDevice_SetTileNoWait),
OOVPA_TABLE_ENTRY(D3DDevice_IsBusy, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetVisibilityTestResult, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_PrimeVertexCache, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPush, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndPush, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_End, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4ub, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BlockOnFence, 4134),
OOVPA_TABLE_ENTRY(D3D_GetAdapterIdentifier, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPushBuffer, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndPushBuffer, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_RunPushBuffer, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetPushBufferOffset, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreateCubeTexture, 4361),
OOVPA_TABLE_ENTRY(D3DCubeTexture_GetCubeMapSurface, 4361),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
REGISTER_OOVPA(D3D_CreateDevice, 4361, PATCH),
REGISTER_OOVPA(D3D_CheckDeviceFormat, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_AddRef, 4361, PATCH),
REGISTER_OOVPA(D3D_ClearStateBlockFlags, 4361, XREF),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 4361, PATCH),
REGISTER_OOVPA(D3D_RecordStateBlock, 4361, XREF),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CaptureStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CopyRects, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreateImageSurface, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SwitchTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_UpdateOverlay, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 4361, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 4361, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 4361, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 4361, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 4361, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 4361, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePalette, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer, 3925, PATCH), // TODO: This needs to be verified on 4361, not just 4242!
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DPalette_Lock, 3925, PATCH),
REGISTER_OOVPA(D3DCubeTexture_LockRect, 3925, PATCH), // TODO: This needs to be verified on 4361, not just 4242!
REGISTER_OOVPA(D3DDevice_SetPalette, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DeletePixelShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 4134, PATCH),
REGISTER_OOVPA(D3D_SetFence, 4134, XREF),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetSwapCallback, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetTile, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTileNoWait, 4134, ALIAS, D3DDevice_SetTile),
REGISTER_OOVPA(D3DDevice_IsBusy, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_PrimeVertexCache, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPush, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndPush, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_End, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4ub, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BlockOnFence, 4134, PATCH),
REGISTER_OOVPA(D3D_GetAdapterIdentifier, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPushBuffer, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndPushBuffer, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_RunPushBuffer, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetPushBufferOffset, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreateCubeTexture, 4361, PATCH),
REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface, 4361, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
};
// ******************************************************************

View File

@ -690,122 +690,122 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_4432[] {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 4432),
OOVPA_TABLE_ENTRY(D3D_CheckDeviceFormat, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_AddRef, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 4432),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EnableOverlay, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetVisibilityTestResult, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SwitchTexture, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePalette, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 4531),
OOVPA_TABLE_ENTRY(D3DDevice_UpdateOverlay, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVerticesUP, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVerticesUP, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 4361),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 4361),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel, 4432),
OOVPA_TABLE_ENTRY(D3DPalette_Lock, 3925),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4531),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 4361),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DeletePixelShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetScreenSpaceOffset, 4134),
OOVPA_TABLE_XREF(D3D_SetFence, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer, 3925),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 4361),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 4531),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_End, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4ub, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 4361),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(D3DBaseTexture_GetLevelCount, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetProjectionViewportMatrix, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderInput, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetModelView, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPush, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_EndPush, 4432),
REGISTER_OOVPA(D3D_CreateDevice, 4432, PATCH),
REGISTER_OOVPA(D3D_CheckDeviceFormat, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_AddRef, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 4432, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SwitchTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePalette, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 4531, PATCH),
REGISTER_OOVPA(D3DDevice_UpdateOverlay, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 4361, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 4361, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel, 4432, PATCH),
REGISTER_OOVPA(D3DPalette_Lock, 3925, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4531, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 4361, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DeletePixelShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 4134, PATCH),
REGISTER_OOVPA(D3D_SetFence, 4134, XREF),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer, 3925, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 4361, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 4531, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_End, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4ub, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 4361, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetProjectionViewportMatrix, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderInput, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetModelView, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPush, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_EndPush, 4432, PATCH),
};
// ******************************************************************

View File

@ -36,7 +36,7 @@
#include "OOVPA.h"
extern SOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4627;
extern LOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_4627;
extern OOVPATable D3D8_4627[];
extern uint32 D3D8_4627_SIZE;

View File

@ -332,7 +332,7 @@ OOVPA_XREF(D3DDevice_SetRenderTarget, 4627, 13,
XRefOne)
// D3DDevice_SetRenderTarget+0x10 : call [D3D_CommonSetRenderTarget]
{ 0x10, XREF_COMMONSETRENDERTARGET }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x10, XREF_COMMONSETRENDERTARGET ), // (Offset,Value)-Pair #1
// D3DDevice_SetRenderTarget+0x00 : mov eax, [esp+0x08]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -1116,7 +1116,7 @@ OOVPA_END;
// ******************************************************************
// * D3DDevice_Clear
// ******************************************************************
OOVPA_NO_XREF_LARGE(D3DDevice_Clear, 4627, 9)
OOVPA_NO_XREF(D3DDevice_Clear, 4627, 9)
// D3DDevice_Clear+0x0000 : sub esp, 38h
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
@ -1136,7 +1136,7 @@ OOVPA_END;
// ******************************************************************
// * D3DDevice_ClearB
// ******************************************************************
OOVPA_NO_XREF_LARGE(D3DDevice_ClearB, 4627, 9)
OOVPA_NO_XREF(D3DDevice_ClearB, 4627, 9)
// D3DDevice_Clear+0x0000 : sub esp, 38h
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
@ -1864,7 +1864,7 @@ OOVPA_XREF(Get2DSurfaceDescC, 4627, 10,
XRefOne)
// Get2DSurfaceDescC+0x10 : call [Get2DSurfaceDescB]
{ 0x10, XREF_GET2DSURFACEDESCB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x10, XREF_GET2DSURFACEDESCB ), // (Offset,Value)-Pair #1
// Get2DSurfaceDescC+0x00 : push ebx; push esi; push edi
{ 0x00, 0x53 }, // (Offset,Value)-Pair #2
@ -1891,7 +1891,7 @@ OOVPA_XREF(Get2DSurfaceDescD, 4627, 10,
XRefOne)
// Get2DSurfaceDescD+0x0E : call [Get2DSurfaceDescB]
{ 0x0E, XREF_GET2DSURFACEDESCB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0E, XREF_GET2DSURFACEDESCB ), // (Offset,Value)-Pair #1
// Get2DSurfaceDescD+0x00 : push ebx; push esi; push edi
{ 0x00, 0x53 }, // (Offset,Value)-Pair #2
@ -2098,7 +2098,7 @@ OOVPA_XREF(D3DDevice_EndPush, 4627, 12,
XRefNoSaveIndex,
XRefOne)
{ 0x06, XREF_D3DDEVICE }, // 1
XREF_ENTRY( 0x06, XREF_D3DDEVICE ), // 1
{ 0x00, 0x8B }, // 2
{ 0x01, 0x44 }, // 3
@ -2517,7 +2517,7 @@ OOVPA_XREF(D3DDevice_InsertFence, 4627, 5,
XRefNoSaveIndex,
XRefOne)
{ 0x03, XREF_D3D_SETFENCE },
XREF_ENTRY( 0x03, XREF_D3D_SETFENCE ),
{ 0x00, 0x6A },
{ 0x01, 0x00 },
@ -2560,7 +2560,7 @@ OOVPA_XREF(D3DDevice_KickPushBuffer, 4627, 4,
XRefNoSaveIndex,
XRefOne)
{ 0x07, XREF_D3D_KickOff },
XREF_ENTRY( 0x07, XREF_D3D_KickOff ),
{ 0x00, 0x8B },
{ 0x01, 0x0D },
@ -2855,7 +2855,7 @@ OOVPA_XREF(D3DDevice_BlockOnFence, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x08, XREF_D3D_BLOCKONTIME },
XREF_ENTRY( 0x08, XREF_D3D_BLOCKONTIME ),
{ 0x00, 0x8B },
{ 0x02, 0x24 },
@ -3126,216 +3126,216 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_4627[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 4627),
OOVPA_TABLE_PATCH(D3D_CreateDeviceX, 4627, D3D_CreateDevice),
OOVPA_TABLE_ENTRY(D3D_CheckDeviceFormat, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_EndVisibilityTest, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVisibilityTestResult, 3925),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 4627),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPush, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_EndPush, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CopyRects, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer2, 4627),
OOVPA_TABLE_PATCH(D3DDevice_GetBackBuffer2B, 4627, D3DDevice_GetBackBuffer2),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 4627),
OOVPA_TABLE_XREF(D3D_CommonSetRenderTarget, 4627),
OOVPA_TABLE_XREF(D3D_CommonSetRenderTargetB, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_AddRef, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget2, 4627),
OOVPA_TABLE_PATCH(D3DDevice_GetRenderTarget2B, 4627, D3DDevice_GetRenderTarget2),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface2, 4627),
OOVPA_TABLE_PATCH(D3DDevice_GetDepthStencilSurface2B, 4627, D3DDevice_GetDepthStencilSurface2),
OOVPA_TABLE_ENTRY(D3DDevice_GetTile, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTileNoWait, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant1, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant4, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstantNotInline, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_DeletePixelShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture2, 4627),
OOVPA_TABLE_PATCH(D3DDevice_CreateTexture2B, 4627, D3DDevice_CreateTexture2),
OOVPA_TABLE_PATCH(D3DDevice_CreateTexture2C, 4627, D3DDevice_CreateTexture2),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_RunPushBuffer, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_End, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 4627),
OOVPA_TABLE_PATCH(D3DDevice_ClearB, 4627, D3DDevice_Clear),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_EnableOverlay, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_UpdateOverlay, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetOverlayUpdateStatus, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 4627),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_ZEnableB, 4627, D3DDevice_SetRenderState_ZEnable),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_MultiSampleAntiAliasB, 4627, D3DDevice_SetRenderState_MultiSampleAntiAlias),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SwitchTexture, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetStreamSource2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVerticesUP, 4627),
OOVPA_TABLE_PATCH(D3DDevice_DrawVerticesUPB, 4627, D3DDevice_DrawVerticesUP),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 4361),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock2, 4627),
OOVPA_TABLE_PATCH(D3DVertexBuffer_Lock2B, 4627, D3DVertexBuffer_Lock2),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 4627),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 4361),
// OOVPA_TABLE_ENTRY(D3DResource_GetType, 4627), // I forget why I had this in here...
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 4627),
OOVPA_TABLE_XREF(Get2DSurfaceDescB, 4627),
OOVPA_TABLE_PATCH(Get2DSurfaceDescC, 4627, Get2DSurfaceDesc),
OOVPA_TABLE_ENTRY(Get2DSurfaceDescD, 4627),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 4361),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 4627),
OOVPA_TABLE_ENTRY(D3DBaseTexture_GetLevelCount, 4361),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel2, 4627),
OOVPA_TABLE_PATCH(D3DTexture_GetSurfaceLevel2B, 4627, D3DTexture_GetSurfaceLevel2),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DVolumeTexture_LockBox, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewportOffsetAndScale, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShaderDirect, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetShaderConstantMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderConstant, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderInputDirect, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderInput, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_RunVertexStateShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShaderProgram, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderType, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderDeclaration, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderFunction, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderInput, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 4721),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetScissors, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetBackBufferScale, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderProgram, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayFieldStatus, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetScreenSpaceOffset, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_CreateStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_InsertCallback, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_DrawRectPatch, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetProjectionViewportMatrix, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4531),
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 4627),
OOVPA_TABLE_XREF(D3D_SetFence, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_InsertFence, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_KickOff, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 4134), // Beware of the typo...
OOVPA_TABLE_ENTRY(D3DDevice_GetTexture2, 4627),
// OOVPA_TABLE_ENTRY(D3DDevice_SetStateVB, 4627),
// OOVPA_TABLE_ENTRY(D3DDevice_SetStateUP, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVerticesUP, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetStipple, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_PersistDisplay, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_PersistDisplay, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_SetSwapCallback, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_ApplyStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CaptureStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4ub, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 4361),
OOVPA_TABLE_XREF(D3D_BlockOnTime, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BlockOnFence, 4627),
OOVPA_TABLE_ENTRY(Lock3DSurface, 4627),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_CreateImageSurface, 4627),
OOVPA_TABLE_ENTRY(D3DCubeTexture_GetCubeMapSurface2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetPixelShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePalette2, 4627),
OOVPA_TABLE_ENTRY(D3DPalette_Lock2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPushBuffer, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_EndPushBuffer, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetPersistedSurface2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetModelView, 4627),
OOVPA_TABLE_ENTRY(D3D_LazySetPointParams, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetDepthClipPlanes, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetMaterial, 4627),
OOVPA_TABLE_PATCH(D3DDevice_KickPushBuffer, 4627, D3DDevice_KickOff),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackMaterial, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetBackMaterial, 4627),
// OOVPA_TABLE_ENTRY(D3DCubeTexture_LockRect, 3925), // TODO: This needs to be verified on 4361, not just 4242!
REGISTER_OOVPA(D3D_CreateDevice, 4627, PATCH),
REGISTER_OOVPA(D3D_CreateDevice, 4627, ALIAS, D3D_CreateDeviceX),
REGISTER_OOVPA(D3D_CheckDeviceFormat, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 3925, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 4627, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPush, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_EndPush, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CopyRects, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 4627, ALIAS, D3DDevice_GetBackBuffer2B),
REGISTER_OOVPA(D3DDevice_SetViewport, 4627, PATCH),
REGISTER_OOVPA(D3D_CommonSetRenderTarget, 4627, XREF),
REGISTER_OOVPA(D3D_CommonSetRenderTargetB, 4627, XREF),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_AddRef, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget2, 4627, ALIAS, D3DDevice_GetRenderTarget2B),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface2, 4627, ALIAS, D3DDevice_GetDepthStencilSurface2B),
REGISTER_OOVPA(D3DDevice_GetTile, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTileNoWait, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant4, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstantNotInline, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DeletePixelShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 4627, ALIAS, D3DDevice_CreateTexture2B),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 4627, ALIAS, D3DDevice_CreateTexture2C),
REGISTER_OOVPA(D3DDevice_SetIndices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_RunPushBuffer, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_End, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 4627, ALIAS, D3DDevice_ClearB),
REGISTER_OOVPA(D3DDevice_Swap, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_UpdateOverlay, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetOverlayUpdateStatus, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 4627, ALIAS, D3DDevice_SetRenderState_ZEnableB),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627, ALIAS, D3DDevice_SetRenderState_MultiSampleAntiAliasB),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SwitchTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetStreamSource2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4627, ALIAS, D3DDevice_DrawVerticesUPB),
REGISTER_OOVPA(D3DDevice_SetLight, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 4361, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 4627, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 4627, ALIAS, D3DVertexBuffer_Lock2B),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 4627, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 4361, PATCH),
// REGISTER_OOVPA(D3DResource_GetType, 4627, PATCH), // I forget why I had this in here...
REGISTER_OOVPA(Get2DSurfaceDesc, 4627, PATCH),
REGISTER_OOVPA(Get2DSurfaceDescB, 4627, XREF),
REGISTER_OOVPA(Get2DSurfaceDesc, 4627, ALIAS, Get2DSurfaceDescC),
REGISTER_OOVPA(Get2DSurfaceDescD, 4627, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 4361, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 4627, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, ALIAS, D3DTexture_GetSurfaceLevel2B),
REGISTER_OOVPA(D3DTexture_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DVolumeTexture_LockBox, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewportOffsetAndScale, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShaderDirect, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetShaderConstantMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderConstant, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderInputDirect, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderInput, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_RunVertexStateShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShaderProgram, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderType, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderDeclaration, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderFunction, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderInput, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 4721, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetScissors, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetBackBufferScale, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderProgram, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayFieldStatus, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_CreateStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_InsertCallback, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DrawRectPatch, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetProjectionViewportMatrix, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4531, PATCH),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 4627, PATCH),
REGISTER_OOVPA(D3D_SetFence, 4134, XREF),
REGISTER_OOVPA(D3DDevice_InsertFence, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_KickOff, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 4134, PATCH), // Beware of the typo...
REGISTER_OOVPA(D3DDevice_GetTexture2, 4627, PATCH),
// REGISTER_OOVPA(D3DDevice_SetStateVB, 4627, PATCH),
// REGISTER_OOVPA(D3DDevice_SetStateUP, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetStipple, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_PersistDisplay, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_PersistDisplay, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_SetSwapCallback, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CaptureStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4ub, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 4361, PATCH),
REGISTER_OOVPA(D3D_BlockOnTime, 4627, XREF),
REGISTER_OOVPA(D3DDevice_BlockOnFence, 4627, PATCH),
REGISTER_OOVPA(Lock3DSurface, 4627, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_CreateImageSurface, 4627, PATCH),
REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetPixelShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePalette2, 4627, PATCH),
REGISTER_OOVPA(D3DPalette_Lock2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPushBuffer, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_EndPushBuffer, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetPersistedSurface2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetModelView, 4627, PATCH),
REGISTER_OOVPA(D3D_LazySetPointParams, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetDepthClipPlanes, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetMaterial, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_KickOff, 4627, ALIAS, D3DDevice_KickPushBuffer),
REGISTER_OOVPA(D3DDevice_GetBackMaterial, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetBackMaterial, 4627, PATCH),
// REGISTER_OOVPA(D3DCubeTexture_LockRect, 3925, PATCH), // TODO: This needs to be verified on 4361, not just 4242!
};
// ******************************************************************

View File

@ -36,7 +36,7 @@
#include "OOVPA.h"
extern SOOVPA<13> D3DDevice_SetRenderState_CullMode_5233;
extern LOOVPA<13> D3DDevice_SetRenderState_CullMode_5233;
extern OOVPATable D3D8_5233[];
extern uint32 D3D8_5233_SIZE;

View File

@ -134,7 +134,7 @@ OOVPA_END;
// ******************************************************************
// * D3DDevice_Clear
// ******************************************************************
OOVPA_NO_XREF_LARGE(D3DDevice_Clear, 5233, 8)
OOVPA_NO_XREF(D3DDevice_Clear, 5233, 8)
{ 0x1D, 0x8A },
{ 0x3C, 0x8B },
{ 0x5B, 0x00 },
@ -929,7 +929,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5233, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x0B, XREF_D3DRS_MULTISAMPLERENDERTARGETMODE },
XREF_ENTRY( 0x0B, XREF_D3DRS_MULTISAMPLERENDERTARGETMODE ),
{ 0x03, 0x04 },
{ 0x0F, 0x8B },
@ -948,7 +948,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5344, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x0B, XREF_D3DRS_MULTISAMPLERENDERTARGETMODE },
XREF_ENTRY( 0x0B, XREF_D3DRS_MULTISAMPLERENDERTARGETMODE ),
{ 0x03, 0x04 },
{ 0x0F, 0x8B },
@ -1002,7 +1002,7 @@ OOVPA_XREF(D3DDevice_InsertFence, 5233, 5,
XRefNoSaveIndex,
XRefOne)
{ 0x03, XREF_D3D_SETFENCE },
XREF_ENTRY( 0x03, XREF_D3D_SETFENCE ),
{ 0x00, 0x6A },
{ 0x01, 0x00 },
@ -1018,7 +1018,7 @@ OOVPA_XREF(D3DDevice_IsFencePending, 5233, 6,
XRefNoSaveIndex,
XRefOne)
{ 0x01, XREF_D3DDEVICE },
XREF_ENTRY( 0x01, XREF_D3DDEVICE ),
{ 0x07, 0x30 },
{ 0x0A, 0x2C },
@ -1051,7 +1051,7 @@ OOVPA_XREF(D3DDevice_BlockOnFence, 5233, 6,
XRefNoSaveIndex,
XRefOne)
{ 0x08, XREF_D3D_BLOCKONTIME },
XREF_ENTRY( 0x08, XREF_D3D_BLOCKONTIME ),
{ 0x00, 0x8B },
{ 0x02, 0x24 },
@ -1532,175 +1532,175 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_5233[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayFieldStatus, 5233),
OOVPA_TABLE_ENTRY(D3D_CheckDeviceFormat, 4361),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_CopyRects, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetScissors, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget2, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface2, 5233),
OOVPA_TABLE_XREF(D3D_CommonSetRenderTarget, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_AddRef, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTileNoWait, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_RunVertexStateShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant1, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant4, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstantNotInline, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_DeletePixelShader, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture2, 5233),
OOVPA_TABLE_PATCH(D3DDevice_CreateTexture2C, 4627, D3DDevice_CreateTexture2),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 5233),
OOVPA_TABLE_PATCH(D3DDevice_SetTextureB, 5233, D3DDevice_SetTexture),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_End, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_EnableOverlay, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5233),
REGISTER_OOVPA(D3D_CreateDevice, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayFieldStatus, 5233, PATCH),
REGISTER_OOVPA(D3D_CheckDeviceFormat, 4361, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_CopyRects, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetScissors, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget2, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface2, 5233, PATCH),
REGISTER_OOVPA(D3D_CommonSetRenderTarget, 5233, XREF),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_AddRef, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTileNoWait, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_RunVertexStateShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant4, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstantNotInline, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_DeletePixelShader, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 4627, ALIAS, D3DDevice_CreateTexture2C),
REGISTER_OOVPA(D3DDevice_SetIndices, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 5233, ALIAS, D3DDevice_SetTextureB),
REGISTER_OOVPA(D3DDevice_SetTexture, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_End, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5233, PATCH),
// *******
// Duplicated functions generally dangerous, but until such time as XDK 5344
// has it's own OOVP's, fine here
// *******
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5233),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5233, PATCH),
// *******
// Duplicated functions generally dangerous, but until such time as XDK 5344
// has it's own OOVP's, fine here
// *******
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SwitchTexture, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4361),
OOVPA_TABLE_ENTRY(D3D_GetDeviceCaps, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 5344),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_GetDesc, 5233),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock2, 4627),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer2, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_UpdateOverlay, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetOverlayUpdateStatus, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 5233),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 4361),
OOVPA_TABLE_ENTRY(D3DPalette_Lock2, 5233),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 5233),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 5233),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 5344),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 4361),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DBaseTexture_GetLevelCount, 4361),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewportOffsetAndScale, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteVertexShader, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShaderDirect, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetScreenSpaceOffset, 5233),
OOVPA_TABLE_XREF(D3D_SetFence, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_InsertFence, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_IsFencePending, 5233),
OOVPA_TABLE_XREF(D3D_BlockOnTime, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_BlockOnFence, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 5344),
// OOVPA_TABLE_PATCH(D3DDevice_Unknown1, 5233, D3DDevice_Unknown1,
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 4134), // Beware of the typo...
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SwitchTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3D_GetDeviceCaps, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 5344, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_GetDesc, 5233, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 4627, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_UpdateOverlay, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetOverlayUpdateStatus, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 5233, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 4361, PATCH),
REGISTER_OOVPA(D3DPalette_Lock2, 5233, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 5233, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 5233, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 5344, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 4361, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewportOffsetAndScale, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShaderDirect, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 5233, PATCH),
REGISTER_OOVPA(D3D_SetFence, 5233, XREF),
REGISTER_OOVPA(D3DDevice_InsertFence, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_IsFencePending, 5233, PATCH),
REGISTER_OOVPA(D3D_BlockOnTime, 5233, XREF),
REGISTER_OOVPA(D3DDevice_BlockOnFence, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 5344, PATCH),
// REGISTER_OOVPA(D3DDevice_Unknown1, 5233, PATCH)
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 4134, PATCH), // Beware of the typo...
// ******
// Duplicate references are normally bad, but this XDK is aliased to XDK 5344
// until such time as a separate XDK file is generated for 5344, this will have to do
// ******
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPush, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_EndPush, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_EndPush, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_SampleAlpha, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4ub, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 5344),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPush, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_EndPush, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_EndPush, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_SampleAlpha, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4ub, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 5344, PATCH),
/**
* Having two versions of D3Device::SetTransform in this file creates problems,
* in order to support Futurama, this second verison (added for Whacked support)
* has been disabled.
// OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 5344),**/
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer2, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetSwapCallback, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTargetFast, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetScreenSpaceOffset, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetScissors, 5344),
OOVPA_TABLE_ENTRY(D3DCubeTexture_GetCubeMapSurface2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_ApplyStateBlock, 4627),
// REGISTER_OOVPA(D3DDevice_SetTransform, 5344, PATCH),**/
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetSwapCallback, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTargetFast, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetScissors, 5344, PATCH),
REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 4627, PATCH),
};
// ******************************************************************

View File

@ -65,7 +65,7 @@ OOVPA_XREF(D3DDevice_BeginPush, 5558, 10,
XRefNoSaveIndex,
XRefOne)
{ 0x09, XREF_D3DCD_LAZYSETSTATEVB }, // 1
XREF_ENTRY( 0x09, XREF_D3DCD_LAZYSETSTATEVB ), // 1
{ 0x00, 0x8B }, // 2
{ 0x01, 0x0D }, // 3
@ -635,7 +635,7 @@ OOVPA_XREF(D3DResource_BlockUntilNotBusy, 5558, 2,
XRefNoSaveIndex,
XRefOne)
{ 0x01, XREF_D3D_BlockOnResource },
XREF_ENTRY( 0x01, XREF_D3D_BlockOnResource ),
{ 0x00, 0xE9 },
OOVPA_END;
@ -1511,165 +1511,165 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_5558[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayFieldStatus, 5233),
OOVPA_TABLE_XREF(D3DDevice_LazySetStateVB, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPush, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_EndPush, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_RunVertexStateShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant1, 5558),
OOVPA_TABLE_PATCH(D3DDevice_SetVertexShaderConstant1Fast, 5558, D3DDevice_SetVertexShaderConstant1),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstantNotInline, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer2, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_UpdateOverlay, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetOverlayUpdateStatus, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePalette2, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVerticesUP, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture2, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_End, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 5558),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 5558),
// OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 5455), // TODO : Move to OOVPATable D3D8_5455
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SwitchTexture, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 5233),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer2, 5558),
OOVPA_TABLE_PATCH(D3DDevice_GetBackBuffer2B, 5558, D3DDevice_GetBackBuffer2),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer2, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 5233),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 4361),
OOVPA_TABLE_ENTRY(D3DPalette_Lock2, 5233),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 5558),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DBaseTexture_GetLevelCount, 4361),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget2, 5233),
OOVPA_TABLE_ENTRY(D3D_CheckDeviceMultiSampleType, 5558),
OOVPA_TABLE_ENTRY(D3D_GetDeviceCaps, 5233),
OOVPA_TABLE_ENTRY(D3D_SetPushBufferSize, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 5233),
OOVPA_TABLE_XREF(D3D_SetFence, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_InsertFence, 5233),
OOVPA_TABLE_XREF(D3D_BlockOnTime, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_BlockOnFence, 5233),
OOVPA_TABLE_XREF(D3D_BlockOnResource, 5558),
OOVPA_TABLE_ENTRY(D3DResource_BlockUntilNotBusy, 5558),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_GetDesc, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_CopyRects, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetScissors, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetScissors, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface2, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_AddRef, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant4, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVerticesUP, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer2, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_SetSwapCallback, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 4361),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_SampleAlpha, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetProjectionViewportMatrix, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_GetModelView, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetBackMaterial, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4134),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 5558),
OOVPA_TABLE_ENTRY(D3D_MakeRequestedSpace, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_MakeSpace, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 5558),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_SetScreenSpaceOffset, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_SetScreenSpaceOffset, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_InsertCallback, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_FlushVertexCache, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_EnableOverlay, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_SetModelView, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_PersistDisplay, 5558),
OOVPA_TABLE_ENTRY(D3DCubeTexture_GetCubeMapSurface, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexDataColor, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_ApplyStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134),
OOVPA_TABLE_ENTRY(D3DCubeTexture_GetCubeMapSurface2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShaderProgram, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderProgram, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5455),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_IsFencePending, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTargetFast, 5344),
REGISTER_OOVPA(D3D_CreateDevice, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayFieldStatus, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_LazySetStateVB, 5558, XREF),
REGISTER_OOVPA(D3DDevice_BeginPush, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_EndPush, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_RunVertexStateShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 5558, ALIAS, D3DDevice_SetVertexShaderConstant1Fast),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstantNotInline, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_UpdateOverlay, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetOverlayUpdateStatus, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePalette2, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_End, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5558, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 5558, PATCH),
// REGISTER_OOVPA(D3DDevice_SetIndices, 5455, PATCH), // TODO : Move to OOVPATable D3D8_5455
REGISTER_OOVPA(D3DDevice_SetTexture, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SwitchTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 5233, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5558, ALIAS, D3DDevice_GetBackBuffer2B),
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 5233, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 4361, PATCH),
REGISTER_OOVPA(D3DPalette_Lock2, 5233, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 5558, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget2, 5233, PATCH),
REGISTER_OOVPA(D3D_CheckDeviceMultiSampleType, 5558, PATCH),
REGISTER_OOVPA(D3D_GetDeviceCaps, 5233, PATCH),
REGISTER_OOVPA(D3D_SetPushBufferSize, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5233, PATCH),
REGISTER_OOVPA(D3D_SetFence, 5558, XREF),
REGISTER_OOVPA(D3DDevice_InsertFence, 5233, PATCH),
REGISTER_OOVPA(D3D_BlockOnTime, 5558, XREF),
REGISTER_OOVPA(D3DDevice_BlockOnFence, 5233, PATCH),
REGISTER_OOVPA(D3D_BlockOnResource, 5558, XREF),
REGISTER_OOVPA(D3DResource_BlockUntilNotBusy, 5558, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_GetDesc, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_CopyRects, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetScissors, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetScissors, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface2, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_AddRef, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant4, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer2, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_SetSwapCallback, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 4361, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_SampleAlpha, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetProjectionViewportMatrix, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_GetModelView, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetBackMaterial, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(Get2DSurfaceDesc, 5558, PATCH),
REGISTER_OOVPA(D3D_MakeRequestedSpace, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_MakeSpace, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 5558, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_InsertCallback, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_FlushVertexCache, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_SetModelView, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackBuffer, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_PersistDisplay, 5558, PATCH),
REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH),
REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShaderProgram, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderProgram, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5455, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_IsFencePending, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTargetFast, 5344, PATCH),
};
// ******************************************************************

View File

@ -542,7 +542,7 @@ OOVPA_XREF(D3DDevice_SetVerticalBlankCallback, 5788, 7,
XRefNoSaveIndex,
XRefOne)
{ 0x06, XREF_D3DDEVICE },
XREF_ENTRY( 0x06, XREF_D3DDEVICE ),
{ 0x01, 0x44 },
{ 0x03, 0x04 },
@ -831,7 +831,7 @@ OOVPA_XREF(D3D_Unknown, 5788, 6,
XRefNoSaveIndex,
XRefOne)
{ 0x0A, XREF_D3D_MakeRequestedSpace },
XREF_ENTRY( 0x0A, XREF_D3D_MakeRequestedSpace ),
{ 0x05, 0x50 },
{ 0x06, 0xD1 },
@ -1234,7 +1234,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 5788, 7,
XRefNoSaveIndex,
XRefOne)
{ 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD },
XREF_ENTRY( 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD ),
{ 0x01, 0x44 },
{ 0x04, 0xA3 },
@ -1287,172 +1287,172 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_5788[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_EndVisibilityTest, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetVisibilityTestResult, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetBackBufferScale, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 5788),
OOVPA_TABLE_PATCH(D3DDevice_Swap2, 5788, D3DDevice_Swap),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer2, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface2, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexDataColor, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_End, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SwitchTexture, 4361),
OOVPA_TABLE_XREF(D3DDevice_LazySetStateVB, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPush, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_EndPush, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPushBuffer, 5788), // Not implemented yet.
OOVPA_TABLE_ENTRY(D3DDevice_EndPushBuffer, 5788), // Not implemented yet.
OOVPA_TABLE_ENTRY(D3DDevice_RunPushBuffer, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 5233),
OOVPA_TABLE_XREF(D3DDevice_BeginStateBig, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_CreateIndexBuffer2, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVerticesUP, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4361),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 4361),
OOVPA_TABLE_XREF(D3D_BlockOnResource, 5558),
OOVPA_TABLE_ENTRY(D3DResource_BlockUntilNotBusy, 5558),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_GetDesc, 5233),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CopyRects, 5233),
OOVPA_TABLE_ENTRY(D3DPalette_Lock2, 5233),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 5558),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DBaseTexture_GetLevelCount, 4361),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel2, 4627),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer2, 5788),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 5788),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock2, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetModelView, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_PersistDisplay, 5558),
OOVPA_TABLE_ENTRY(D3D_SetPushBufferSize, 5558),
OOVPA_TABLE_ENTRY(D3D_CheckDeviceMultiSampleType, 5558),
OOVPA_TABLE_ENTRY(D3D_GetDeviceCaps, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 5788),
OOVPA_TABLE_ENTRY(D3D_AllocContiguousMemory, 5788),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture2, 5788),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant4, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant1, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVerticesUP, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetDeviceCaps, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetModelView, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetBackMaterial, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 5788),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetTileNoWait, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetSwapCallback, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget2, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_InsertCallback, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_SampleAlpha, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_IsFencePending, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_EnableOverlay, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePalette2, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShaderProgram, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetPushBufferOffset, 5788),
OOVPA_TABLE_XREF(D3D_MakeRequestedSpace, 5788),
OOVPA_TABLE_XREF(D3D_Unknown, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstantNotInline, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_FlushVertexCache, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_RunVertexStateShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_AddRef, 5788),
OOVPA_TABLE_XREF(D3D_ClearStateBlockFlags, 5788),
OOVPA_TABLE_XREF(D3D_RecordStateBlock, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetTile, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_KickOff, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayFieldStatus, 5788),
OOVPA_TABLE_ENTRY(D3DCubeTexture_GetCubeMapSurface2, 4627),
OOVPA_TABLE_PATCH(D3DDevice_SetVertexShaderConstant1Fast, 5558, D3DDevice_SetVertexShaderConstant1),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderProgram, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetScissors, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetScissors, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackMaterial, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_ApplyStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CaptureStateBlock, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteStateBlock, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_GetTexture2, 5788),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTargetFast, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetDepthClipPlanes, 5788),
REGISTER_OOVPA(D3D_CreateDevice, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetBackBufferScale, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 5788, ALIAS, D3DDevice_Swap2),
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface2, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_End, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SwitchTexture, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_LazySetStateVB, 5558, XREF),
REGISTER_OOVPA(D3DDevice_BeginPush, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_EndPush, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPushBuffer, 5788, PATCH), // Not implemented yet.
REGISTER_OOVPA(D3DDevice_EndPushBuffer, 5788, PATCH), // Not implemented yet.
REGISTER_OOVPA(D3DDevice_RunPushBuffer, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBig, 5788, XREF),
REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_CreateIndexBuffer2, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 4361, PATCH),
REGISTER_OOVPA(D3D_BlockOnResource, 5558, XREF),
REGISTER_OOVPA(D3DResource_BlockUntilNotBusy, 5558, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_GetDesc, 5233, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CopyRects, 5233, PATCH),
REGISTER_OOVPA(D3DPalette_Lock2, 5233, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 5558, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 5788, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 5788, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetModelView, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_PersistDisplay, 5558, PATCH),
REGISTER_OOVPA(D3D_SetPushBufferSize, 5558, PATCH),
REGISTER_OOVPA(D3D_CheckDeviceMultiSampleType, 5558, PATCH),
REGISTER_OOVPA(D3D_GetDeviceCaps, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5788, PATCH),
REGISTER_OOVPA(D3D_AllocContiguousMemory, 5788, DISABLED), // Just calls MmAllocateContiguousMemory. Was PATCH
REGISTER_OOVPA(Get2DSurfaceDesc, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 5788, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant4, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetModelView, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetBackMaterial, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 5788, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetTileNoWait, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetSwapCallback, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget2, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_InsertCallback, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_SampleAlpha, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_IsFencePending, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePalette2, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShaderProgram, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetPushBufferOffset, 5788, PATCH),
REGISTER_OOVPA(D3D_MakeRequestedSpace, 5788, XREF),
REGISTER_OOVPA(D3D_Unknown, 5788, XREF),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstantNotInline, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_FlushVertexCache, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_RunVertexStateShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_AddRef, 5788, PATCH),
REGISTER_OOVPA(D3D_ClearStateBlockFlags, 5788, XREF),
REGISTER_OOVPA(D3D_RecordStateBlock, 5788, XREF),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetTile, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_KickOff, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayFieldStatus, 5788, PATCH),
REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 5558, ALIAS, D3DDevice_SetVertexShaderConstant1Fast),
REGISTER_OOVPA(D3DDevice_SetPixelShaderProgram, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetScissors, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetScissors, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackMaterial, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CaptureStateBlock, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteStateBlock, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_GetTexture2, 5788, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTargetFast, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetDepthClipPlanes, 5788, PATCH),
};
// ******************************************************************

View File

@ -552,7 +552,7 @@ OOVPA_XREF(D3DDevice_SetVerticalBlankCallback, 5849, 7,
XRefNoSaveIndex,
XRefOne)
{ 0x06, XREF_D3DDEVICE },
XREF_ENTRY( 0x06, XREF_D3DDEVICE ),
{ 0x01, 0x44 },
{ 0x03, 0x04 },
@ -841,7 +841,7 @@ OOVPA_XREF(D3D_Unknown, 5849, 6,
XRefNoSaveIndex,
XRefOne)
{ 0x0A, XREF_D3D_MakeRequestedSpace },
XREF_ENTRY( 0x0A, XREF_D3D_MakeRequestedSpace ),
{ 0x05, 0x50 },
{ 0x06, 0xD1 },
@ -1244,7 +1244,7 @@ OOVPA_XREF(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 5849, 7,
XRefNoSaveIndex,
XRefOne)
{ 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD },
XREF_ENTRY( 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD ),
{ 0x01, 0x44 },
{ 0x04, 0xA3 },
@ -1274,154 +1274,154 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8_5849[] = {
OOVPA_TABLE_ENTRY(D3D_CreateDevice, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BeginVisibilityTest, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_EndVisibilityTest, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetVisibilityTestResult, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetViewport, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetBackBufferScale, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetCreationParameters, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_Clear, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_Swap, 5849),
OOVPA_TABLE_PATCH(D3DDevice_Swap2, 5849, D3DDevice_Swap),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackBuffer2, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetDepthStencilSurface2, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexShader, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_CreatePixelShader, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayMode, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData4f, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexDataColor, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_End, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetVerticalBlankCallback, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_TexCoordIndex, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BumpEnv, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_BorderColor, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_CullMode, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TextureFactor, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_NormalizeNormals, 4432),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZBias, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_EdgeAntiAlias, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FillMode, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FogColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Simple, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ZEnable, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilEnable, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_OcclusionCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_ShadowFunc, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_YuvEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShader, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetIndices, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetTexture, 5233),
OOVPA_TABLE_XREF(D3DDevice_LazySetStateVB, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPush, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_EndPush, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_BeginPushBuffer, 5849), // Not implemented yet.
OOVPA_TABLE_ENTRY(D3DDevice_EndPushBuffer, 5849), // Not implemented yet.
OOVPA_TABLE_ENTRY(D3DDevice_RunPushBuffer, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_Begin, 5233),
OOVPA_TABLE_XREF(D3DDevice_BeginStateBig, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetTransform, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVertices, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_DrawIndexedVerticesUP, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetStreamSource, 4361),
OOVPA_TABLE_ENTRY(D3DResource_Register, 3925),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_ENTRY(D3DResource_Release, 3925),
OOVPA_TABLE_ENTRY(D3DResource_IsBusy, 4361),
OOVPA_TABLE_ENTRY(D3DSurface_GetDesc, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_CopyRects, 5233),
OOVPA_TABLE_ENTRY(D3DPalette_Lock2, 5233),
OOVPA_TABLE_ENTRY(D3DTexture_LockRect, 5788),
OOVPA_TABLE_ENTRY(D3DSurface_LockRect, 3925),
OOVPA_TABLE_ENTRY(D3DBaseTexture_GetLevelCount, 4361),
OOVPA_TABLE_ENTRY(D3DTexture_GetSurfaceLevel2, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetLight, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer2, 5849),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock, 5849),
OOVPA_TABLE_ENTRY(D3DVertexBuffer_Lock2, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_LightEnable, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVertices, 5849),
OOVPA_TABLE_ENTRY(D3D_AllocContiguousMemory, 5849),
OOVPA_TABLE_ENTRY(Get2DSurfaceDesc, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_CreateTexture2, 5849),
OOVPA_TABLE_ENTRY(Lock2DSurface, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant4, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant1, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_DrawVerticesUP, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTarget, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetShaderConstantMode, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetViewport, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_BlockUntilVerticalBlank, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_FrontFace, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetBackMaterial, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_TwoSidedLighting, 5849),
OOVPA_TABLE_ENTRY(D3D_KickOffAndWaitForIdle, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetTileNoWait, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetGammaRamp, 4928),
OOVPA_TABLE_ENTRY(D3DDevice_GetGammaRamp, 4034),
OOVPA_TABLE_ENTRY(D3DDevice_SetSwapCallback, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetRenderTarget2, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilFail, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_VertexBlend, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_Reset, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_Release, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_InsertCallback, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LineWidth, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_SampleAlpha, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SetTextureState_ColorKeyColor, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_EnableOverlay, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_LogicOp, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetPalette, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShaderProgram, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetPushBufferOffset, 5849),
OOVPA_TABLE_XREF(D3D_MakeRequestedSpace, 5849),
OOVPA_TABLE_XREF(D3D_Unknown, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstantNotInline, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_FlushVertexCache, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetVertexShaderSize, 3925),
OOVPA_TABLE_ENTRY(D3DDevice_LoadVertexShader, 5233),
OOVPA_TABLE_ENTRY(D3DDevice_SelectVertexShader, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_RunVertexStateShader, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_AddRef, 5849),
OOVPA_TABLE_XREF(D3D_ClearStateBlockFlags, 5849),
OOVPA_TABLE_XREF(D3D_RecordStateBlock, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_BeginStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_EndStateBlock, 4361),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_BackFillMode, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetTile, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_KickOff, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZRead, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetSoftDisplayFilter, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetFlickerFilter, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMode, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleAntiAlias, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_MultiSampleMask, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderConstant, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetDisplayFieldStatus, 5849),
OOVPA_TABLE_ENTRY(D3DCubeTexture_GetCubeMapSurface2, 4627),
OOVPA_TABLE_PATCH(D3DDevice_SetVertexShaderConstant1Fast, 5558, D3DDevice_SetVertexShaderConstant1),
OOVPA_TABLE_ENTRY(D3DDevice_SetPixelShaderProgram, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetScissors, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetScissors, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetBackMaterial, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_ApplyStateBlock, 4627),
OOVPA_TABLE_ENTRY(D3DDevice_CaptureStateBlock, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_DeleteStateBlock, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_StencilCullEnable, 4134),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_GetTexture2, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_SetRenderTargetFast, 5344),
OOVPA_TABLE_ENTRY(D3DDevice_SetDepthClipPlanes, 5849),
REGISTER_OOVPA(D3D_CreateDevice, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetViewport, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetBackBufferScale, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_Clear, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_Swap, 5849, ALIAS, D3DDevice_Swap2),
REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface2, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_CreatePixelShader, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexData4f, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_End, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4432, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetIndices, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetTexture, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_LazySetStateVB, 5558, XREF),
REGISTER_OOVPA(D3DDevice_BeginPush, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_EndPush, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_BeginPushBuffer, 5849, PATCH), // Not implemented yet.
REGISTER_OOVPA(D3DDevice_EndPushBuffer, 5849, PATCH), // Not implemented yet.
REGISTER_OOVPA(D3DDevice_RunPushBuffer, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_Begin, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_BeginStateBig, 5849, XREF),
REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetTransform, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH),
REGISTER_OOVPA(D3DResource_Register, 3925, PATCH),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 3925, PATCH),
REGISTER_OOVPA(D3DResource_IsBusy, 4361, PATCH),
REGISTER_OOVPA(D3DSurface_GetDesc, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_CopyRects, 5233, PATCH),
REGISTER_OOVPA(D3DPalette_Lock2, 5233, PATCH),
REGISTER_OOVPA(D3DTexture_LockRect, 5788, PATCH),
REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH),
REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH),
REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetLight, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 5849, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock, 5849, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5849, PATCH),
REGISTER_OOVPA(D3D_AllocContiguousMemory, 5849, DISABLED), // Just calls MmAllocateContiguousMemory. Was PATCH
REGISTER_OOVPA(Get2DSurfaceDesc, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_CreateTexture2, 5849, PATCH),
REGISTER_OOVPA(Lock2DSurface, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant4, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTarget, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetViewport, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetBackMaterial, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 5849, PATCH),
REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetTileNoWait, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetGammaRamp, 4928, PATCH),
REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH),
REGISTER_OOVPA(D3DDevice_SetSwapCallback, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetRenderTarget2, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_Release, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_InsertCallback, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_SampleAlpha, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetPalette, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShaderProgram, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetPushBufferOffset, 5849, PATCH),
REGISTER_OOVPA(D3D_MakeRequestedSpace, 5849, XREF),
REGISTER_OOVPA(D3D_Unknown, 5849, XREF),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstantNotInline, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_FlushVertexCache, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH),
REGISTER_OOVPA(D3DDevice_LoadVertexShader, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_SelectVertexShader, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_RunVertexStateShader, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_AddRef, 5849, PATCH),
REGISTER_OOVPA(D3D_ClearStateBlockFlags, 5849, XREF),
REGISTER_OOVPA(D3D_RecordStateBlock, 5849, XREF),
REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_EndStateBlock, 4361, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetTile, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_KickOff, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetDisplayFieldStatus, 5849, PATCH),
REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface2, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 5558, ALIAS, D3DDevice_SetVertexShaderConstant1Fast),
REGISTER_OOVPA(D3DDevice_SetPixelShaderProgram, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetScissors, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetScissors, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetBackMaterial, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_CaptureStateBlock, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_DeleteStateBlock, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_GetTexture2, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetRenderTargetFast, 5344, PATCH),
REGISTER_OOVPA(D3DDevice_SetDepthClipPlanes, 5849, PATCH),
};
// ******************************************************************

View File

@ -36,8 +36,8 @@
#include "OOVPA.h"
extern SOOVPA<13> D3DDevice_SetRenderState_CullMode_LTCG_5849;
extern SOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_LTCG_5849;
extern LOOVPA<13> D3DDevice_SetRenderState_CullMode_LTCG_5849;
extern LOOVPA<10> D3DDevice_SetTextureState_TexCoordIndex_LTCG_5849;
extern OOVPATable D3D8LTCG_5849[];
extern uint32 D3D8LTCG_5849_SIZE;

View File

@ -870,7 +870,7 @@ OOVPA_END;
// ******************************************************************
// * D3DDevice_Clear
// ******************************************************************
OOVPA_NO_XREF_LARGE(D3DDevice_Clear_LTCG, 5849, 9)
OOVPA_NO_XREF(D3DDevice_Clear_LTCG, 5849, 9)
// D3DDevice_Clear+0x0000 : sub esp, 38h
{ 0x0000, 0x83 }, // (Offset,Value)-Pair #1
{ 0x0001, 0xEC }, // (Offset,Value)-Pair #2
@ -952,46 +952,46 @@ OOVPA_END;
// ******************************************************************
OOVPATable D3D8LTCG_5849[] = {
OOVPA_TABLE_PATCH(D3D_CreateDevice_LTCG, 5849, D3D_CreateDevice),
OOVPA_TABLE_PATCH(D3DDevice_SetPixelShader_LTCG, 5849, D3DDevice_SetPixelShader),
OOVPA_TABLE_PATCH(D3DDevice_CreateVertexShader_LTCG, 5849, D3DDevice_CreateVertexShader),
OOVPA_TABLE_PATCH(D3DDevice_DrawIndexedVertices_LTCG, 5849, D3DDevice_DrawIndexedVertices),
OOVPA_TABLE_PATCH(D3DDevice_SetVertexShader_LTCG, 5849, D3DDevice_SetVertexShader),
OOVPA_TABLE_PATCH(D3DDevice_SetTexture_LTCG, 5849, D3DDevice_SetTexture),
OOVPA_TABLE_PATCH(D3DDevice_SetViewport_LTCG, 5849, D3DDevice_SetViewport),
OOVPA_TABLE_PATCH(D3DDevice_SetLight_LTCG, 5849, D3DDevice_SetLight),
OOVPA_TABLE_ENTRY(D3DDevice_SetTransform, 5558),
OOVPA_TABLE_ENTRY(D3DDevice_SetMaterial, 5849),
OOVPA_TABLE_PATCH(D3DDevice_SetStreamSource_LTCG, 5849, D3DDevice_SetStreamSource),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant1, 5849),
OOVPA_TABLE_ENTRY(D3DDevice_CreateVertexBuffer2, 5849),
OOVPA_TABLE_PATCH(D3DDevice_SetTextureState_TexCoordIndex_LTCG, 5849, D3DDevice_SetTextureState_TexCoordIndex),
OOVPA_TABLE_PATCH(D3DDevice_SetTextureState_BumpEnv_LTCG, 5849, D3DDevice_SetTextureState_BumpEnv),
OOVPA_TABLE_PATCH(D3DDevice_SetTextureState_BorderColor_LTCG, 5849, D3DDevice_SetTextureState_BorderColor),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_CullMode_LTCG, 5849, D3DDevice_SetRenderState_CullMode),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_TextureFactor_LTCG, 5849, D3DDevice_SetRenderState_TextureFactor),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_NormalizeNormals_LTCG, 5849, D3DDevice_SetRenderState_NormalizeNormals),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_ZEnable_LTCG, 5849, D3DDevice_SetRenderState_ZEnable),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_StencilEnable_LTCG, 5849, D3DDevice_SetRenderState_StencilEnable),
OOVPA_TABLE_PATCH(D3DDevice_Swap_LTCG, 5849, D3DDevice_Swap),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexData2f, 4627),
OOVPA_TABLE_PATCH(D3DDevice_End_LTCG, 5849, D3DDevice_End),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_FillMode_LTCG, 5849, D3DDevice_SetRenderState_FillMode),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_FogColor_LTCG, 5849, D3DDevice_SetRenderState_FogColor),
OOVPA_TABLE_PATCH(D3DDevice_DrawVertices_LTCG, 5849, D3DDevice_DrawVertices),
OOVPA_TABLE_PATCH(D3DDevice_DrawVerticesUP_LTCG, 5849, D3DDevice_DrawVerticesUP),
OOVPA_TABLE_ENTRY(D3DDevice_SetVertexShaderConstant4, 4627),
OOVPA_TABLE_PATCH(D3DVertexBuffer_Lock2_LTCG, 5849, D3DVertexBuffer_Lock2),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_YuvEnable_LTCG, 5849, D3DDevice_SetRenderState_YuvEnable),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_ShadowFunc_LTCG, 5849, D3DDevice_SetRenderState_ShadowFunc),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_OcclusionCullEnable_LTCG, 5849, D3DDevice_SetRenderState_OcclusionCullEnable),
OOVPA_TABLE_PATCH(D3DDevice_SetRenderState_EdgeAntiAlias_LTCG, 5849, D3DDevice_SetRenderState_EdgeAntiAlias),
OOVPA_TABLE_PATCH(Get2DSurfaceDesc_LTCG, 5849, Get2DSurfaceDesc),
OOVPA_TABLE_PATCH(D3DDevice_SetShaderConstantMode_LTCG, 5849, D3DDevice_SetShaderConstantMode),
OOVPA_TABLE_ENTRY(D3DResource_AddRef, 3925),
OOVPA_TABLE_PATCH(D3DResource_Release_LTCG, 5849, D3DResource_Release),
OOVPA_TABLE_PATCH(D3DDevice_SetTextureState_ColorKeyColor_LTCG, 5849, D3DDevice_SetTextureState_ColorKeyColor),
OOVPA_TABLE_PATCH(D3DDevice_Clear_LTCG, 5849, D3DDevice_Clear),
REGISTER_OOVPA(D3D_CreateDevice, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetPixelShader, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_CreateVertexShader, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetVertexShader, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetTexture, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetViewport, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetLight, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetTransform, 5558, PATCH),
REGISTER_OOVPA(D3DDevice_SetMaterial, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetStreamSource, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_Swap, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetVertexData2f, 4627, PATCH),
REGISTER_OOVPA(D3DDevice_End, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant4, 4627, PATCH),
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 5849, LTCG),
REGISTER_OOVPA(Get2DSurfaceDesc, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 5849, LTCG),
REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH),
REGISTER_OOVPA(D3DResource_Release, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 5849, LTCG),
REGISTER_OOVPA(D3DDevice_Clear, 5849, LTCG),
};
uint32 D3D8LTCG_5849_SIZE = sizeof(D3D8LTCG_5849);

File diff suppressed because it is too large Load Diff

View File

@ -102,7 +102,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 4134, 8,
XREF_DirectSound_CDirectSoundBuffer_SetHeadroom,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -121,7 +121,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetHeadroom, 4134, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -171,7 +171,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetVolume, 4134, 8,
XREF_DirectSound_CDirectSoundBuffer_SetVolume,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -190,7 +190,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetVolume, 4134, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -225,7 +225,7 @@ OOVPA_XREF(IDirectSound_SetI3DL2Listener, 4134, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETI3DL2LISTENER },
XREF_ENTRY( 0x19, XREF_DSSETI3DL2LISTENER ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -261,7 +261,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetBufferData, 4134, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETBUFFERDATA2 },
XREF_ENTRY( 0x19, XREF_DSSETBUFFERDATA2 ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -298,7 +298,7 @@ OOVPA_XREF(IDirectSound_GetEffectData, 4134, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x1F, XREF_DirectSound_CDirectSound_GetEffectData },
XREF_ENTRY( 0x1F, XREF_DirectSound_CDirectSound_GetEffectData ),
{ 0x03, 0xFF },
{ 0x08, 0x08 },
@ -334,7 +334,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBins, 4134, 8,
XREF_DSSETMIXBINSB,
XRefOne)
{ 0x0D, XREF_DSSETMIXBINSC },
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINSC ),
{ 0x02, 0x74 },
{ 0x06, 0x74 },
@ -353,7 +353,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBins, 4134, 8,
XREF_DSSETMIXBINSA,
XRefOne)
{ 0x32, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x32, XREF_DSSETMIXBINSB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -372,7 +372,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMixBins, 4134, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSSETMIXBINSA },
XREF_ENTRY( 0x15, XREF_DSSETMIXBINSA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -388,29 +388,29 @@ OOVPA_END;
// ******************************************************************
OOVPATable DSound_4134[] = {
OOVPA_TABLE_ENTRY(DirectSoundCreate, 4134),
OOVPA_TABLE_ENTRY(IDirectSound8_AddRef, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_Release, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_DownloadEffectsImage, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateSoundBuffer, 4134),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetHeadroom, 4134),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 4134),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetHeadroom, 4134, IDirectSoundBuffer8_SetHeadroom),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Lock, 4134, IDirectSoundBuffer8_Lock),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetVolume, 4134),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetVolume, 4134),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetVolume, 4134, IDirectSoundBuffer8_SetVolume),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetI3DL2Listener, 4134),
OOVPA_TABLE_PATCH(IDirectSound_SetI3DL2Listener, 4134, IDirectSound8_SetI3DL2Listener),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_GetEffectData, 4134),
OOVPA_TABLE_PATCH(IDirectSound_GetEffectData, 4134, IDirectSound8_GetEffectData),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetBufferData, 4134),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetBufferData, 4134, IDirectSoundBuffer8_SetBufferData),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateStream, 3936),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 4134),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMixBins, 4134),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMixBins, 4134),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMixBins, 4134, IDirectSoundBuffer8_SetMixBins),
REGISTER_OOVPA(DirectSoundCreate, 4134, PATCH),
REGISTER_OOVPA(IDirectSound8_AddRef, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_Release, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_DownloadEffectsImage, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_CreateSoundBuffer, 4134, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 4134, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetHeadroom, 4134, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetHeadroom, 4134, ALIAS, IDirectSoundBuffer_SetHeadroom),
REGISTER_OOVPA(IDirectSoundBuffer8_Lock, 4134, ALIAS, IDirectSoundBuffer_Lock),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 4134, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVolume, 4134, ALIAS, IDirectSoundBuffer_SetVolume),
REGISTER_OOVPA(DirectSound_CDirectSound_SetI3DL2Listener, 4134, XREF),
REGISTER_OOVPA(IDirectSound8_SetI3DL2Listener, 4134, ALIAS, IDirectSound_SetI3DL2Listener),
REGISTER_OOVPA(DirectSound_CDirectSound_GetEffectData, 4134, XREF),
REGISTER_OOVPA(IDirectSound8_GetEffectData, 4134, ALIAS, IDirectSound_GetEffectData),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetBufferData, 4134, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetBufferData, 4134, ALIAS, IDirectSoundBuffer_SetBufferData),
REGISTER_OOVPA(IDirectSound8_CreateStream, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 4134, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBins, 4134, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBins, 4134, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBins, 4134, ALIAS, IDirectSoundBuffer_SetMixBins),
};
// ******************************************************************

View File

@ -152,7 +152,7 @@ OOVPA_XREF(DirectSoundCreateStream, 4361, 12,
XRefOne)
// DirectSoundCreateStream+0x2F : call [CDirectSound::CreateSoundStream]
{ 0x2F, XREF_DSCREATESOUNDSTREAM }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x2F, XREF_DSCREATESOUNDSTREAM ), // (Offset,Value)-Pair #1
// DirectSoundCreateStream+0x04 : and [ebp-0x04], 0
{ 0x04, 0x83 }, // (Offset,Value)-Pair #2
@ -211,7 +211,7 @@ OOVPA_XREF(CDirectSoundStream_Pause, 4361, 11,
XRefOne)
// CDirectSoundStream_Pause+0x35 : call [CMcpxStream::Pause]
{ 0x35, XREF_DSSTREAMPAUSE }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_DSSTREAMPAUSE ), // (Offset,Value)-Pair #1
// CDirectSoundStream_Pause+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -263,7 +263,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPlayRegion, 4361, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSBUFFERSETPLAYREGIONA },
XREF_ENTRY( 0x19, XREF_DSBUFFERSETPLAYREGIONA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -311,7 +311,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetLoopRegion, 4361, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -405,7 +405,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetBufferData, 4361, 10,
XRefOne)
// CDirectSoundBuffer_SetBufferData+0x7A : call [CMcpxBuffer::SetBufferData]
{ 0x7A, XREF_DSSETBUFFERDATA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x7A, XREF_DSSETBUFFERDATA ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetBufferData+0x40 : mov eax, 0x80004005
{ 0x40, 0xB8 }, // (Offset,Value)-Pair #2
@ -432,7 +432,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetBufferData, 4361, 8,
XRefOne)
// IDirectSoundBuffer8_SetBufferData+0x19 : call [CDirectSoundBuffer::SetBufferData]
{ 0x19, XREF_DSSETBUFFERDATA2 }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSSETBUFFERDATA2 ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetBufferData+0x0E : add eax, 0xFFFFFFE4
{ 0x0E, 0x83 }, // (Offset,Value)-Pair #2
@ -481,7 +481,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetCurrentPosition, 4361, 10,
XRefOne)
// CDirectSoundBuffer_SetCurrentPosition+0x35 : call [CMcpxBuffer::SetCurrentPosition]
{ 0x35, XREF_SETCURRENTPOSITION }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_SETCURRENTPOSITION ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetCurrentPosition+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -508,7 +508,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetCurrentPosition, 4361, 8,
XRefOne)
// IDirectSoundBuffer8_SetCurrentPosition+0x15 : call [CDirectSoundBuffer::SetCurrentPosition]
{ 0x15, XREF_SETCURRENTPOSITION2 }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_SETCURRENTPOSITION2 ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetCurrentPosition+0x0A : add eax, 0xFFFFFFE4
{ 0x0A, 0x83 }, // (Offset,Value)-Pair #2
@ -561,7 +561,7 @@ OOVPA_XREF(CDirectSoundBuffer_GetCurrentPosition, 4361, 10,
XRefOne)
// CDirectSoundBuffer_GetCurrentPosition+0x39 : call [CMcpxBuffer::GetCurrentPosition]
{ 0x39, XREF_GETCURRENTPOSITION }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x39, XREF_GETCURRENTPOSITION ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_GetCurrentPosition+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -636,7 +636,7 @@ OOVPA_XREF(CDirectSoundBuffer_Play, 4361, 10,
XRefOne)
// CDirectSoundBuffer_Play+0x35 : call [CMcpxBuffer::Play]
{ 0x35, XREF_DSOUNDPLAY }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_DSOUNDPLAY ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_Play+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -663,7 +663,7 @@ OOVPA_XREF(IDirectSoundBuffer8_Play, 4361, 9,
XRefOne)
// IDirectSoundBuffer8_Play+0x1D : call [CDirectSoundBuffer::Play]
{ 0x1D, XREF_DSOUNDPLAY2 }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1D, XREF_DSOUNDPLAY2 ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_Play+0x0E : push [esp+0x10]
{ 0x0E, 0xFF }, // (Offset,Value)-Pair #2
@ -713,7 +713,7 @@ OOVPA_XREF(CDirectSoundBuffer_Stop, 4361, 10,
XRefOne)
// CDirectSoundBuffer_Stop+0x33 : call [CMcpxBuffer::Stop]
{ 0x33, XREF_DSOUNDSTOP }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x33, XREF_DSOUNDSTOP ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_Stop+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -740,7 +740,7 @@ OOVPA_XREF(IDirectSoundBuffer8_Stop, 4361, 8,
XRefOne)
// IDirectSoundBuffer8_Stop+0x11 : call [CDirectSoundBuffer::Stop]
{ 0x11, XREF_DSOUNDSTOP2 }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSOUNDSTOP2 ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_Stop+0x06 : and eax, 0xFFFFFFE4
{ 0x06, 0x83 }, // (Offset,Value)-Pair #2
@ -781,7 +781,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4361, 8,
XREF_DSSETMIXBINVOLUMESB,
XRefOne)
{ 0x0D, XREF_DSSETMIXBINVOLUMESC },
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINVOLUMESC ),
{ 0x02, 0x74 },
{ 0x06, 0x74 },
@ -800,7 +800,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4361, 8,
XREF_DSSETMIXBINVOLUMESA,
XRefOne)
{ 0x32, XREF_DSSETMIXBINVOLUMESB },
XREF_ENTRY( 0x32, XREF_DSSETMIXBINVOLUMESB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -819,7 +819,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_PlayEx, 4361, 8,
XREF_DirectSound_CDirectSoundBuffer_PlayEx,
XRefOne)
{ 0x3D, XREF_CMcpxBuffer_PlayA },
XREF_ENTRY( 0x3D, XREF_CMcpxBuffer_PlayA ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -838,7 +838,7 @@ OOVPA_XREF(IDirectSoundBuffer_PlayEx, 4361, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx },
XREF_ENTRY( 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -881,7 +881,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_StopEx, 4361, 8,
XREF_DirectSound_CDirectSoundBuffer_StopEx,
XRefOne)
{ 0x3D, XREF_CMcpxBuffer_Stop2 },
XREF_ENTRY( 0x3D, XREF_CMcpxBuffer_Stop2 ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -900,7 +900,7 @@ OOVPA_XREF(IDirectSoundBuffer_StopEx, 4361, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DirectSound_CDirectSoundBuffer_StopEx },
XREF_ENTRY( 0x1D, XREF_DirectSound_CDirectSoundBuffer_StopEx ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -948,7 +948,7 @@ OOVPA_XREF(CDirectSoundVoice_SetMixBins, 4361, 17,
XRefOne)
// CDirectSoundVoice_SetMixBins+0x0D : call [CDirectSoundVoiceSettings::SetMixBins]
{ 0x0D, XREF_DSSETMIXBINSC }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINSC ), // (Offset,Value)-Pair #1
// CDirectSoundVoice_SetMixBins+0x01 : mov esi, [esp+8]
{ 0x01, 0x8B }, // (Offset,Value)-Pair #2
@ -986,7 +986,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMixBins, 4361, 17,
XRefOne)
// CDirectSoundBuffer_SetMixBins+0x32 : call [CDirectSoundVoice::SetMixBins]
{ 0x32, XREF_DSSETMIXBINSB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x32, XREF_DSSETMIXBINSB ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetMixBins+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -1022,7 +1022,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMixBins, 4361, 12,
XRefOne)
// IDirectSoundBuffer8_SetMixBins+0x15 : call [CDirectSoundBuffer::SetMixBins]
{ 0x15, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSETMIXBINSA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetMixBins+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -1049,51 +1049,50 @@ OOVPA_END;
// ******************************************************************
OOVPATable DSound_4361[] = {
OOVPA_TABLE_ENTRY(DirectSoundCreate, 4361),
OOVPA_TABLE_ENTRY(DirectSoundDoWork, 4361),
OOVPA_TABLE_ENTRY(DirectSoundGetSampleTime, 4361),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundStream, 4361),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateStream, 3936),
OOVPA_TABLE_ENTRY(DirectSoundCreateStream, 4361),
OOVPA_TABLE_XREF(CMcpxStream_Pause, 4361),
OOVPA_TABLE_ENTRY(CDirectSoundStream_Pause, 4361),
OOVPA_TABLE_ENTRY(IDirectSound8_AddRef, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateSoundBuffer, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetPlayRegion, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPlayRegion, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetLoopRegion, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetLoopRegion, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetVolume, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetVolume, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_SetBufferData, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetBufferData, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetBufferData, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_SetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetCurrentPosition, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_GetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_GetCurrentPosition, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_GetCurrentPosition, 3936),
OOVPA_TABLE_XREF(CMcpxBuffer_Play, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_Play, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Play, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_Stop, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_Stop2, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_Stop, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Stop, 4361),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4361),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4361),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4361),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_PlayEx, 4361),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_PlayEx, 4361, IDirectSoundBuffer8_PlayEx),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_StopEx, 4361),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_StopEx, 4361, IDirectSoundBuffer8_StopEx),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_AddRef, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_Release, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBins, 4361),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBins, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBins, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBins, 4361),
REGISTER_OOVPA(DirectSoundCreate, 4361, PATCH),
REGISTER_OOVPA(DirectSoundDoWork, 4361, PATCH),
REGISTER_OOVPA(DirectSoundGetSampleTime, 4361, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundStream, 4361, XREF),
REGISTER_OOVPA(IDirectSound8_CreateStream, 3936, PATCH),
REGISTER_OOVPA(DirectSoundCreateStream, 4361, PATCH),
REGISTER_OOVPA(CMcpxStream_Pause, 4361, XREF),
REGISTER_OOVPA(CDirectSoundStream_Pause, 4361, PATCH),
REGISTER_OOVPA(IDirectSound8_AddRef, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_CreateSoundBuffer, 4361, PATCH),
REGISTER_OOVPA(CDirectSoundBuffer_SetPlayRegion, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPlayRegion, 4361, PATCH),
REGISTER_OOVPA(CDirectSoundBuffer_SetLoopRegion, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLoopRegion, 4361, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVolume, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetBufferData, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetCurrentPosition, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_GetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_GetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetCurrentPosition, 3936, PATCH),
REGISTER_OOVPA(CMcpxBuffer_Play, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_Play, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Play, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_Stop, 4361, XREF),
REGISTER_OOVPA(CMcpxBuffer_Stop2, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_Stop, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Stop, 4361, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4361, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4361, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4361, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_PlayEx, 4361, ALIAS, IDirectSoundBuffer_PlayEx),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_StopEx, 4361, ALIAS, IDirectSoundBuffer_StopEx),
REGISTER_OOVPA(IDirectSoundBuffer8_AddRef, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_Release, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBins, 4361, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBins, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBins, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBins, 4361, PATCH),
};
// ******************************************************************

View File

@ -103,7 +103,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMaxDistance, 4432, 10,
XRefOne)
// CDirectSoundBuffer_SetMaxDistance+0x39 : call [CDirectSoundVoice::SetMaxDistance]
{ 0x3A, XREF_DSVOICESETMAXDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMAXDISTANCE ),
// CDirectSoundBuffer_SetMaxDistance+0x21 : mov eax, 80004005h
{ 0x22, 0x05 },
@ -130,7 +130,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMaxDistance, 4432, 10,
XRefOne)
// IDirectSoundBuffer_SetMaxDistance+0x1C : call [CDirectSoundBuffer::SetMaxDistance]
{ 0x1D, XREF_DSBUFFERSETMAXDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMAXDISTANCE ),
// IDirectSoundBuffer_SetMaxDistance+0x04 : fld [esp+4+arg_4]
{ 0x04, 0xD9 },
@ -181,7 +181,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMinDistance, 4432, 10,
XRefOne)
// CDirectSoundBuffer_SetMinDistance+0x39 : call [CDirectSoundVoice::SetMinDistance]
{ 0x3A, XREF_DSVOICESETMINDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMINDISTANCE ),
// CDirectSoundBuffer_SetMinDistance+0x21 : mov eax, 80004005h
{ 0x22, 0x05 },
@ -208,7 +208,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 4432, 10,
XRefOne)
// IDirectSoundBuffer_SetMinDistance+0x1C : call [CDirectSoundBuffer::SetMinDistance]
{ 0x1D, XREF_DSBUFFERSETMINDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMINDISTANCE ),
// IDirectSoundBuffer_SetMinDistance+0x04 : fld [esp+4+arg_4]
{ 0x04, 0xD9 },
@ -261,7 +261,7 @@ OOVPA_XREF(IDirectSound8_SetI3DL2Listener, 4432, 12,
XRefOne)
// IDirectSound8_SetI3DL2Listener+0x19 : call [CDirectSound::SetI3DL2Listener]
{ 0x19, XREF_DSSETI3DL2LISTENER }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSSETI3DL2LISTENER ), // (Offset,Value)-Pair #1
// IDirectSound8_SetI3DL2Listener+0x04 : push [esp+0x0C]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -319,7 +319,7 @@ OOVPA_XREF(CDirectSoundVoice_SetMixBins, 4432, 17,
XRefOne)
// CDirectSoundVoice_SetMixBins+0x0D : call [CDirectSoundVoiceSettings::SetMixBins]
{ 0x0D, XREF_DSSETMIXBINSC }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINSC ), // (Offset,Value)-Pair #1
// CDirectSoundVoice_SetMixBins+0x01 : mov esi, [esp+8]
{ 0x01, 0x8B }, // (Offset,Value)-Pair #2
@ -357,7 +357,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMixBins, 4432, 17,
XRefOne)
// CDirectSoundBuffer_SetMixBins+0x32 : call [CDirectSoundVoice::SetMixBins]
{ 0x32, XREF_DSSETMIXBINSB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x32, XREF_DSSETMIXBINSB ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetMixBins+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -393,7 +393,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMixBins, 4432, 12,
XRefOne)
// IDirectSoundBuffer8_SetMixBins+0x15 : call [CDirectSoundBuffer::SetMixBins]
{ 0x15, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSETMIXBINSA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetMixBins+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -475,7 +475,7 @@ OOVPA_XREF(IDirectSound8_SetDistanceFactor, 4432, 11,
XRefOne)
// IDirectSound8_SetDistanceFactor+0x1D : call [CDirectSound::SetDistanceFactor]
{ 0x1D, XREF_SETDISTANCEFACTORA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1D, XREF_SETDISTANCEFACTORA ), // (Offset,Value)-Pair #1
// IDirectSound8_SetDistanceFactor+0x04 : fld [esp+0x0C]
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
@ -582,48 +582,48 @@ OOVPA_END;
// ******************************************************************
OOVPATable DSound_4432[] = {
OOVPA_TABLE_ENTRY(DirectSoundCreate, 4361),
OOVPA_TABLE_ENTRY(DirectSoundDoWork, 4432),
OOVPA_TABLE_ENTRY(DirectSoundGetSampleTime, 4432),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateStream, 3936),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundStream, 4361),
OOVPA_TABLE_ENTRY(DirectSoundCreateStream, 4361),
OOVPA_TABLE_XREF(CMcpxStream_Pause, 4361),
OOVPA_TABLE_ENTRY(CDirectSoundStream_Pause, 4361),
OOVPA_TABLE_ENTRY(IDirectSound8_AddRef, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_Release, 4432),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateSoundBuffer, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Release, 3936),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetLoopRegion, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetLoopRegion, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_SetBufferData, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetBufferData, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetBufferData, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_SetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetCurrentPosition, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_Stop, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_Stop, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Stop, 4361),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMaxDistance, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMaxDistance, 4432),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMaxDistance, 4432, IDirectSoundBuffer8_SetMaxDistance),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMinDistance, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMinDistance, 4432),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMinDistance, 4432, IDirectSoundBuffer8_SetMinDistance),
OOVPA_TABLE_XREF(CDirectSound_SetI3DL2Listener, 4432),
OOVPA_TABLE_ENTRY(IDirectSound8_SetI3DL2Listener, 4432),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBins, 4432),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBins, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBins, 4432),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBins, 4432),
OOVPA_TABLE_ENTRY(CDirectSound_CommitDeferredSettings, 4432),
OOVPA_TABLE_XREF(CDirectSound_SetDistanceFactorA, 4432),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDistanceFactor, 4432),
OOVPA_TABLE_ENTRY(IDirectSound8_DownloadEffectsImage, 3936),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_AddRef, 3936),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetPlayRegion, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPlayRegion, 4361),
REGISTER_OOVPA(DirectSoundCreate, 4361, PATCH),
REGISTER_OOVPA(DirectSoundDoWork, 4432, PATCH),
REGISTER_OOVPA(DirectSoundGetSampleTime, 4432, PATCH),
REGISTER_OOVPA(IDirectSound8_CreateStream, 3936, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundStream, 4361, XREF),
REGISTER_OOVPA(DirectSoundCreateStream, 4361, PATCH),
REGISTER_OOVPA(CMcpxStream_Pause, 4361, XREF),
REGISTER_OOVPA(CDirectSoundStream_Pause, 4361, PATCH),
REGISTER_OOVPA(IDirectSound8_AddRef, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_Release, 4432, PATCH),
REGISTER_OOVPA(IDirectSound8_CreateSoundBuffer, 4361, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_Release, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundBuffer_SetLoopRegion, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLoopRegion, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetBufferData, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetCurrentPosition, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_Stop, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_Stop, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Stop, 4361, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetMaxDistance, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMaxDistance, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMaxDistance, 4432, ALIAS, IDirectSoundBuffer_SetMaxDistance),
REGISTER_OOVPA(CDirectSoundVoice_SetMinDistance, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMinDistance, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMinDistance, 4432, ALIAS, IDirectSoundBuffer_SetMinDistance),
REGISTER_OOVPA(CDirectSound_SetI3DL2Listener, 4432, XREF),
REGISTER_OOVPA(IDirectSound8_SetI3DL2Listener, 4432, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBins, 4432, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBins, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBins, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBins, 4432, PATCH),
REGISTER_OOVPA(CDirectSound_CommitDeferredSettings, 4432, PATCH),
REGISTER_OOVPA(CDirectSound_SetDistanceFactorA, 4432, XREF),
REGISTER_OOVPA(IDirectSound8_SetDistanceFactor, 4432, PATCH),
REGISTER_OOVPA(IDirectSound8_DownloadEffectsImage, 3936, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_AddRef, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundBuffer_SetPlayRegion, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPlayRegion, 4361, PATCH),
};
// ******************************************************************

View File

@ -114,7 +114,7 @@ OOVPA_XREF(IDirectSound8_SetMixBinHeadroom, 4627, 12,
XRefOne)
// IDirectSound8_SetMixBinHeadroom+0x19 : call [CDirectSound::SetMixBinHeadroom]
{ 0x19, XREF_DSSETMIXBINHEADROOMA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSSETMIXBINHEADROOMA ), // (Offset,Value)-Pair #1
// IDirectSound8_SetMixBinHeadroom+0x04 : push [esp+0x0C]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -162,7 +162,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetHeadroom, 4928, 8,
XRefOne)
// IDirectSoundBuffer8_SetHeadroom+0x32 : call [IDirectSoundBuffer8_SetHeadroomA]
{ 0x32, XREF_DSBUFFERSETHEADROOMA },
XREF_ENTRY( 0x32, XREF_DSBUFFERSETHEADROOMA ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -303,7 +303,7 @@ OOVPA_XREF(CDirectSoundVoice_SetMixBinVolumes, 4627, 17,
XRefOne)
// CDirectSoundVoice_SetMixBinVolumes+0x0D : call [CDirectSoundVoiceSettings::SetMixBinVolumes]
{ 0x0D, XREF_DSSETMIXBINVOLUMESC }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINVOLUMESC ), // (Offset,Value)-Pair #1
// CDirectSoundVoice_SetMixBinVolumes+0x01 : mov esi, [esp+8]
{ 0x01, 0x8B }, // (Offset,Value)-Pair #2
@ -341,7 +341,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMixBinVolumes, 4627, 17,
XRefOne)
// CDirectSoundBuffer_SetMixBinVolumes+0x32 : call [CDirectSoundVoice::SetMixBinVolumes]
{ 0x32, XREF_DSSETMIXBINVOLUMESB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x32, XREF_DSSETMIXBINVOLUMESB ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetMixBinVolumes+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -377,7 +377,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMixBinVolumes, 4627, 12,
XRefOne)
// IDirectSoundBuffer8_SetMixBinVolumes+0x15 : call [CDirectSoundBuffer::SetMixBinVolumes]
{ 0x15, XREF_DSSETMIXBINVOLUMESA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSETMIXBINVOLUMESA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetMixBinVolumes+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -434,7 +434,7 @@ OOVPA_XREF(DirectSoundCreateBuffer, 4627, 12,
XRefOne)
// DirectSoundCreateBuffer+0x2F : call [CDirectSound::CreateSoundBuffer]
{ 0x2F, XREF_DSCREATESOUNDBUFFER }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x2F, XREF_DSCREATESOUNDBUFFER ), // (Offset,Value)-Pair #1
// DirectSoundCreateBuffer+0x04 : and [ebp-0x04], 0
{ 0x04, 0x83 }, // (Offset,Value)-Pair #2
@ -465,7 +465,7 @@ OOVPA_XREF(IDirectSound8_CreateSoundBuffer, 4627, 12,
XRefOne)
// IDirectSound8_CreateSoundBuffer+0x1D : call [CDirectSound::CreateSoundBuffer]
{ 0x1D, XREF_DSCREATESOUNDBUFFER }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1D, XREF_DSCREATESOUNDBUFFER ), // (Offset,Value)-Pair #1
// IDirectSound8_CreateSoundBuffer+0x04 : mov eax, [esp+8]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -524,7 +524,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetFrequency, 4627, 17,
XRefOne)
// CDirectSoundBuffer_SetFrequency+0x32 : call [CDirectSoundVoice::SetFrequency]
{ 0x32, XREF_DSBUFFERSETFREQUENCYB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x32, XREF_DSBUFFERSETFREQUENCYB ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetFrequency+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -560,7 +560,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetFrequency, 4627, 12,
XRefOne)
// IDirectSoundBuffer8_SetFrequency+0x15 : call [CDirectSound::SetFrequency]
{ 0x15, XREF_DSBUFFERSETFREQUENCYA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERSETFREQUENCYA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetFrequency+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -621,7 +621,7 @@ OOVPA_XREF(CDirectSoundStream_SetVolume, 4627, 11,
XRefOne)
// CDirectSoundStream_SetVolume+0x15 : call [CMcpxVoiceClient::SetVolume]
{ 0x15, XREF_DSSTREAMSETVOLUME }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSTREAMSETVOLUME ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetVolume+0x00 : mov ecx, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -783,7 +783,7 @@ OOVPA_XREF(CDirectSoundBuffer_GetStatus, 4627, 10,
XRefOne)
// CDirectSoundBuffer_GetStatus+0x35 : call [CMcpxBuffer::GetStatus]
{ 0x35, XREF_DSBUFFERGETSTATUSA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_DSBUFFERGETSTATUSA ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_GetStatus+0x21 : mov eax, 0x80004005
{ 0x21, 0xB8 }, // (Offset,Value)-Pair #2
@ -810,7 +810,7 @@ OOVPA_XREF(IDirectSoundBuffer8_GetStatus, 4627, 9,
XRefOne)
// IDirectSoundBuffer8_GetStatus+0x15 : call [CDirectSoundBuffer::GetStatus]
{ 0x15, XREF_DSBUFFERGETSTATUSB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERGETSTATUSB ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_GetStatus+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -983,7 +983,7 @@ OOVPA_XREF(IDirectSound8_SetRolloffFactor, 4627, 11,
XRefOne)
// IDirectSound8_SetRolloffFactor+0x1D : call [CDirectSound::SetRolloffFactor]
{ 0x1D, XREF_SETROLLOFFFACTORA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1D, XREF_SETROLLOFFFACTORA ), // (Offset,Value)-Pair #1
// IDirectSound8_SetRolloffFactor+0x04 : fld [esp+0x0C]
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
@ -1075,7 +1075,7 @@ OOVPA_XREF(IDirectSound8_SetDopplerFactor, 4627, 11,
XRefOne)
// IDirectSound8_SetDopplerFactor+0x1D : call [CDirectSound::SetDopplerFactor]
{ 0x1D, XREF_SETDOPPLERFACTOR}, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1D, XREF_SETDOPPLERFACTOR), // (Offset,Value)-Pair #1
// IDirectSound8_SetDopplerFactor+0x04 : fld [esp+0x0C]
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
@ -1129,7 +1129,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetRolloffFactor, 4627, 10,
XRefOne)
// CDirectSoundBuffer_SetRolloffFactor+0x39 : call [CDirectSoundVoice::SetRolloffFactor]
{ 0x3A, XREF_DSVOICESETROLLOFFFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETROLLOFFFACTOR ),
// CDirectSoundBuffer_SetRolloffFactor+0x21 : mov eax, 80004005h
{ 0x22, 0x05 },
@ -1156,7 +1156,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetRolloffFactor, 4627, 10,
XRefOne)
// IDirectSoundBuffer_SetRolloffFactor+0x1C : call [CDirectSoundBuffer::SetRolloffFactor]
{ 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR ),
// IDirectSoundBuffer_SetRolloffFactor+0x04 : fld [esp+4+arg_4]
{ 0x04, 0xD9 },
@ -1207,7 +1207,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetDistanceFactor, 4627, 10,
XRefOne)
// CDirectSoundBuffer_SetDistanceFactor+0x39 : call [CDirectSoundVoice::SetDistanceFactor]
{ 0x3A, XREF_DSVOICESETDISTANCEFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETDISTANCEFACTOR ),
// CDirectSoundBuffer_SetDistanceFactor+0x21 : mov eax, 80004005h
{ 0x22, 0x05 },
@ -1234,7 +1234,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetDistanceFactor, 4627, 10,
XRefOne)
// IDirectSoundBuffer_SetDistanceFactor+0x1C : call [CDirectSoundBuffer::SetDistanceFactor]
{ 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR ),
// IDirectSoundBuffer_SetDistanceFactor+0x04 : fld [esp+4+arg_4]
{ 0x04, 0xD9 },
@ -1285,7 +1285,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetConeAngles, 4627, 11,
XRefOne)
// CDirectSoundBuffer_SetConeAngles+0x39 : call [CDirectSoundVoice::SetConeAngles]
{ 0x3A, XREF_DSVOICESETCONEANGLES },
XREF_ENTRY( 0x3A, XREF_DSVOICESETCONEANGLES ),
// CDirectSoundBuffer_SetConeAngles+0x21 : mov eax, 80004005h
{ 0x22, 0x05 },
@ -1313,7 +1313,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetConeAngles, 4627, 10,
XRefOne)
// IDirectSoundBuffer_SetConeAngles+0x1C : call [CDirectSoundBuffer::SetConeAngles]
{ 0x1D, XREF_DSBUFFERSETCONEANGLES },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETCONEANGLES ),
// IDirectSoundBuffer_SetConeAngles+0x04 : mov eax, [esp+4+arg_0]
{ 0x04, 0x8B },
@ -1363,7 +1363,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetConeOrientation, 4627, 9,
XRefOne)
// CDirectSoundBuffer_SetConeOrientation+0x49 : call [CDirectSoundVoice::SetConeOrientation]
{ 0x4A, XREF_DSVOICESETCONEORIENTATION },
XREF_ENTRY( 0x4A, XREF_DSVOICESETCONEORIENTATION ),
// CDirectSoundBuffer_SetConeOrientation+0x2B : fld [ebp+arg_C]
{ 0x2B, 0xD9 },
@ -1389,7 +1389,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetConeOrientation, 4627, 9,
XRefOne)
// IDirectSoundBuffer_SetConeOrientation+0x2C : call [CDirectSoundBuffer::SetConeOrientation]
{ 0x2D, XREF_DSBUFFERSETCONEORIENTATION },
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETCONEORIENTATION ),
// IDirectSoundBuffer_SetConeOrientation+0x06 : fld [ebp+arg_C]
{ 0x06, 0xD9 },
@ -1439,7 +1439,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetConeOutsideVolume, 4627, 11,
XRefOne)
// CDirectSoundBuffer_SetConeOutsideVolume+0x35 : call [CDirectSoundVoice::SetConeOutsideVolume]
{ 0x36, XREF_DSVOICESETCONEOUTSIDEVOLUME },
XREF_ENTRY( 0x36, XREF_DSVOICESETCONEOUTSIDEVOLUME ),
// CDirectSoundBuffer_SetConeOutsideVolume+0x21 : mov eax, 80004005h
{ 0x22, 0x05 },
@ -1467,7 +1467,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetConeOutsideVolume, 4627, 9,
XRefOne)
// IDirectSoundBuffer_SetConeOutsideVolume+0x18 : call [CDirectSoundBuffer::SetConeOutsideVolume]
{ 0x19, XREF_DSBUFFERSETCONEOUTSIDEVOLUME },
XREF_ENTRY( 0x19, XREF_DSBUFFERSETCONEOUTSIDEVOLUME ),
// IDirectSoundBuffer_SetConeOutsideVolume+0x0A : push [esp+4+arg_4]
{ 0x0A, 0xFF },
@ -1516,7 +1516,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetPosition, 4627, 9,
XRefOne)
// CDirectSoundBuffer_SetPosition+0x49 : call [CDirectSoundVoice::SetPosition]
{ 0x4A, XREF_DSVOICESETPOSITION },
XREF_ENTRY( 0x4A, XREF_DSVOICESETPOSITION ),
// CDirectSoundBuffer_SetPosition+0x2B : fld [ebp+arg_C]
{ 0x2B, 0xD9 },
@ -1565,7 +1565,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetVelocity, 4627, 9,
XRefOne)
// CDirectSoundBuffer_SetVelocity+0x49 : call [CDirectSoundVoice::SetVelocity]
{ 0x4A, XREF_DSVOICESETVELOCITY },
XREF_ENTRY( 0x4A, XREF_DSVOICESETVELOCITY ),
// CDirectSoundBuffer_SetVelocity+0x2B : fld [ebp+arg_C]
{ 0x2B, 0xD9 },
@ -1615,7 +1615,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetDopplerFactor, 4627, 10,
XRefOne)
// CDirectSoundBuffer_SetDopplerFactor+0x39 : call [CDirectSoundVoice::SetDopplerFactor]
{ 0x3A, XREF_DSVOICESETDOPPLERFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETDOPPLERFACTOR ),
// CDirectSoundBuffer_SetDopplerFactor+0x2D : push [esp+4+arg_8]
{ 0x2D, 0xFF },
@ -1642,7 +1642,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetDopplerFactor, 4627, 9,
XRefOne)
// IDirectSoundBuffer_SetDopplerFactor+0x1C : call [CDirectSoundBuffer::SetDopplerFactor]
{ 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR ),
// IDirectSoundBuffer_SetDopplerFactor+0x08 : mov eax, [esp+4+arg_0]
{ 0x08, 0x8B },
@ -1695,7 +1695,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetI3DL2Source, 4627, 11,
XRefOne)
// CDirectSoundBuffer_SetI3DL2Source+0x35 : call [CDirectSoundVoice::SetI3DL2Source]
{ 0x36, XREF_DSVOICESETI3DL2SOURCE },
XREF_ENTRY( 0x36, XREF_DSVOICESETI3DL2SOURCE ),
// CDirectSoundBuffer_SetI3DL2Source+0x21 : mov eax, 80004005h
{ 0x22, 0x05 },
@ -1723,7 +1723,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetI3DL2Source, 4627, 10,
XRefOne)
// IDirectSoundBuffer_SetI3DL2Source+0x18 : call [CDirectSoundBuffer::SetI3DL2Source]
{ 0x19, XREF_DSBUFFERSETI3DL2SOURCE },
XREF_ENTRY( 0x19, XREF_DSBUFFERSETI3DL2SOURCE ),
// IDirectSoundBuffer_SetI3DL2Source+0x04 : push [esp+arg_8]
{ 0x04, 0xFF },
@ -1793,7 +1793,7 @@ OOVPA_XREF(X_DirectSound_CDirectSoundBuffer_SetFormat, 4627, 8,
XREF_DirectSound_CDirectSoundBuffer_SetFormat,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -1812,7 +1812,7 @@ OOVPA_XREF(X_IDirectSoundBuffer_SetFormat, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1859,7 +1859,7 @@ OOVPA_XREF(CDirectSoundStream_SetMixBinVolumes, 4627, 12,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINVOLUMESB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINVOLUMESB ),
{ 0x0D, 0x0F },
{ 0x0E, 0xB6 },
@ -1916,7 +1916,7 @@ OOVPA_XREF(EmuIDirectSound_EnableHeadphones, 4627, 9,
XRefOne)
// IDirectSound_EnableHeadphones+0x14 : call [CDirectSound::EnableHeadphones]
{ 0x15, XREF_DirectSound_CDirectSound_EnableHeadphones },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSound_EnableHeadphones ),
// IDirectSound_EnableHeadphones+0x04 : push dword ptr [esp+8]
{ 0x04, 0xFF },
@ -1942,7 +1942,7 @@ OOVPA_XREF(CDirectSoundVoice_SetHeadroom, 4627, 9,
XREF_DirectSound_CDirectSoundVoice_SetHeadroom,
XRefOne) // Note : This was -1, which is used nowhere else and probably an error.
{ 0x1B, XREF_DSSTREAMSETVOLUME },
XREF_ENTRY( 0x1B, XREF_DSSTREAMSETVOLUME ),
{ 0x0A, 0x56 },
{ 0x0F, 0x2B },
@ -1962,7 +1962,7 @@ OOVPA_NO_XREF(CDirectSoundStream_SetHeadroom, 4627, 12,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
{ 0x21, 0x8B },
{ 0x22, 0x05 },
@ -2025,7 +2025,7 @@ OOVPA_XREF(IDirectSound_GetOutputLevels, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSound_GetOutputLevels },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSound_GetOutputLevels ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2063,7 +2063,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetAllParameters, 4627, 8,
XREF_DirectSound_CDirectSoundBuffer_SetAllParameters,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2082,7 +2082,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetAllParameters, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2119,7 +2119,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_Pause, 4928, 8,
XREF_DirectSound_CDirectSoundBuffer_Pause,
XRefOne)
{ 0x35, XREF_DirectSound_CMcpxBuffer_Pause },
XREF_ENTRY( 0x35, XREF_DirectSound_CMcpxBuffer_Pause ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2138,7 +2138,7 @@ OOVPA_XREF(IDirectSoundBuffer_Pause, 4928, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_Pause },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_Pause ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2174,7 +2174,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_GetStatus, 4721, 8,
XREF_DirectSound_CDirectSoundBuffer_GetStatus,
XRefOne)
{ 0x35, XREF_DirectSound_CMcpxBuffer_GetStatus },
XREF_ENTRY( 0x35, XREF_DirectSound_CMcpxBuffer_GetStatus ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2193,7 +2193,7 @@ OOVPA_XREF(IDirectSoundBuffer_GetStatus, 4721, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_GetStatus },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_GetStatus ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2212,7 +2212,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBins, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINSB ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2249,7 +2249,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetEG, 4627, 7,
XREF_DirectSound_CDirectSoundVoice_SetEG,
XRefOne)
{ 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetEG },
XREF_ENTRY( 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetEG ),
{ 0x01, 0x44 },
{ 0x04, 0xFF },
@ -2267,7 +2267,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetEG, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetEG },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetEG ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2286,7 +2286,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetEG, 4627, 8,
XREF_DirectSound_CDirectSoundBuffer_SetEG,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetEG },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetEG ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -2305,7 +2305,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetEG, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetEG },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetEG ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2341,7 +2341,7 @@ OOVPA_XREF(IDirectSoundStream_FlushEx, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x11, XREF_DSFLUSHEX2 },
XREF_ENTRY( 0x11, XREF_DSFLUSHEX2 ),
{ 0x01, 0x74 },
{ 0x04, 0xFF },
@ -2393,7 +2393,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMode, 4627, 8,
XREF_DSBUFFERSETMODEA,
XRefOne)
{ 0x36, XREF_DSBUFFERSETMODEB },
XREF_ENTRY( 0x36, XREF_DSBUFFERSETMODEB ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2412,7 +2412,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMode, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSBUFFERSETMODEA },
XREF_ENTRY( 0x19, XREF_DSBUFFERSETMODEA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2450,7 +2450,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetFilter, 4627, 7,
XREF_DirectSound_CDirectSoundVoice_SetFilter,
XRefOne)
{ 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetFilter },
XREF_ENTRY( 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetFilter ),
{ 0x01, 0x44 },
{ 0x04, 0xFF },
@ -2468,7 +2468,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetFilter, 4627, 8,
XREF_DirectSound_CDirectSoundBuffer_SetFilter,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetFilter },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetFilter ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -2487,7 +2487,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetFilter, 4627, 8,
XREF_DirectSound_CDirectSoundStream_SetFilter,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetFilter },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetFilter ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2506,7 +2506,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetFilter, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFilter },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFilter ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2541,7 +2541,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetPitch, 4627, 8,
XREF_DSBUFFERSETPITCHA,
XRefOne)
{ 0x32, XREF_DSBUFFERSETPITCHB },
XREF_ENTRY( 0x32, XREF_DSBUFFERSETPITCHB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -2560,7 +2560,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPitch, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSBUFFERSETPITCHA },
XREF_ENTRY( 0x15, XREF_DSBUFFERSETPITCHA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2580,7 +2580,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetHeadroom, 4627, 8,
XRefOne)
// CDirectSoundVoice_SetHeadroom+0x1B : call [CMcpxVoiceClient::SetVolume]
{ 0x1B, XREF_DSSTREAMSETVOLUME },
XREF_ENTRY( 0x1B, XREF_DSSTREAMSETVOLUME ),
{ 0x03, 0x04 },
{ 0x08, 0x48 },
@ -2635,7 +2635,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetOutputBuffer, 4627, 8,
XREF_DirectSound_CDirectSoundBuffer_SetOutputBuffer,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetOutputBuffer },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetOutputBuffer ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -2654,7 +2654,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetOutputBuffer, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetOutputBuffer },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetOutputBuffer ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2673,7 +2673,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetOutputBuffer, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetOutputBuffer },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetOutputBuffer ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2710,7 +2710,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetRolloffCurve, 4627, 8,
XREF_DSBUFFERSETROLLOFFCURVE,
XRefOne)
{ 0x3A, XREF_DSVOICESETROLLOFFCURVE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETROLLOFFCURVE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2729,7 +2729,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetRolloffCurve, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x3E, XREF_DSVOICESETROLLOFFCURVE },
XREF_ENTRY( 0x3E, XREF_DSVOICESETROLLOFFCURVE ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -2748,7 +2748,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetRolloffCurve, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETROLLOFFCURVE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETROLLOFFCURVE ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -2834,7 +2834,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetNotificationPositions, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSoundBuffer_SetNotificationPositions },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSoundBuffer_SetNotificationPositions ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2872,7 +2872,7 @@ OOVPA_XREF(CDirectSoundVoice_SetLFO, 4627, 7,
XREF_DirectSound_CDirectSoundVoice_SetLFO,
XRefOne)
{ 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetLFO },
XREF_ENTRY( 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetLFO ),
{ 0x01, 0x44 },
{ 0x04, 0xFF },
@ -2890,7 +2890,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetLFO, 4627, 8,
XREF_DirectSound_CDirectSoundBuffer_SetLFO,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetLFO },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetLFO ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -2909,7 +2909,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetLFO, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetLFO },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetLFO ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2928,7 +2928,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetPitch, 4627, 12,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSBUFFERSETPITCHB },
XREF_ENTRY( 0x36, XREF_DSBUFFERSETPITCHB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -2958,191 +2958,190 @@ OOVPA_END;
// ******************************************************************
OOVPATable DSound_4627[] = {
OOVPA_TABLE_ENTRY(DirectSoundCreate, 4361),
OOVPA_TABLE_ENTRY(DirectSoundDoWork, 4627),
OOVPA_TABLE_ENTRY(DirectSoundGetSampleTime, 4627),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundBuffer, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetPlayRegion, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPlayRegion, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetLoopRegion, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetLoopRegion, 4361),
OOVPA_TABLE_XREF(CDirectSound_SetI3DL2Listener, 4432),
OOVPA_TABLE_ENTRY(IDirectSound8_SetI3DL2Listener, 4432),
OOVPA_TABLE_XREF(CDirectSound_SetMixBinHeadroom, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetMixBinHeadroom, 4627),
OOVPA_TABLE_XREF(IDirectSoundBuffer8_SetHeadroomA, 4928),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetHeadroom, 4928),
OOVPA_TABLE_XREF(CDirectSound_SetVelocity, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetVelocity, 3936),
OOVPA_TABLE_XREF(CDirectSound_SetAllParametersA, 4627),
OOVPA_TABLE_XREF(CDirectSound_SetAllParametersA, 4721),
OOVPA_TABLE_XREF(CDirectSound_SetAllParametersA, 4831),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetAllParameters, 4928),
OOVPA_TABLE_ENTRY(IDirectSound8_SetAllParameters, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBins, 4361),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBins, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBins, 4432),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBins, 4432),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBinVolumes, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSound_SetPositionA, 4627),
OOVPA_TABLE_XREF(CDirectSound_SetPositionA, 4432), // TODO: Find a cure for laziness...
OOVPA_TABLE_ENTRY(IDirectSound8_SetPosition, 3936),
OOVPA_TABLE_ENTRY(DirectSoundCreateBuffer, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateSoundBuffer, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_AddRef, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetFrequency, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetFrequency, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetFrequency, 4627),
OOVPA_TABLE_XREF(CMcpxVoiceClient_SetVolume, 4627),
OOVPA_TABLE_ENTRY(CDirectSoundStream_SetVolume, 4627),
OOVPA_TABLE_XREF(IDirectSoundBuffer8_LockA, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Lock, 3936),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundStream, 4361),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateStream, 3936),
OOVPA_TABLE_ENTRY(DirectSoundCreateStream, 4361),
OOVPA_TABLE_XREF(CMcpxStream_Pause, 4361),
OOVPA_TABLE_XREF(CMcpxStream_Pause, 4928),
OOVPA_TABLE_ENTRY(CDirectSoundStream_Pause, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_SetBufferData, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetBufferData, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetBufferData, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_GetStatus, 4627),
OOVPA_TABLE_XREF(CMcpxBuffer_GetStatus, 4721),
// OOVPA_TABLE_XREF(CMcpxBuffer_GetStatus, 4928)
OOVPA_TABLE_XREF(CMcpxBuffer_GetStatusB, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_GetStatus, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_GetStatus, 4627),
OOVPA_TABLE_XREF(CMcpxBuffer_SetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetCurrentPosition, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_GetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_GetCurrentPosition, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_GetCurrentPosition, 3936),
OOVPA_TABLE_ENTRY(CDirectSound_GetSpeakerConfig, 4627),
OOVPA_TABLE_XREF(CMcpxBuffer_Play, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_Play, 4721),
OOVPA_TABLE_XREF(CMcpxBuffer_Play, 4928),
OOVPA_TABLE_XREF(CMcpxBuffer_PlayA, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_Play, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Play, 4361),
OOVPA_TABLE_ENTRY(IDirectSound8_Release, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_DownloadEffectsImage, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_SetOrientation, 3936),
OOVPA_TABLE_XREF(CDirectSound_SetDistanceFactorA, 4531),
OOVPA_TABLE_XREF(CDirectSound_SetDistanceFactorA, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDistanceFactor, 4432),
OOVPA_TABLE_XREF(CDirectSound_SetRolloffFactor, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetRolloffFactor, 4627),
OOVPA_TABLE_XREF(CDirectSound_SetDopplerFactor, 4531),
OOVPA_TABLE_XREF(CDirectSound_SetDopplerFactor, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDopplerFactor, 4627),
OOVPA_TABLE_ENTRY(CDirectSound_CommitDeferredSettings, 4432),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMaxDistance, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMaxDistance, 4432),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMaxDistance, 4432, IDirectSoundBuffer8_SetMaxDistance),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMinDistance, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMinDistance, 4432),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMinDistance, 4432, IDirectSoundBuffer8_SetMinDistance),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetRolloffFactor, 4627), // s+
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetRolloffFactor, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetRolloffFactor, 4627, IDirectSoundBuffer8_SetRolloffFactor),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetDistanceFactor, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetDistanceFactor, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetDistanceFactor, 4627, IDirectSoundBuffer8_SetDistanceFactor),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetConeAngles, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetConeAngles, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetConeAngles, 4627, IDirectSoundBuffer8_SetConeAngles),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetConeOrientation, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetConeOrientation, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetConeOrientation, 4627, IDirectSoundBuffer8_SetConeOrientation),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetConeOutsideVolume, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetConeOutsideVolume, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetConeOutsideVolume, 4627, IDirectSoundBuffer8_SetConeOutsideVolume),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetPosition, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetPosition, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPosition, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetVelocity, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetVelocity, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetVelocity, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetDopplerFactor, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetDopplerFactor, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetDopplerFactor, 4627, IDirectSoundBuffer8_SetDopplerFactor),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetI3DL2Source, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetI3DL2Source, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetI3DL2Source, 4627, IDirectSoundBuffer8_SetI3DL2Source),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Stop, 4627, IDirectSoundBuffer8_Stop),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Release, 3936), // +s
OOVPA_TABLE_XREF(X_DirectSound_CDirectSoundVoice_SetFormat, 4627),
OOVPA_TABLE_XREF(X_DirectSound_CDirectSoundBuffer_SetFormat, 4627),
OOVPA_TABLE_PATCH(X_IDirectSoundBuffer_SetFormat, 4627, IDirectSoundBuffer8_SetFormat),
OOVPA_TABLE_XREF(CDirectSoundStream_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(X_DirectSound_CDirectSound_EnableHeadphones, 4627),
OOVPA_TABLE_PATCH(EmuIDirectSound_EnableHeadphones, 4627, IDirectSound_EnableHeadphones),
// OOVPA_TABLE_XREF(CDirectSoundVoice_SetHeadroom, 4627),
// OOVPA_TABLE_PATCH(CDirectSoundStream_SetHeadroom, 4627, IDirectSoundStream_SetHeadroom),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_AddRef, 3936),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_GetOutputLevels, 4627),
OOVPA_TABLE_PATCH(IDirectSound_GetOutputLevels, 4627, IDirectSound8_GetOutputLevels),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetAllParameters, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetAllParameters, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer8_SetAllParameters, 4627, IDirectSound8_SetAllParameters), // Use that for now. Okay, it's your call pal...
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Pause, 4928),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_Pause, 4928),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Pause, 4928, IDirectSoundBuffer8_Pause),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_GetStatus, 4721),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_GetStatus, 4721),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_GetStatus, 4721, IDirectSoundBuffer8_GetStatus),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetMixBins, 4627, CDirectSoundStream_SetMixBins),
OOVPA_TABLE_XREF(DirectSound_CMcpxVoiceClient_SetEG, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetEG, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetEG, 4627, CDirectSoundStream_SetEG),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetEG, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetEG, 4627, IDirectSoundBuffer8_SetEG),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundStream_FlushEx, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundStream_FlushEx, 4627),
OOVPA_TABLE_ENTRY(XAudioDownloadEffectsImage, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMode, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMode, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMode, 4627),
OOVPA_TABLE_XREF(DirectSound_CMcpxVoiceClient_SetFilter, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetFilter, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetFilter, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetFilter, 4627, CDirectSoundStream_SetFilter),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetFilter, 4627, IDirectSoundBuffer8_SetFilter),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_PlayEx, 4361),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_PlayEx, 4361, IDirectSoundBuffer8_PlayEx),
OOVPA_TABLE_XREF(CMcpxBuffer_Stop2, 4361),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_StopEx, 4361),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_StopEx, 4361, IDirectSoundBuffer8_StopEx),
OOVPA_TABLE_XREF(CDirectSound_SetVelocity, 4432),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetPosition, 4432),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetPitch, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetPitch, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPitch, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetHeadroom, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetHeadroom, 4627, IDirectSoundStream_SetHeadroom),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetOutputBuffer, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetOutputBuffer, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetOutputBuffer, 4627, IDirectSoundBuffer8_SetOutputBuffer),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetOutputBuffer, 4627, CDirectSoundStream_SetOutputBuffer),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetRolloffCurve, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetRolloffCurve, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundStream_SetRolloffCurve, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetRolloffCurve, 4627, IDirectSoundBuffer8_SetRolloffCurve),
OOVPA_TABLE_ENTRY(XFileCreateMediaObjectEx, 4627),
OOVPA_TABLE_ENTRY(XWaveFileCreateMediaObject, 4627),
// OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627),
// OOVPA_TABLE_XREF(IDirectSoundBuffer_SetNotificationPositions, 4627),
OOVPA_TABLE_XREF(CMcpxVoiceClient_SetLFO, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetLFO, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetLFO, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetLFO, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetPitch, 4627, CDirectSoundStream_SetPitch),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetVolume, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetVolume, 4627),
REGISTER_OOVPA(DirectSoundCreate, 4361, PATCH),
REGISTER_OOVPA(DirectSoundDoWork, 4627, PATCH),
REGISTER_OOVPA(DirectSoundGetSampleTime, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundBuffer, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetPlayRegion, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPlayRegion, 4361, PATCH),
REGISTER_OOVPA(CDirectSoundBuffer_SetLoopRegion, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLoopRegion, 4361, PATCH),
REGISTER_OOVPA(CDirectSound_SetI3DL2Listener, 4432, XREF),
REGISTER_OOVPA(IDirectSound8_SetI3DL2Listener, 4432, PATCH),
REGISTER_OOVPA(CDirectSound_SetMixBinHeadroom, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetMixBinHeadroom, 4627, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_SetHeadroomA, 4928, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetHeadroom, 4928, PATCH),
REGISTER_OOVPA(CDirectSound_SetVelocity, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetVelocity, 3936, PATCH),
REGISTER_OOVPA(CDirectSound_SetAllParametersA, 4627, XREF),
REGISTER_OOVPA(CDirectSound_SetAllParametersA, 4721, XREF),
REGISTER_OOVPA(CDirectSound_SetAllParametersA, 4831, XREF),
REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParameters, 4928, XREF),
REGISTER_OOVPA(IDirectSound8_SetAllParameters, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBins, 4361, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBins, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBins, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBins, 4432, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBinVolumes, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_SetPositionA, 4627, XREF),
REGISTER_OOVPA(CDirectSound_SetPositionA, 4432, XREF), // TODO: Find a cure for laziness...
REGISTER_OOVPA(IDirectSound8_SetPosition, 3936, PATCH),
REGISTER_OOVPA(DirectSoundCreateBuffer, 4627, PATCH),
REGISTER_OOVPA(IDirectSound8_CreateSoundBuffer, 4627, PATCH),
REGISTER_OOVPA(IDirectSound8_AddRef, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetFrequency, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetFrequency, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFrequency, 4627, PATCH),
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4627, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetVolume, 4627, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_LockA, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Lock, 3936, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundStream, 4361, XREF),
REGISTER_OOVPA(IDirectSound8_CreateStream, 3936, PATCH),
REGISTER_OOVPA(DirectSoundCreateStream, 4361, PATCH),
REGISTER_OOVPA(CMcpxStream_Pause, 4361, XREF),
REGISTER_OOVPA(CMcpxStream_Pause, 4928, XREF),
REGISTER_OOVPA(CDirectSoundStream_Pause, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetBufferData, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4627, XREF),
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4721, XREF),
// REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4928, XREF)
REGISTER_OOVPA(CMcpxBuffer_GetStatusB, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_GetStatus, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetStatus, 4627, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetCurrentPosition, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_GetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_GetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetCurrentPosition, 3936, PATCH),
REGISTER_OOVPA(CDirectSound_GetSpeakerConfig, 4627, PATCH),
REGISTER_OOVPA(CMcpxBuffer_Play, 4361, XREF),
REGISTER_OOVPA(CMcpxBuffer_Play, 4721, XREF),
REGISTER_OOVPA(CMcpxBuffer_Play, 4928, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_Play, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Play, 4361, PATCH),
REGISTER_OOVPA(IDirectSound8_Release, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_DownloadEffectsImage, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_SetOrientation, 3936, PATCH),
REGISTER_OOVPA(CDirectSound_SetDistanceFactorA, 4531, XREF),
REGISTER_OOVPA(CDirectSound_SetDistanceFactorA, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetDistanceFactor, 4432, PATCH),
REGISTER_OOVPA(CDirectSound_SetRolloffFactor, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetRolloffFactor, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_SetDopplerFactor, 4531, XREF),
REGISTER_OOVPA(CDirectSound_SetDopplerFactor, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetDopplerFactor, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_CommitDeferredSettings, 4432, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetMaxDistance, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMaxDistance, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMaxDistance, 4432, ALIAS, IDirectSoundBuffer_SetMaxDistance),
REGISTER_OOVPA(CDirectSoundVoice_SetMinDistance, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMinDistance, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMinDistance, 4432, ALIAS, IDirectSoundBuffer_SetMinDistance),
REGISTER_OOVPA(CDirectSoundVoice_SetRolloffFactor, 4627, XREF), // s+
REGISTER_OOVPA(CDirectSoundBuffer_SetRolloffFactor, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetRolloffFactor, 4627, ALIAS, IDirectSoundBuffer_SetRolloffFactor),
REGISTER_OOVPA(CDirectSoundVoice_SetDistanceFactor, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetDistanceFactor, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetDistanceFactor, 4627, ALIAS, IDirectSoundBuffer_SetDistanceFactor),
REGISTER_OOVPA(CDirectSoundVoice_SetConeAngles, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetConeAngles, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetConeAngles, 4627, ALIAS, IDirectSoundBuffer_SetConeAngles),
REGISTER_OOVPA(CDirectSoundVoice_SetConeOrientation, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetConeOrientation, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetConeOrientation, 4627, ALIAS, IDirectSoundBuffer_SetConeOrientation),
REGISTER_OOVPA(CDirectSoundVoice_SetConeOutsideVolume, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetConeOutsideVolume, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetConeOutsideVolume, 4627, ALIAS, IDirectSoundBuffer_SetConeOutsideVolume),
REGISTER_OOVPA(CDirectSoundVoice_SetPosition, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetPosition, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPosition, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetVelocity, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetVelocity, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVelocity, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetDopplerFactor, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetDopplerFactor, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetDopplerFactor, 4627, ALIAS, IDirectSoundBuffer_SetDopplerFactor),
REGISTER_OOVPA(CDirectSoundVoice_SetI3DL2Source, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetI3DL2Source, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetI3DL2Source, 4627, ALIAS, IDirectSoundBuffer_SetI3DL2Source),
REGISTER_OOVPA(IDirectSoundBuffer8_Stop, 4627, ALIAS, IDirectSoundBuffer_Stop),
REGISTER_OOVPA(IDirectSoundBuffer8_Release, 3936, PATCH), // +s
REGISTER_OOVPA(X_DirectSound_CDirectSoundVoice_SetFormat, 4627, XREF),
REGISTER_OOVPA(X_DirectSound_CDirectSoundBuffer_SetFormat, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFormat, 4627, ALIAS, X_IDirectSoundBuffer_SetFormat),
REGISTER_OOVPA(CDirectSoundStream_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(X_DirectSound_CDirectSound_EnableHeadphones, 4627, XREF),
REGISTER_OOVPA(IDirectSound_EnableHeadphones, 4627, ALIAS, EmuIDirectSound_EnableHeadphones),
// REGISTER_OOVPA(CDirectSoundVoice_SetHeadroom, 4627, XREF),
// REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 4627, ALIAS, CDirectSoundStream_SetHeadroom),
REGISTER_OOVPA(IDirectSoundBuffer8_AddRef, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_GetOutputLevels, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_GetOutputLevels, 4627, ALIAS, IDirectSound_GetOutputLevels),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetAllParameters, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetAllParameters, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetAllParameters, 4627, ALIAS, IDirectSoundBuffer8_SetAllParameters), // Use that for now. Okay, it's your call pal...
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Pause, 4928, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Pause, 4928, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Pause, 4928, ALIAS, IDirectSoundBuffer_Pause),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_GetStatus, 4721, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetStatus, 4721, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetStatus, 4721, ALIAS, IDirectSoundBuffer_GetStatus),
REGISTER_OOVPA(CDirectSoundStream_SetMixBins, 4627, ALIAS, DirectSound_CDirectSoundStream_SetMixBins),
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetEG, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetEG, 4627, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetEG, 4627, ALIAS, DirectSound_CDirectSoundStream_SetEG),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetEG, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetEG, 4627, ALIAS, IDirectSoundBuffer_SetEG),
REGISTER_OOVPA(DirectSound_CDirectSoundStream_FlushEx, 4627, XREF),
REGISTER_OOVPA(IDirectSoundStream_FlushEx, 4627, PATCH),
REGISTER_OOVPA(XAudioDownloadEffectsImage, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMode, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMode, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMode, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetFilter, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFilter, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFilter, 4627, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetFilter, 4627, ALIAS, DirectSound_CDirectSoundStream_SetFilter),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFilter, 4627, ALIAS, IDirectSoundBuffer_SetFilter),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_PlayEx, 4361, ALIAS, IDirectSoundBuffer_PlayEx),
REGISTER_OOVPA(CMcpxBuffer_Stop2, 4361, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_StopEx, 4361, ALIAS, IDirectSoundBuffer_StopEx),
REGISTER_OOVPA(CDirectSound_SetVelocity, 4432, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetPosition, 4432, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPitch, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 4627, XREF),
REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 4627, ALIAS, DirectSound_CDirectSoundStream_SetHeadroom),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetOutputBuffer, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetOutputBuffer, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetOutputBuffer, 4627, ALIAS, IDirectSoundBuffer_SetOutputBuffer),
REGISTER_OOVPA(CDirectSoundStream_SetOutputBuffer, 4627, ALIAS, DirectSound_CDirectSoundStream_SetOutputBuffer),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffCurve, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffCurve, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetRolloffCurve, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetRolloffCurve, 4627, ALIAS, IDirectSoundBuffer_SetRolloffCurve),
REGISTER_OOVPA(XFileCreateMediaObjectEx, 4627, PATCH),
REGISTER_OOVPA(XWaveFileCreateMediaObject, 4627, PATCH),
// REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, XREF),
// REGISTER_OOVPA(IDirectSoundBuffer_SetNotificationPositions, 4627, XREF),
REGISTER_OOVPA(CMcpxVoiceClient_SetLFO, 4627, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetLFO, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetLFO, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLFO, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4627, ALIAS, DirectSound_CDirectSoundStream_SetPitch),
REGISTER_OOVPA(CDirectSoundBuffer_SetVolume, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVolume, 4627, PATCH),
};
// ******************************************************************

View File

@ -58,7 +58,7 @@ OOVPA_XREF(IDirectSound8_EnableHeadphones, 5233, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSENABLEHEADPHONES }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSENABLEHEADPHONES ), // (Offset,Value)-Pair #1
// IDirectSound8_EnableHeadphones+0x0A : add eax, 0xFFFFFFF8
{ 0x0A, 0x83 }, // (Offset,Value)-Pair #2
@ -106,7 +106,7 @@ OOVPA_XREF(IDirectSoundBuffer8_StopEx, 5233, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x11, XREF_DSFLUSHEX2 }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSFLUSHEX2 ), // (Offset,Value)-Pair #1
{ 0x00, 0xFF }, // (Offset,Value)-Pair #2
{ 0x03, 0x10 }, // (Offset,Value)-Pair #3
@ -175,7 +175,7 @@ OOVPA_XREF(CDirectSound_SynchPlayback, 5233, 10,
XREF_DSSYNCHPLAYBACKA,
XRefOne)
{ 0x08, XREF_DSSYNCHPLAYBACKB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x08, XREF_DSSYNCHPLAYBACKB ), // (Offset,Value)-Pair #1
// CDirectSound_SynchPlayback+0x00 : mov eax, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -201,7 +201,7 @@ OOVPA_XREF(IDirectSound8_SynchPlayback, 5233, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x11, XREF_DSSYNCHPLAYBACKA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSSYNCHPLAYBACKA ), // (Offset,Value)-Pair #1
// IDirectSound8_SynchPlayback+0x06 : add eax, 0xFFFFFFF8
{ 0x06, 0x83 }, // (Offset,Value)-Pair #2
@ -261,7 +261,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMode, 5233, 8,
XREF_DSBUFFERSETMODEA,
XRefOne)
{ 0x36, XREF_DSBUFFERSETMODEB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x36, XREF_DSBUFFERSETMODEB ), // (Offset,Value)-Pair #1
{ 0x01, 0xE8 }, // (Offset,Value)-Pair #2
{ 0x15, 0x0B }, // (Offset,Value)-Pair #3
@ -280,7 +280,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMode, 5233, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSBUFFERSETMODEA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSBUFFERSETMODEA ), // (Offset,Value)-Pair #1
// IDirectSound8_EnableHeadphones+0x0E : add eax, 0xFFFFFFE4
{ 0x0E, 0x83 }, // (Offset,Value)-Pair #2
@ -304,7 +304,7 @@ OOVPA_XREF(CDirectSoundVoice_SetVolume, 5233, 8,
XREF_DirectSound_CDirectSoundVoice_SetVolume,
XRefOne)
{ 0x15, XREF_DSSTREAMSETVOLUME },
XREF_ENTRY( 0x15, XREF_DSSTREAMSETVOLUME ),
{ 0x02, 0x24 },
{ 0x06, 0x10 },
@ -323,7 +323,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetVolume, 5233, 8,
XREF_DirectSound_CDirectSoundBuffer_SetVolume,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -342,7 +342,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetVolume, 5233, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -361,7 +361,7 @@ OOVPA_XREF(CDirectSoundStream_SetVolume, 5233, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -381,7 +381,7 @@ OOVPA_XREF(CDirectSoundStream_SetFrequency, 5233, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSBUFFERSETFREQUENCYB },
XREF_ENTRY( 0x36, XREF_DSBUFFERSETFREQUENCYB ),
{ 0x0E, 0xB6 },
{ 0x15, 0x0B },
@ -400,7 +400,7 @@ OOVPA_XREF(CDirectSoundStream_SetMixBins, 5233, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINSB ),
{ 0x0E, 0xB6 },
{ 0x15, 0x0B },
@ -437,7 +437,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetRolloffCurve, 5233, 8,
XREF_DSBUFFERSETROLLOFFCURVE,
XRefOne)
{ 0x3A, XREF_DSVOICESETROLLOFFCURVE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETROLLOFFCURVE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -456,7 +456,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetRolloffCurve, 5233, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETROLLOFFCURVE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETROLLOFFCURVE ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -492,7 +492,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMaxDistance, 5344, 11,
XRefOne)
// CDirectSoundBuffer_SetMaxDistance+0x39 : call [CDirectSoundVoice::SetMaxDistance]
{ 0x3A, XREF_DSVOICESETMAXDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMAXDISTANCE ),
{ 0x00, 0x56 },
// CDirectSoundBuffer_SetMaxDistance+0x21 : mov eax, 80004005h
@ -520,7 +520,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMaxDistance, 5344, 11,
XRefOne)
// IDirectSoundBuffer_SetMaxDistance+0x1C : call [CDirectSoundBuffer::SetMaxDistance]
{ 0x1D, XREF_DSBUFFERSETMAXDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMAXDISTANCE ),
{ 0x00, 0xFF },
// IDirectSoundBuffer_SetMaxDistance+0x04 : fld [esp+4+arg_4]
@ -564,7 +564,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMinDistance, 5344, 11,
XRefOne)
// CDirectSoundBuffer_SetMinDistance+0x39 : call [CDirectSoundVoice::SetMinDistance]
{ 0x3A, XREF_DSVOICESETMINDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMINDISTANCE ),
{ 0x00, 0x56 },
// CDirectSoundBuffer_SetMinDistance+0x21 : mov eax, 80004005h
@ -591,7 +591,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMinDistance, 5344, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x3E, XREF_DSVOICESETROLLOFFCURVE },
XREF_ENTRY( 0x3E, XREF_DSVOICESETROLLOFFCURVE ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -611,7 +611,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 5344, 11,
XRefOne)
// IDirectSoundBuffer_SetMinDistance+0x1C : call [CDirectSoundBuffer::SetMinDistance]
{ 0x1D, XREF_DSBUFFERSETMINDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMINDISTANCE ),
{ 0x00, 0xFF },
// IDirectSoundBuffer_SetMinDistance+0x04 : fld [esp+4+arg_4]
@ -656,7 +656,7 @@ OOVPA_XREF(IDirectSound_SetI3DL2Listener, 5344, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETI3DL2LISTENER },
XREF_ENTRY( 0x19, XREF_DSSETI3DL2LISTENER ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -695,7 +695,7 @@ OOVPA_XREF(IDirectSound_SetRolloffFactor, 5344, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_SETROLLOFFFACTORA },
XREF_ENTRY( 0x1D, XREF_SETROLLOFFFACTORA ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -731,7 +731,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetDistanceFactor, 5344, 8,
XREF_DSBUFFERSETDISTANCEFACTOR,
XRefOne)
{ 0x3A, XREF_DSVOICESETDISTANCEFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETDISTANCEFACTOR ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -750,7 +750,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetDistanceFactor, 5344, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -788,7 +788,7 @@ OOVPA_XREF(IDirectSound_SetDistanceFactor, 5344, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_SETDISTANCEFACTORA },
XREF_ENTRY( 0x1D, XREF_SETDISTANCEFACTORA ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -827,7 +827,7 @@ OOVPA_XREF(IDirectSound_SetDopplerFactor, 5344, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_SETDOPPLERFACTOR },
XREF_ENTRY( 0x1D, XREF_SETDOPPLERFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -843,114 +843,114 @@ OOVPA_END;
// ******************************************************************
OOVPATable DSound_5233[] = {
OOVPA_TABLE_ENTRY(DirectSoundCreate, 4361),
OOVPA_TABLE_ENTRY(DirectSoundDoWork, 4627),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundBuffer, 4627),
OOVPA_TABLE_XREF(CMcpxAPU_SynchPlayback, 5233),
OOVPA_TABLE_XREF(CDirectSound_SynchPlayback, 5233),
OOVPA_TABLE_ENTRY(IDirectSound8_SynchPlayback, 5233),
OOVPA_TABLE_XREF(CMcpxStream_Pause, 5233),
OOVPA_TABLE_ENTRY(CDirectSoundStream_Pause, 4361),
OOVPA_TABLE_XREF(CDirectSound_SetI3DL2Listener, 4432),
OOVPA_TABLE_ENTRY(IDirectSound8_SetI3DL2Listener, 4432),
OOVPA_TABLE_XREF(CDirectSound_SetVelocity, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetVelocity, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBins, 4361),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBins, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBins, 4432),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBins, 4432),
OOVPA_TABLE_ENTRY(CDirectSoundStream_SetMixBins, 5233),
OOVPA_TABLE_XREF(CDirectSound_SetPositionA, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetPosition, 3936),
OOVPA_TABLE_ENTRY(DirectSoundCreateBuffer, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateSoundBuffer, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetFrequency, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetFrequency, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetFrequency, 4627),
OOVPA_TABLE_ENTRY(CDirectSoundStream_SetFrequency, 5233),
OOVPA_TABLE_XREF(CMcpxVoiceClient_SetVolume, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetVolume, 5233),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetVolume, 5233),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetVolume, 5233),
OOVPA_TABLE_ENTRY(CDirectSoundStream_SetVolume, 4627),
OOVPA_TABLE_XREF(IDirectSoundBuffer8_LockA, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Lock, 3936),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundStream, 4361),
OOVPA_TABLE_ENTRY(DirectSoundCreateStream, 4361),
OOVPA_TABLE_ENTRY(IDirectSound8_Release, 3936),
OOVPA_TABLE_XREF(CMcpxBuffer_SetBufferData, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetBufferData, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetBufferData, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_GetStatusB, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_GetStatus, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_GetStatus, 4627),
OOVPA_TABLE_XREF(CMcpxBuffer_GetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_Play, 4928),
OOVPA_TABLE_XREF(CDirectSoundBuffer_Play, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Play, 4361),
OOVPA_TABLE_XREF(CDirectSoundStream_FlushEx, 5233),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_StopEx, 5233),
OOVPA_TABLE_XREF(CDirectSound_EnableHeadphones, 5233),
OOVPA_TABLE_ENTRY(IDirectSound8_EnableHeadphones, 5233),
OOVPA_TABLE_ENTRY(IDirectSound8_DownloadEffectsImage, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_SetOrientation, 3936),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetDistanceFactor, 5344),
OOVPA_TABLE_PATCH(IDirectSound_SetDistanceFactor, 5344, IDirectSound8_SetDistanceFactor),
OOVPA_TABLE_XREF(CDirectSound_SetDistanceFactorA, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDistanceFactor, 4432),
OOVPA_TABLE_XREF(CDirectSound_SetRolloffFactor, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetRolloffFactor, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetDopplerFactor, 5344),
OOVPA_TABLE_PATCH(IDirectSound_SetDopplerFactor, 5344, IDirectSound8_SetDopplerFactor),
OOVPA_TABLE_XREF(CDirectSound_SetDopplerFactor, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDopplerFactor, 4627),
OOVPA_TABLE_ENTRY(CDirectSound_CommitDeferredSettings, 4432),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMaxDistance, 5344),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMaxDistance, 5344),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMaxDistance, 5344, IDirectSoundBuffer8_SetMaxDistance),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMinDistance, 5344),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMinDistance, 5344),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMinDistance, 5344, IDirectSoundBuffer8_SetMinDistance),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMinDistance, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMinDistance, 4432),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMinDistance, 4432, IDirectSoundBuffer8_SetMinDistance),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMaxDistance, 4432),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMaxDistance, 4432),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMaxDistance, 4432, IDirectSoundBuffer8_SetMaxDistance),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetPosition, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetPosition, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPosition, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetVelocity, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetVelocity, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetVelocity, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetI3DL2Source, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetI3DL2Source, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetI3DL2Source, 4627, IDirectSoundBuffer8_SetI3DL2Source),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Stop, 4627, IDirectSoundBuffer8_Stop),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Release, 3936),
OOVPA_TABLE_PATCH(CDirectSoundStream_SetVolume, 5233, IDirectSoundStream_SetVolume), // (This is actually the XREF we are using)
OOVPA_TABLE_XREF(X_DirectSound_CDirectSoundVoice_SetFormat, 5233),
OOVPA_TABLE_XREF(X_DirectSound_CDirectSoundBuffer_SetFormat, 4627),
OOVPA_TABLE_PATCH(X_IDirectSoundBuffer_SetFormat, 4627, IDirectSoundBuffer8_SetFormat),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMode, 5233),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMode, 5233),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMode, 5233),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetRolloffCurve, 5233),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetRolloffCurve, 5233),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetRolloffCurve, 5233),
OOVPA_TABLE_ENTRY(IDirectSound8_AddRef, 3936),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetI3DL2Listener, 5344),
OOVPA_TABLE_PATCH(IDirectSound_SetI3DL2Listener, 5344, IDirectSound8_SetI3DL2Listener),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetRolloffFactor, 5344),
OOVPA_TABLE_PATCH(IDirectSound_SetRolloffFactor, 5344, IDirectSound8_SetRolloffFactor),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetLoopRegion, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetLoopRegion, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_SetCurrentPosition, 4361),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetCurrentPosition, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetCurrentPosition, 4361),
// OOVPA_TABLE_XREF(CDirectSoundVoice_SetDistanceFactor, 5558), // Add when needed...
// OOVPA_TABLE_XREF(CDirectSoundBuffer_SetDistanceFactor, 5558), // Add when needed...
// OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetDistanceFactor, 5558), // Add when needed...
REGISTER_OOVPA(DirectSoundCreate, 4361, PATCH),
REGISTER_OOVPA(DirectSoundDoWork, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundBuffer, 4627, XREF),
REGISTER_OOVPA(CMcpxAPU_SynchPlayback, 5233, XREF),
REGISTER_OOVPA(CDirectSound_SynchPlayback, 5233, XREF),
REGISTER_OOVPA(IDirectSound8_SynchPlayback, 5233, PATCH),
REGISTER_OOVPA(CMcpxStream_Pause, 5233, XREF),
REGISTER_OOVPA(CDirectSoundStream_Pause, 4361, PATCH),
REGISTER_OOVPA(CDirectSound_SetI3DL2Listener, 4432, XREF),
REGISTER_OOVPA(IDirectSound8_SetI3DL2Listener, 4432, PATCH),
REGISTER_OOVPA(CDirectSound_SetVelocity, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetVelocity, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBins, 4361, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBins, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBins, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBins, 4432, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetMixBins, 5233, PATCH),
REGISTER_OOVPA(CDirectSound_SetPositionA, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetPosition, 3936, PATCH),
REGISTER_OOVPA(DirectSoundCreateBuffer, 4627, PATCH),
REGISTER_OOVPA(IDirectSound8_CreateSoundBuffer, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetFrequency, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetFrequency, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFrequency, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetFrequency, 5233, PATCH),
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4627, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetVolume, 5233, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetVolume, 5233, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVolume, 5233, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetVolume, 4627, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_LockA, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Lock, 3936, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundStream, 4361, XREF),
REGISTER_OOVPA(DirectSoundCreateStream, 4361, PATCH),
REGISTER_OOVPA(IDirectSound8_Release, 3936, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetBufferData, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_GetStatusB, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_GetStatus, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetStatus, 4627, PATCH),
REGISTER_OOVPA(CMcpxBuffer_GetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(CMcpxBuffer_Play, 4928, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_Play, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Play, 4361, PATCH),
REGISTER_OOVPA(CDirectSoundStream_FlushEx, 5233, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_StopEx, 5233, PATCH),
REGISTER_OOVPA(CDirectSound_EnableHeadphones, 5233, XREF),
REGISTER_OOVPA(IDirectSound8_EnableHeadphones, 5233, PATCH),
REGISTER_OOVPA(IDirectSound8_DownloadEffectsImage, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_SetOrientation, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_SetDistanceFactor, 5344, XREF),
REGISTER_OOVPA(IDirectSound8_SetDistanceFactor, 5344, ALIAS, IDirectSound_SetDistanceFactor),
REGISTER_OOVPA(CDirectSound_SetDistanceFactorA, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetDistanceFactor, 4432, PATCH),
REGISTER_OOVPA(CDirectSound_SetRolloffFactor, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetRolloffFactor, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 5344, XREF),
REGISTER_OOVPA(IDirectSound8_SetDopplerFactor, 5344, ALIAS, IDirectSound_SetDopplerFactor),
REGISTER_OOVPA(CDirectSound_SetDopplerFactor, 4627, XREF),
REGISTER_OOVPA(IDirectSound8_SetDopplerFactor, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_CommitDeferredSettings, 4432, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetMaxDistance, 5344, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMaxDistance, 5344, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMaxDistance, 5344, ALIAS, IDirectSoundBuffer_SetMaxDistance),
REGISTER_OOVPA(CDirectSoundVoice_SetMinDistance, 5344, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMinDistance, 5344, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMinDistance, 5344, ALIAS, IDirectSoundBuffer_SetMinDistance),
REGISTER_OOVPA(CDirectSoundVoice_SetMinDistance, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMinDistance, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMinDistance, 4432, ALIAS, IDirectSoundBuffer_SetMinDistance),
REGISTER_OOVPA(CDirectSoundVoice_SetMaxDistance, 4432, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMaxDistance, 4432, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMaxDistance, 4432, ALIAS, IDirectSoundBuffer_SetMaxDistance),
REGISTER_OOVPA(CDirectSoundVoice_SetPosition, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetPosition, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPosition, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetVelocity, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetVelocity, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVelocity, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetI3DL2Source, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetI3DL2Source, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetI3DL2Source, 4627, ALIAS, IDirectSoundBuffer_SetI3DL2Source),
REGISTER_OOVPA(IDirectSoundBuffer8_Stop, 4627, ALIAS, IDirectSoundBuffer_Stop),
REGISTER_OOVPA(IDirectSoundBuffer8_Release, 3936, PATCH),
REGISTER_OOVPA(IDirectSoundStream_SetVolume, 5233, ALIAS, CDirectSoundStream_SetVolume), // (This is actually the XREF we are using)
REGISTER_OOVPA(X_DirectSound_CDirectSoundVoice_SetFormat, 5233, XREF),
REGISTER_OOVPA(X_DirectSound_CDirectSoundBuffer_SetFormat, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFormat, 4627, ALIAS, X_IDirectSoundBuffer_SetFormat),
REGISTER_OOVPA(CDirectSoundVoice_SetMode, 5233, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMode, 5233, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMode, 5233, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetRolloffCurve, 5233, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetRolloffCurve, 5233, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetRolloffCurve, 5233, PATCH),
REGISTER_OOVPA(IDirectSound8_AddRef, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_SetI3DL2Listener, 5344, XREF),
REGISTER_OOVPA(IDirectSound8_SetI3DL2Listener, 5344, ALIAS, IDirectSound_SetI3DL2Listener),
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 5344, XREF),
REGISTER_OOVPA(IDirectSound8_SetRolloffFactor, 5344, ALIAS, IDirectSound_SetRolloffFactor),
REGISTER_OOVPA(CDirectSoundBuffer_SetLoopRegion, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLoopRegion, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetCurrentPosition, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetCurrentPosition, 4361, PATCH),
// REGISTER_OOVPA(CDirectSoundVoice_SetDistanceFactor, 5558, XREF), // Add when needed...
// REGISTER_OOVPA(CDirectSoundBuffer_SetDistanceFactor, 5558, XREF), // Add when needed...
// REGISTER_OOVPA(IDirectSoundBuffer8_SetDistanceFactor, 5558, PATCH), // Add when needed...
};
// ******************************************************************

View File

@ -190,7 +190,7 @@ OOVPA_XREF(IDirectSound8_SetMixBinHeadroom, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETMIXBINHEADROOMA },
XREF_ENTRY( 0x19, XREF_DSSETMIXBINHEADROOMA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -228,7 +228,7 @@ OOVPA_XREF(IDirectSound8_SetI3DL2Listener, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETI3DL2LISTENER },
XREF_ENTRY( 0x19, XREF_DSSETI3DL2LISTENER ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -265,7 +265,7 @@ OOVPA_XREF(DirectSound_CHRTFSource_SetFullHRTF5Channel, 5558, 9,
XREF_DirectSound_CHRTFSource_SetFullHRTF5Channel,
XRefOne)
{ 0x4C, XREF_DirectSound_CFullHRTFSource_GetCenterVolume },
XREF_ENTRY( 0x4C, XREF_DirectSound_CFullHRTFSource_GetCenterVolume ),
{ 0x14, 0xC7 },
{ 0x1E, 0xC7 },
@ -285,7 +285,7 @@ OOVPA_XREF(DirectSoundUseFullHRTF, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x0A, XREF_DirectSound_CHRTFSource_SetFullHRTF5Channel },
XREF_ENTRY( 0x0A, XREF_DirectSound_CHRTFSource_SetFullHRTF5Channel ),
{ 0x06, 0x0F },
{ 0x07, 0xB6 },
@ -335,7 +335,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetBufferData, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETBUFFERDATA },
XREF_ENTRY( 0x19, XREF_DSSETBUFFERDATA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -372,7 +372,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetCurrentPosition, 5558, 8,
XREF_SETCURRENTPOSITION2,
XRefOne)
{ 0x35, XREF_SETCURRENTPOSITION },
XREF_ENTRY( 0x35, XREF_SETCURRENTPOSITION ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -391,7 +391,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetCurrentPosition, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_SETCURRENTPOSITION2 },
XREF_ENTRY( 0x15, XREF_SETCURRENTPOSITION2 ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -428,7 +428,7 @@ OOVPA_XREF(CDirectSoundVoice_SetLFO, 5558, 7,
XREF_DirectSound_CDirectSoundVoice_SetLFO,
XRefOne)
{ 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetLFO },
XREF_ENTRY( 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetLFO ),
{ 0x01, 0x44 },
{ 0x04, 0xFF },
@ -446,7 +446,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetLFO, 5558, 8,
XREF_DirectSound_CDirectSoundBuffer_SetLFO,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetLFO },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetLFO ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -465,7 +465,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetLFO, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetLFO },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetLFO ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -531,7 +531,7 @@ OOVPA_XREF(CDirectSoundVoice_SetMixBins, 5558, 8,
XREF_DSSETMIXBINSB,
XRefOne)
{ 0x0D, XREF_DSSETMIXBINSC },
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINSC ),
{ 0x02, 0x74 },
{ 0x06, 0x74 },
@ -550,7 +550,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMixBins, 5558, 8,
XREF_DSSETMIXBINSA,
XRefOne)
{ 0x32, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x32, XREF_DSSETMIXBINSB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -569,7 +569,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMixBins, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSSETMIXBINSA },
XREF_ENTRY( 0x15, XREF_DSSETMIXBINSA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -606,7 +606,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPlayRegion, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSBUFFERSETPLAYREGIONA },
XREF_ENTRY( 0x19, XREF_DSBUFFERSETPLAYREGIONA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -643,7 +643,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetLoopRegion, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -681,7 +681,7 @@ OOVPA_XREF(CDirectSoundBuffer_Play, 5558, 9,
XREF_DSOUNDPLAY2,
XRefZero) // TODO : Use XRefOne here if XREF_DSOUNDPLAY is enabled below
//{ 0x35, XREF_DSOUNDPLAY },
//XREF_ENTRY( 0x35, XREF_DSOUNDPLAY ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -702,7 +702,7 @@ OOVPA_XREF(IDirectSoundBuffer8_Play, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSOUNDPLAY2 },
XREF_ENTRY( 0x1D, XREF_DSOUNDPLAY2 ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -766,7 +766,7 @@ OOVPA_XREF(XAudioCreateAdpcmFormat, 5558, 2,
XRefNoSaveIndex,
XRefOne)
{ 0x01, XREF_DirectSound_WaveFormat_CreateXboxAdpcmFormat },
XREF_ENTRY( 0x01, XREF_DirectSound_WaveFormat_CreateXboxAdpcmFormat ),
{ 0x00, 0xE9 },
OOVPA_END;
@ -796,7 +796,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetFormat, 5558, 8,
XREF_DirectSound_CDirectSoundBuffer_SetFormat,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -815,7 +815,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetFormat, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -852,7 +852,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetConeAngles, 5558, 8,
XREF_DirectSound_CDirectSoundBuffer_SetConeAngles,
XRefOne)
{ 0x3A, XREF_DirectSound_CDirectSoundVoice_SetConeAngles },
XREF_ENTRY( 0x3A, XREF_DirectSound_CDirectSoundVoice_SetConeAngles ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -871,7 +871,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetConeAngles, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DirectSound_CDirectSoundBuffer_SetConeAngles },
XREF_ENTRY( 0x1D, XREF_DirectSound_CDirectSoundBuffer_SetConeAngles ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -908,7 +908,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMaxDistance, 5558, 11,
XRefOne)
// CDirectSoundBuffer_SetMaxDistance+0x39 : call [CDirectSoundVoice::SetMaxDistance]
{ 0x3A, XREF_DSVOICESETMAXDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMAXDISTANCE ),
{ 0x00, 0x56 },
// CDirectSoundBuffer_SetMaxDistance+0x21 : mov eax, 80004005h
@ -936,7 +936,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMaxDistance, 5558, 11,
XRefOne)
// IDirectSoundBuffer_SetMaxDistance+0x1C : call [CDirectSoundBuffer::SetMaxDistance]
{ 0x1D, XREF_DSBUFFERSETMAXDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMAXDISTANCE ),
{ 0x00, 0xFF },
// IDirectSoundBuffer_SetMaxDistance+0x04 : fld [esp+4+arg_4]
@ -981,7 +981,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMinDistance, 5558, 11,
XRefOne)
// CDirectSoundBuffer_SetMinDistance+0x39 : call [CDirectSoundVoice::SetMinDistance]
{ 0x3A, XREF_DSVOICESETMINDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMINDISTANCE ),
{ 0x00, 0x56 },
// CDirectSoundBuffer_SetMinDistance+0x21 : mov eax, 80004005h
@ -1008,7 +1008,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMinDistance, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x3E, XREF_DSVOICESETROLLOFFCURVE },
XREF_ENTRY( 0x3E, XREF_DSVOICESETROLLOFFCURVE ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -1028,7 +1028,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 5558, 11,
XRefOne)
// IDirectSoundBuffer_SetMinDistance+0x1C : call [CDirectSoundBuffer::SetMinDistance]
{ 0x1D, XREF_DSBUFFERSETMINDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMINDISTANCE ),
{ 0x00, 0xFF },
// IDirectSoundBuffer_SetMinDistance+0x04 : fld [esp+4+arg_4]
@ -1071,7 +1071,7 @@ OOVPA_XREF(CDirectSoundVoice_SetAllParameters, 5558, 14,
XREF_DirectSound_CDirectSoundVoice_SetAllParameters,
XRefOne)
{ 0x2A, XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings },
XREF_ENTRY( 0x2A, XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings ),
{ 0x00, 0x8B },
{ 0x01, 0x4c },
@ -1096,7 +1096,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetAllParameters, 5558, 8,
XREF_DirectSound_CDirectSoundBuffer_SetAllParameters,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1115,7 +1115,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetAllParameters, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1152,7 +1152,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetPosition, 5558, 9,
XREF_DSBUFFERSETPOSITION,
XRefOne)
{ 0x4A, XREF_DSVOICESETPOSITION },
XREF_ENTRY( 0x4A, XREF_DSVOICESETPOSITION ),
{ 0x0F, 0x00 },
{ 0x18, 0x0B },
@ -1172,7 +1172,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPosition, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSBUFFERSETPOSITION },
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETPOSITION ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -1208,7 +1208,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetVelocity, 5558, 9,
XREF_DSBUFFERSETVELOCITY,
XRefOne)
{ 0x4A, XREF_DSVOICESETVELOCITY },
XREF_ENTRY( 0x4A, XREF_DSVOICESETVELOCITY ),
{ 0x0F, 0x00 },
{ 0x18, 0x0B },
@ -1227,7 +1227,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetVelocity, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSBUFFERSETVELOCITY },
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETVELOCITY ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -1264,7 +1264,7 @@ OOVPA_XREF(CDirectSoundStream_Pause, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x35, XREF_DSSTREAMPAUSE },
XREF_ENTRY( 0x35, XREF_DSSTREAMPAUSE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1300,7 +1300,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetDistanceFactor, 5558, 8,
XREF_DSBUFFERSETDISTANCEFACTOR,
XRefOne)
{ 0x3A, XREF_DSVOICESETDISTANCEFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETDISTANCEFACTOR ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1319,7 +1319,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetDistanceFactor, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -1355,7 +1355,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetDopplerFactor, 5558, 8,
XREF_DSBUFFERSETDOPPLERFACTOR,
XRefOne)
{ 0x3A, XREF_DSVOICESETDOPPLERFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETDOPPLERFACTOR ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1374,7 +1374,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetDopplerFactor, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -1425,7 +1425,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 5558, 8,
XREF_DSBUFFERSETI3DL2SOURCE,
XRefOne)
{ 0x36, XREF_DSVOICESETI3DL2SOURCE },
XREF_ENTRY( 0x36, XREF_DSVOICESETI3DL2SOURCE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1444,7 +1444,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetI3DL2Source, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSBUFFERSETI3DL2SOURCE },
XREF_ENTRY( 0x19, XREF_DSBUFFERSETI3DL2SOURCE ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1464,7 +1464,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetAllParameters, 5558, 10,
XREF_DirectSound_CDirectSoundVoice_SetAllParameters,
XRefZero) // TODO : Use XRefOne here if XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings is enabled below
// { 0x12F, XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings },
// XREF_ENTRY( 0x12F, XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings ),
{ 0x00, 0x8B },
{ 0x01, 0x44 },
@ -1486,7 +1486,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetAllParameters, 5558, 8,
XREF_DirectSound_CDirectSoundBuffer_SetAllParameters,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1505,7 +1505,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetAllParameters, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1542,7 +1542,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 5558, 8,
XREF_DirectSound_CDirectSoundBuffer_SetHeadroom,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -1561,7 +1561,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetHeadroom, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1581,7 +1581,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetHeadroom, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1617,7 +1617,7 @@ OOVPA_XREF(IDirectSoundBuffer_GetCurrentPosition, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_GETCURRENTPOSITION },
XREF_ENTRY( 0x19, XREF_GETCURRENTPOSITION ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1637,7 +1637,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetFormat, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetFormat },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetFormat ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1657,7 +1657,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBins, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINSB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1695,7 +1695,7 @@ OOVPA_XREF(IDirectSound_SetMixBinHeadroom, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETMIXBINHEADROOMA },
XREF_ENTRY( 0x19, XREF_DSSETMIXBINHEADROOMA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1733,7 +1733,7 @@ OOVPA_XREF(IDirectSound_EnableHeadphones, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSENABLEHEADPHONES },
XREF_ENTRY( 0x15, XREF_DSENABLEHEADPHONES ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1769,7 +1769,7 @@ OOVPA_XREF(IDirectSound_GetOutputLevels, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSound_GetOutputLevels },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSound_GetOutputLevels ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1821,7 +1821,7 @@ OOVPA_XREF(IDirectSound_SetPosition, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSSETPOSITIONA },
XREF_ENTRY( 0x2D, XREF_DSSETPOSITIONA ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -1857,7 +1857,7 @@ OOVPA_XREF(IDirectSound_SetVelocity, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSSETVELOCITYA },
XREF_ENTRY( 0x2D, XREF_DSSETVELOCITYA ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -1893,7 +1893,7 @@ OOVPA_XREF(IDirectSound_CreateSoundStream, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSCREATESOUNDSTREAM },
XREF_ENTRY( 0x1D, XREF_DSCREATESOUNDSTREAM ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -1912,7 +1912,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetRolloffCurve, 5558, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x3E, XREF_DSVOICESETROLLOFFCURVE },
XREF_ENTRY( 0x3E, XREF_DSVOICESETROLLOFFCURVE ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -1931,7 +1931,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetFrequency, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSBUFFERSETFREQUENCYB },
XREF_ENTRY( 0x36, XREF_DSBUFFERSETFREQUENCYB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1973,147 +1973,147 @@ OOVPA_END;
// ******************************************************************
OOVPATable DSound_5558[] = {
OOVPA_TABLE_ENTRY(DirectSoundCreate, 4361),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundBuffer, 4627),
OOVPA_TABLE_ENTRY(CDirectSound_SynchPlayback, 5558),
OOVPA_TABLE_XREF(CMcpxStream_Pause, 5558),
OOVPA_TABLE_ENTRY(CDirectSoundStream_Pause, 5558),
OOVPA_TABLE_ENTRY(CDirectSoundStream_Pause, 4361),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBinVolumes, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBinVolumes, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateSoundBuffer, 4627),
OOVPA_TABLE_ENTRY(CDirectSound_CommitDeferredSettings, 5558),
OOVPA_TABLE_XREF(CDirectSound_SetDistanceFactorA, 5558),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDistanceFactor, 4432),
OOVPA_TABLE_XREF(CDirectSound_SetRolloffFactor, 5558),
OOVPA_TABLE_ENTRY(IDirectSound8_SetRolloffFactor, 4627),
OOVPA_TABLE_XREF(CDirectSound_SetDopplerFactor, 5558),
OOVPA_TABLE_XREF(CDirectSoundStream_FlushEx, 5233),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_StopEx, 5233),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDopplerFactor, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetFrequency, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetFrequency, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetFrequency, 5558, CDirectSoundStream_SetFrequency),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetFrequency, 4627),
OOVPA_TABLE_XREF(CMcpxVoiceClient_SetVolume, 5558),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundStream, 4361),
OOVPA_TABLE_ENTRY(DirectSoundCreateStream, 4361),
OOVPA_TABLE_ENTRY(IDirectSound8_Release, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_DownloadEffectsImage, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_SetOrientation, 3936),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMaxDistance, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMaxDistance, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMaxDistance, 5558, IDirectSoundBuffer8_SetMaxDistance),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMinDistance, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMinDistance, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundStream_SetRolloffCurve, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMinDistance, 5558, IDirectSoundBuffer8_SetMinDistance),
// OOVPA_TABLE_XREF(CDirectSoundVoice_SetRolloffFactor, 4627), // THESE ARE NOT CORRECT
// OOVPA_TABLE_XREF(CDirectSoundBuffer_SetRolloffFactor, 4627), // THESE ARE NOT CORRECT
// OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetRolloffFactor, 4627, IDirectSoundBuffer8_SetRolloffFactor), // THESE ARE NOT CORRECT
OOVPA_TABLE_XREF(CDirectSoundVoice_SetDopplerFactor, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetDopplerFactor, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetDopplerFactor, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Stop, 4627, IDirectSoundBuffer8_Stop),
// OOVPA_TABLE_XREF(CDirectSound_SetMixBinHeadroom, 4627),
// OOVPA_TABLE_ENTRY(IDirectSound8_SetMixBinHeadroom, 5558),
OOVPA_TABLE_XREF(CDirectSound_SetI3DL2Listener, 5558),
OOVPA_TABLE_ENTRY(IDirectSound8_SetI3DL2Listener, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Release, 3936),
OOVPA_TABLE_XREF(DirectSound_CFullHRTFSource_GetCenterVolume, 5558),
OOVPA_TABLE_XREF(DirectSound_CHRTFSource_SetFullHRTF5Channel, 5558),
OOVPA_TABLE_ENTRY(DirectSoundUseFullHRTF, 5558),
OOVPA_TABLE_ENTRY(DirectSoundDoWork, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetBufferData, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetBufferData, 5558),
OOVPA_TABLE_XREF(CMcpxBuffer_SetCurrentPosition, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetCurrentPosition, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetCurrentPosition, 5558),
OOVPA_TABLE_XREF(CMcpxVoiceClient_SetLFO, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetLFO, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetLFO, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetLFO, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetVolume, 5233),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetVolume, 5233),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetVolume, 5233),
OOVPA_TABLE_ENTRY(CDirectSoundStream_SetVolume, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBins, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBins, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBins, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBins, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetPlayRegion, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPlayRegion, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetLoopRegion, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetLoopRegion, 5558),
OOVPA_TABLE_XREF(CMcpxBuffer_Play, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_Play, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Play, 5558),
OOVPA_TABLE_XREF(CMcpxBuffer_GetStatus, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_GetStatus, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_GetStatus, 4627),
OOVPA_TABLE_XREF(WaveFormat_CreateXboxAdpcmFormat, 5558),
OOVPA_TABLE_ENTRY(XAudioCreateAdpcmFormat, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetFormat, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetFormat, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetFormat, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetConeAngles, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetConeAngles, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetConeAngles, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetRolloffCurve, 5233),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetRolloffCurve, 5233),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetRolloffCurve, 5558, CDirectSoundStream_SetRolloffCurve),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetRolloffCurve, 5233),
OOVPA_TABLE_XREF(CDirectSoundVoice_CommitDeferredSettings, 5558),
// OOVPA_TABLE_XREF(CDirectSoundVoice_SetAllParameters, 5558),
// OOVPA_TABLE_XREF(CDirectSoundBuffer_SetAllParameters, 5558),
// OOVPA_TABLE_PATCH(IDirectSoundBuffer8_SetAllParameters, 5558, IDirectSound8_SetAllParameters), // Use that for now
OOVPA_TABLE_XREF(CDirectSoundVoice_SetPosition, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetPosition, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPosition, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetVelocity, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetVelocity, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetVelocity, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetDistanceFactor, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetDistanceFactor, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetDistanceFactor, 5558),
OOVPA_TABLE_PATCH(CDirectSoundStream_SetVolume, 5233, IDirectSoundStream_SetVolume), // (This is actually the XREF we are using)
OOVPA_TABLE_ENTRY(DirectSoundCreateBuffer, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Lock, 5558, IDirectSoundBuffer8_Lock),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetI3DL2Source, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetI3DL2Source, 5558, IDirectSoundBuffer8_SetI3DL2Source),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetAllParameters, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetAllParameters, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetAllParameters, 5558, IDirectSoundBuffer8_SetAllParameters),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetHeadroom, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetHeadroom, 5558, IDirectSoundBuffer8_SetHeadroom),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetHeadroom, 5558, IDirectSoundStream_SetHeadroom),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_GetCurrentPosition, 5558, IDirectSoundBuffer8_GetCurrentPosition),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetFormat, 5558, CDirectSoundStream_SetFormat),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetMixBins, 5558, CDirectSoundStream_SetMixBins),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetMixBinHeadroom, 5558),
OOVPA_TABLE_PATCH(IDirectSound_SetMixBinHeadroom, 5558, IDirectSound8_SetMixBinHeadroom),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_EnableHeadphones, 5558),
OOVPA_TABLE_PATCH(IDirectSound_EnableHeadphones, 5558, IDirectSound8_EnableHeadphones),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_GetOutputLevels, 5558),
OOVPA_TABLE_PATCH(IDirectSound_GetOutputLevels, 5558, IDirectSound8_GetOutputLevels),
OOVPA_TABLE_ENTRY(XAudioDownloadEffectsImage, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetPosition, 5558),
OOVPA_TABLE_PATCH(IDirectSound_SetPosition, 5558, IDirectSound8_SetPosition),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetVelocity, 5558),
OOVPA_TABLE_PATCH(IDirectSound_SetVelocity, 5558, IDirectSound8_SetVelocity),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_CreateSoundStream, 5558),
OOVPA_TABLE_PATCH(IDirectSound_CreateSoundStream, 5558, IDirectSound8_CreateStream),
OOVPA_TABLE_XREF(DirectSound_CMcpxVoiceClient_SetEG, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetEG, 5558),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetEG, 5558, CDirectSoundStream_SetEG),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetEG, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetEG, 5558, IDirectSoundBuffer8_SetEG),
OOVPA_TABLE_ENTRY(IDirectSound8_AddRef, 3936),
REGISTER_OOVPA(DirectSoundCreate, 4361, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundBuffer, 4627, XREF),
REGISTER_OOVPA(CDirectSound_SynchPlayback, 5558, PATCH),
REGISTER_OOVPA(CMcpxStream_Pause, 5558, XREF),
REGISTER_OOVPA(CDirectSoundStream_Pause, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundStream_Pause, 4361, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBinVolumes, 4627, PATCH),
REGISTER_OOVPA(IDirectSound8_CreateSoundBuffer, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_CommitDeferredSettings, 5558, PATCH),
REGISTER_OOVPA(CDirectSound_SetDistanceFactorA, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_SetDistanceFactor, 4432, PATCH),
REGISTER_OOVPA(CDirectSound_SetRolloffFactor, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_SetRolloffFactor, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_SetDopplerFactor, 5558, XREF),
REGISTER_OOVPA(CDirectSoundStream_FlushEx, 5233, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_StopEx, 5233, PATCH),
REGISTER_OOVPA(IDirectSound8_SetDopplerFactor, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetFrequency, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetFrequency, 4627, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetFrequency, 5558, ALIAS, DirectSound_CDirectSoundStream_SetFrequency),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFrequency, 4627, PATCH),
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 5558, XREF),
REGISTER_OOVPA(CDirectSound_CreateSoundStream, 4361, XREF),
REGISTER_OOVPA(DirectSoundCreateStream, 4361, PATCH),
REGISTER_OOVPA(IDirectSound8_Release, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_DownloadEffectsImage, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_SetOrientation, 3936, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetMaxDistance, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMaxDistance, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMaxDistance, 5558, ALIAS, IDirectSoundBuffer_SetMaxDistance),
REGISTER_OOVPA(CDirectSoundVoice_SetMinDistance, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMinDistance, 5558, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetRolloffCurve, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMinDistance, 5558, ALIAS, IDirectSoundBuffer_SetMinDistance),
// REGISTER_OOVPA(CDirectSoundVoice_SetRolloffFactor, 4627, XREF), // THESE ARE NOT CORRECT
// REGISTER_OOVPA(CDirectSoundBuffer_SetRolloffFactor, 4627, XREF), // THESE ARE NOT CORRECT
// REGISTER_OOVPA(IDirectSoundBuffer8_SetRolloffFactor, 4627, ALIAS, IDirectSoundBuffer_SetRolloffFactor), // THESE ARE NOT CORRECT
REGISTER_OOVPA(CDirectSoundVoice_SetDopplerFactor, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetDopplerFactor, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetDopplerFactor, 5558, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_Stop, 4627, ALIAS, IDirectSoundBuffer_Stop),
// REGISTER_OOVPA(CDirectSound_SetMixBinHeadroom, 4627, XREF),
// REGISTER_OOVPA(IDirectSound8_SetMixBinHeadroom, 5558, PATCH),
REGISTER_OOVPA(CDirectSound_SetI3DL2Listener, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_SetI3DL2Listener, 5558, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_Release, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CFullHRTFSource_GetCenterVolume, 5558, XREF),
REGISTER_OOVPA(DirectSound_CHRTFSource_SetFullHRTF5Channel, 5558, XREF),
REGISTER_OOVPA(DirectSoundUseFullHRTF, 5558, PATCH),
REGISTER_OOVPA(DirectSoundDoWork, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundBuffer_SetBufferData, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetBufferData, 5558, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetCurrentPosition, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetCurrentPosition, 5558, PATCH),
REGISTER_OOVPA(CMcpxVoiceClient_SetLFO, 5558, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetLFO, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetLFO, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLFO, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetVolume, 5233, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetVolume, 5233, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVolume, 5233, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetVolume, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBins, 5558, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBins, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBins, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBins, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundBuffer_SetPlayRegion, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPlayRegion, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundBuffer_SetLoopRegion, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLoopRegion, 5558, PATCH),
REGISTER_OOVPA(CMcpxBuffer_Play, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_Play, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Play, 5558, PATCH),
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_GetStatus, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetStatus, 4627, PATCH),
REGISTER_OOVPA(WaveFormat_CreateXboxAdpcmFormat, 5558, XREF),
REGISTER_OOVPA(XAudioCreateAdpcmFormat, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetFormat, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetFormat, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFormat, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetConeAngles, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetConeAngles, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetConeAngles, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetRolloffCurve, 5233, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetRolloffCurve, 5233, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetRolloffCurve, 5558, ALIAS, DirectSound_CDirectSoundStream_SetRolloffCurve),
REGISTER_OOVPA(IDirectSoundBuffer8_SetRolloffCurve, 5233, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_CommitDeferredSettings, 5558, XREF),
// REGISTER_OOVPA(CDirectSoundVoice_SetAllParameters, 5558, XREF),
// REGISTER_OOVPA(CDirectSoundBuffer_SetAllParameters, 5558, XREF),
// REGISTER_OOVPA(IDirectSound8_SetAllParameters, 5558, ALIAS, IDirectSoundBuffer8_SetAllParameters), // Use that for now
REGISTER_OOVPA(CDirectSoundVoice_SetPosition, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetPosition, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPosition, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetVelocity, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetVelocity, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVelocity, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetDistanceFactor, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetDistanceFactor, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetDistanceFactor, 5558, PATCH),
REGISTER_OOVPA(IDirectSoundStream_SetVolume, 5233, ALIAS, CDirectSoundStream_SetVolume), // (This is actually the XREF we are using)
REGISTER_OOVPA(DirectSoundCreateBuffer, 4627, PATCH),
REGISTER_OOVPA(IDirectSoundBuffer8_Lock, 5558, ALIAS, IDirectSoundBuffer_Lock),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetI3DL2Source, 5558, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetI3DL2Source, 5558, ALIAS, IDirectSoundBuffer_SetI3DL2Source),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetAllParameters, 5558, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetAllParameters, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetAllParameters, 5558, ALIAS, IDirectSoundBuffer_SetAllParameters),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 5558, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetHeadroom, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetHeadroom, 5558, ALIAS, IDirectSoundBuffer_SetHeadroom),
REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 5558, ALIAS, DirectSound_CDirectSoundStream_SetHeadroom),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetCurrentPosition, 5558, ALIAS, IDirectSoundBuffer_GetCurrentPosition),
REGISTER_OOVPA(CDirectSoundStream_SetFormat, 5558, ALIAS, DirectSound_CDirectSoundStream_SetFormat),
REGISTER_OOVPA(CDirectSoundStream_SetMixBins, 5558, ALIAS, DirectSound_CDirectSoundStream_SetMixBins),
REGISTER_OOVPA(DirectSound_CDirectSound_SetMixBinHeadroom, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_SetMixBinHeadroom, 5558, ALIAS, IDirectSound_SetMixBinHeadroom),
REGISTER_OOVPA(DirectSound_CDirectSound_EnableHeadphones, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_EnableHeadphones, 5558, ALIAS, IDirectSound_EnableHeadphones),
REGISTER_OOVPA(DirectSound_CDirectSound_GetOutputLevels, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_GetOutputLevels, 5558, ALIAS, IDirectSound_GetOutputLevels),
REGISTER_OOVPA(XAudioDownloadEffectsImage, 5558, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_SetPosition, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_SetPosition, 5558, ALIAS, IDirectSound_SetPosition),
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_SetVelocity, 5558, ALIAS, IDirectSound_SetVelocity),
REGISTER_OOVPA(DirectSound_CDirectSound_CreateSoundStream, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_CreateStream, 5558, ALIAS, IDirectSound_CreateSoundStream),
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetEG, 5558, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetEG, 5558, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetEG, 5558, ALIAS, DirectSound_CDirectSoundStream_SetEG),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetEG, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetEG, 5558, ALIAS, IDirectSoundBuffer_SetEG),
REGISTER_OOVPA(IDirectSound8_AddRef, 3936, PATCH),
};
// ******************************************************************

View File

@ -86,7 +86,7 @@ OOVPA_XREF(IDirectSound8_SetI3DL2Listener, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETI3DL2LISTENER },
XREF_ENTRY( 0x19, XREF_DSSETI3DL2LISTENER ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -149,7 +149,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetFormat, 5788, 8,
XREF_DirectSound_CDirectSoundBuffer_SetFormat,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -168,7 +168,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetFormat, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -269,7 +269,7 @@ OOVPA_XREF(IDirectSoundBuffer_Play, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSOUNDPLAY2 },
XREF_ENTRY( 0x1D, XREF_DSOUNDPLAY2 ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -305,7 +305,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 5788, 8,
XREF_DirectSound_CDirectSoundBuffer_SetHeadroom,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -324,7 +324,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetHeadroom, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -375,7 +375,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBins, 5788, 8,
XREF_DSSETMIXBINSB,
XRefOne)
{ 0x0D, XREF_DSSETMIXBINSC },
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINSC ),
{ 0x02, 0x74 },
{ 0x06, 0x74 },
@ -394,7 +394,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBins, 5788, 8,
XREF_DSSETMIXBINSA,
XRefOne)
{ 0x32, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x32, XREF_DSSETMIXBINSB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -413,7 +413,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBins, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINSB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -433,7 +433,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMixBins, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSSETMIXBINSA },
XREF_ENTRY( 0x15, XREF_DSSETMIXBINSA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -470,7 +470,7 @@ OOVPA_XREF(IDirectSound_SetMixBinHeadroom, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETMIXBINHEADROOMA },
XREF_ENTRY( 0x19, XREF_DSSETMIXBINHEADROOMA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -507,7 +507,7 @@ OOVPA_XREF(IDirectSound_SetPosition, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSSETPOSITIONA },
XREF_ENTRY( 0x2D, XREF_DSSETPOSITIONA ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -543,7 +543,7 @@ OOVPA_XREF(IDirectSound_SetVelocity, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSSETVELOCITYA },
XREF_ENTRY( 0x2D, XREF_DSSETVELOCITYA ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -596,7 +596,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 5788, 8,
XREF_DSBUFFERSETCURRENTPOSITIONA,
XRefOne)
{ 0x35, XREF_DSBUFFERSETCURRENTPOSITIONB },
XREF_ENTRY( 0x35, XREF_DSBUFFERSETCURRENTPOSITIONB ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -615,7 +615,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetCurrentPosition, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSBUFFERSETCURRENTPOSITIONA },
XREF_ENTRY( 0x15, XREF_DSBUFFERSETCURRENTPOSITIONA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -651,7 +651,7 @@ OOVPA_XREF(IDirectSoundBuffer_GetCurrentPosition, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_GETCURRENTPOSITION },
XREF_ENTRY( 0x19, XREF_GETCURRENTPOSITION ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -688,7 +688,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetLoopRegion, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -726,7 +726,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_StopEx, 5788, 8,
XREF_DSOUNDSTOP2,
XRefOne)
{ 0x3D, XREF_DSOUNDSTOP },
XREF_ENTRY( 0x3D, XREF_DSOUNDSTOP ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -745,7 +745,7 @@ OOVPA_XREF(IDirectSoundBuffer_StopEx, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSOUNDSTOP2 },
XREF_ENTRY( 0x1D, XREF_DSOUNDSTOP2 ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -818,7 +818,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetPitch, 5788, 8,
XREF_DSBUFFERSETPITCHA,
XRefOne)
{ 0x32, XREF_DSBUFFERSETPITCHB },
XREF_ENTRY( 0x32, XREF_DSBUFFERSETPITCHB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -837,7 +837,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPitch, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSBUFFERSETPITCHA },
XREF_ENTRY( 0x15, XREF_DSBUFFERSETPITCHA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -890,7 +890,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMaxDistance, 5788, 8,
XREF_DSBUFFERSETMAXDISTANCE,
XRefOne)
{ 0x3A, XREF_DSVOICESETMAXDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMAXDISTANCE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -909,7 +909,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMinDistance, 5788, 8,
XREF_DSBUFFERSETMINDISTANCE,
XRefOne)
{ 0x3A, XREF_DSVOICESETMINDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMINDISTANCE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -928,7 +928,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMaxDistance, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETMAXDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMAXDISTANCE ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -947,7 +947,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETMINDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMINDISTANCE ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -983,7 +983,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetVolume, 5788, 8,
XREF_DirectSound_CDirectSoundBuffer_SetVolume,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -1003,7 +1003,7 @@ OOVPA_END;
// XREF_DirectSound_CDirectSoundStream_SetVolume,
// XRefOne)
//
// { 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume },
// XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume ),
//
// { 0x00, 0x56 },
// { 0x0C, 0x00 },
@ -1023,7 +1023,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetVolume, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1042,7 +1042,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_PlayEx, 5788, 8,
XREF_DirectSound_CDirectSoundBuffer_PlayEx,
XRefOne)
{ 0x3D, XREF_DirectSound_CMcpxBuffer_Play },
XREF_ENTRY( 0x3D, XREF_DirectSound_CMcpxBuffer_Play ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -1061,7 +1061,7 @@ OOVPA_XREF(IDirectSoundBuffer_PlayEx, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx },
XREF_ENTRY( 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -1097,7 +1097,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 5788, 8,
XREF_DSBUFFERSETROLLOFFFACTOR,
XRefOne)
{ 0x3A, XREF_DSVOICESETROLLOFFFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETROLLOFFFACTOR ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1116,7 +1116,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetRolloffFactor, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -1152,7 +1152,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 5788, 8,
XREF_DSBUFFERSETDOPPLERFACTOR,
XRefOne)
{ 0x3A, XREF_DSVOICESETDOPPLERFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETDOPPLERFACTOR ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1171,7 +1171,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetDopplerFactor, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -1207,7 +1207,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetPosition, 5788, 9,
XREF_DSBUFFERSETPOSITION,
XRefOne)
{ 0x4A, XREF_DSVOICESETPOSITION },
XREF_ENTRY( 0x4A, XREF_DSVOICESETPOSITION ),
{ 0x0F, 0x00 },
{ 0x18, 0x0B },
@ -1227,7 +1227,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetPosition, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSBUFFERSETPOSITION },
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETPOSITION ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -1263,7 +1263,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetVelocity, 5788, 9,
XREF_DSBUFFERSETVELOCITY,
XRefOne)
{ 0x4A, XREF_DSVOICESETVELOCITY },
XREF_ENTRY( 0x4A, XREF_DSVOICESETVELOCITY ),
{ 0x0F, 0x00 },
{ 0x18, 0x0B },
@ -1283,7 +1283,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetVelocity, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSBUFFERSETVELOCITY },
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETVELOCITY ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -1319,7 +1319,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_Pause, 5788, 8,
XREF_DirectSound_CDirectSoundBuffer_Pause,
XRefOne)
{ 0x35, XREF_DirectSound_CMcpxBuffer_Pause },
XREF_ENTRY( 0x35, XREF_DirectSound_CMcpxBuffer_Pause ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1337,7 +1337,7 @@ OOVPA_XREF(IDirectSoundBuffer_Pause, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_Pause },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_Pause ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1373,7 +1373,7 @@ OOVPA_END;
// XRefNoSaveIndex,
// XRefOne)
//
// { 0x1D, XREF_DirectSound_CDirectSound_CreateSoundStream },
// XREF_ENTRY( 0x1D, XREF_DirectSound_CDirectSound_CreateSoundStream ),
//
// { 0x03, 0x10 },
// { 0x08, 0xFF },
@ -1392,7 +1392,7 @@ OOVPA_XREF(DirectSoundCreateStream, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x2F, XREF_DSCREATESOUNDSTREAM },
XREF_ENTRY( 0x2F, XREF_DSCREATESOUNDSTREAM ),
{ 0x09, 0x56 },
{ 0x14, 0x45 },
@ -1412,7 +1412,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBinVolumes, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINVOLUMESB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINVOLUMESB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1449,7 +1449,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_Pause, 5788, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x35, XREF_DSSTREAMPAUSE },
XREF_ENTRY( 0x35, XREF_DSSTREAMPAUSE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1485,7 +1485,7 @@ OOVPA_XREF(IDirectSoundStream_FlushEx, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x11, XREF_DSFLUSHEX2 },
XREF_ENTRY( 0x11, XREF_DSFLUSHEX2 ),
{ 0x01, 0x74 },
{ 0x04, 0xFF },
@ -1572,7 +1572,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetHeadroom, 5788, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1589,161 +1589,161 @@ OOVPA_END;
// ******************************************************************
OOVPATable DSound_5788[] = {
OOVPA_TABLE_ENTRY(DirectSoundCreate, 4361),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundBuffer, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPlayRegion, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_SetBufferData, 5788),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetBufferData, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetBufferData, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_GetStatus, 5788),
OOVPA_TABLE_XREF(CDirectSoundBuffer_GetStatus, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_GetStatus, 4627),
OOVPA_TABLE_XREF(CDirectSound_SetI3DL2Listener, 5788),
OOVPA_TABLE_ENTRY(IDirectSound8_SetI3DL2Listener, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetFormat, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetFormat, 5788),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetFormat, 5788),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetConeAngles, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetConeAngles, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetConeAngles, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBinVolumes, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBinVolumes, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetMixBinVolumes, 5788, CDirectSoundStream_SetMixBinVolumes2),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetRolloffCurve, 5233),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetRolloffCurve, 5233),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetRolloffCurve, 5558, CDirectSoundStream_SetRolloffCurve),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetRolloffCurve, 5233),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateSoundBuffer, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetFrequency, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetFrequency, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetFrequency, 4627),
OOVPA_TABLE_ENTRY(CDirectSoundStream_SetVolume, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_Release, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_DownloadEffectsImage, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_SetOrientation, 3936),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMaxDistance, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMaxDistance, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMaxDistance, 5788, IDirectSoundBuffer8_SetMaxDistance),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMinDistance, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMinDistance, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMinDistance, 5788, IDirectSoundBuffer8_SetMinDistance),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Play, 5788),
// OOVPA_TABLE_XREF(CMcpxBuffer_Play, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Stop, 4627, IDirectSoundBuffer8_Stop), // (Possibly weak, but quite OK for 4627 DSOUND)
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Release, 3936),
OOVPA_TABLE_XREF(DirectSound_CFullHRTFSource_GetCenterVolume, 5558),
OOVPA_TABLE_XREF(DirectSound_CHRTFSource_SetFullHRTF5Channel, 5558),
OOVPA_TABLE_ENTRY(DirectSoundUseFullHRTF, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetHeadroom, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetHeadroom, 5788, IDirectSoundBuffer8_SetHeadroom),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetAllParameters, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetAllParameters, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetAllParameters, 5558, IDirectSoundBuffer8_SetAllParameters),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Lock, 5788, IDirectSoundBuffer8_Lock),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetI3DL2Source, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 5558),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetI3DL2Source, 5558, IDirectSoundBuffer8_SetI3DL2Source),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMixBins, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMixBins, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMixBins, 5788, IDirectSoundBuffer8_SetMixBins),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetMixBins, 5788, CDirectSoundStream_SetMixBins),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetMixBinHeadroom, 5788),
OOVPA_TABLE_PATCH(IDirectSound_SetMixBinHeadroom, 5788, IDirectSound8_SetMixBinHeadroom),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetPosition, 5788),
OOVPA_TABLE_PATCH(IDirectSound_SetPosition, 5788, IDirectSound8_SetPosition),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetVelocity, 5788),
OOVPA_TABLE_PATCH(IDirectSound_SetVelocity, 5788, IDirectSound8_SetVelocity),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetDistanceFactor, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetDistanceFactor, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetDistanceFactor, 5558),
OOVPA_TABLE_PATCH(DirectSound_CDirectSound_CommitDeferredSettings, 5788, CDirectSound_CommitDeferredSettings),
OOVPA_TABLE_ENTRY(DirectSoundCreateBuffer, 4627),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_SetCurrentPosition, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetCurrentPosition, 5788, IDirectSoundBuffer8_SetCurrentPosition),
OOVPA_TABLE_XREF(CMcpxVoiceClient_SetLFO, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetLFO, 5558),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetLFO, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetLFO, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_GetCurrentPosition, 5788, IDirectSoundBuffer8_GetCurrentPosition),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetPlayRegion, 5558),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPlayRegion, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetLoopRegion, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetLoopRegion, 5788, IDirectSoundBuffer8_SetLoopRegion),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Stop, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_StopEx, 5788),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundBuffer_StopEx, 5788, IDirectSoundBuffer8_StopEx),
OOVPA_TABLE_XREF(CDirectSound_SetDistanceFactorA, 5558),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDistanceFactor, 4432),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetRolloffFactor, 5788),
OOVPA_TABLE_ENTRY(IDirectSound8_SetRolloffFactor, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetDopplerFactor, 5788),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDopplerFactor, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetPitch, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetPitch, 5788),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPitch, 5788),
OOVPA_TABLE_XREF(CMcpxVoiceClient_SetVolume, 5558),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetVolume, 5233),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetVolume, 5233),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetVolume, 5233),
OOVPA_TABLE_PATCH(CDirectSoundStream_SetVolume, 5233, IDirectSoundStream_SetVolume), // This is actually the XREF we are using
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_PlayEx, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_PlayEx, 5788, IDirectSoundBuffer8_PlayEx),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetRolloffFactor, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetRolloffFactor, 5788, IDirectSoundBuffer8_SetRolloffFactor),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetFrequency, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetFrequency, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetFrequency, 5558, CDirectSoundStream_SetFrequency),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetDopplerFactor, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetDopplerFactor, 5788, IDirectSoundBuffer8_SetDopplerFactor),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetPosition, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetPosition, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetPosition, 5788, IDirectSoundBuffer8_SetPosition),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetVelocity, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetVelocity, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetVelocity, 5788, IDirectSoundBuffer8_SetVelocity),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Pause, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_Pause, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Pause, 5788, IDirectSoundBuffer8_Pause),
OOVPA_TABLE_PATCH(DirectSound_CDirectSound_CreateSoundStream, 5788, DirectSoundCreateStream),
OOVPA_TABLE_ENTRY(DirectSoundCreateStream, 5788),
OOVPA_TABLE_XREF(DirectSound_CMcpxStream_Pause, 5788),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_Pause, 5788, CDirectSoundStream_Pause),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundStream_FlushEx, 5788),
OOVPA_TABLE_ENTRY(IDirectSoundStream_FlushEx, 5788),
OOVPA_TABLE_ENTRY(DirectSoundDoWork, 5788),
OOVPA_TABLE_ENTRY(CDirectSound_SynchPlayback, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_EnableHeadphones, 5558),
OOVPA_TABLE_PATCH(IDirectSound_EnableHeadphones, 5558, IDirectSound8_EnableHeadphones),
OOVPA_TABLE_ENTRY(XAudioDownloadEffectsImage, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_GetOutputLevels, 5558),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_GetOutputLevels, 5558),
OOVPA_TABLE_PATCH(IDirectSound_GetOutputLevels, 5558, IDirectSound8_GetOutputLevels),
OOVPA_TABLE_PATCH(IDirectSound_SetEffectData, 5788, IDirectSound8_SetEffectData),
OOVPA_TABLE_XREF(DirectSound_CMemoryManager_PoolAlloc, 5788),
OOVPA_TABLE_ENTRY(XFileCreateMediaObjectAsync, 5788),
OOVPA_TABLE_XREF(WaveFormat_CreateXboxAdpcmFormat, 5558),
OOVPA_TABLE_ENTRY(XAudioCreateAdpcmFormat, 5558),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetFormat, 5558, CDirectSoundStream_SetFormat),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetPitch, 5788, CDirectSoundStream_SetPitch),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetHeadroom, 5788, IDirectSoundStream_SetHeadroom),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_CreateSoundStream, 5558),
OOVPA_TABLE_PATCH(IDirectSound_CreateSoundStream, 5558, IDirectSound8_CreateStream),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Play2, 5788),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_Play, 5788),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Play, 5788, IDirectSoundBuffer8_Play),
OOVPA_TABLE_XREF(DirectSound_CMcpxVoiceClient_SetEG, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetEG, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetEG, 4627, CDirectSoundStream_SetEG),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetEG, 4627),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetEG, 4627, IDirectSoundBuffer8_SetEG),
REGISTER_OOVPA(DirectSoundCreate, 4361, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundBuffer, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPlayRegion, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 5788, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetBufferData, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 5788, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_GetStatus, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetStatus, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_SetI3DL2Listener, 5788, XREF),
REGISTER_OOVPA(IDirectSound8_SetI3DL2Listener, 5788, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFormat, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFormat, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFormat, 5788, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetConeAngles, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetConeAngles, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetConeAngles, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBinVolumes, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetMixBinVolumes2, 5788, ALIAS, DirectSound_CDirectSoundStream_SetMixBinVolumes),
REGISTER_OOVPA(CDirectSoundVoice_SetRolloffCurve, 5233, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetRolloffCurve, 5233, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetRolloffCurve, 5558, ALIAS, DirectSound_CDirectSoundStream_SetRolloffCurve),
REGISTER_OOVPA(IDirectSoundBuffer8_SetRolloffCurve, 5233, PATCH),
REGISTER_OOVPA(IDirectSound8_CreateSoundBuffer, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetFrequency, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetFrequency, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFrequency, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetVolume, 4627, PATCH),
REGISTER_OOVPA(IDirectSound8_Release, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_DownloadEffectsImage, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_SetOrientation, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMaxDistance, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMaxDistance, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMaxDistance, 5788, ALIAS, IDirectSoundBuffer_SetMaxDistance),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMinDistance, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMinDistance, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMinDistance, 5788, ALIAS, IDirectSoundBuffer_SetMinDistance),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Play, 5788, XREF),
// REGISTER_OOVPA(CMcpxBuffer_Play, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Stop, 4627, ALIAS, IDirectSoundBuffer_Stop), // (Possibly weak, but quite OK for 4627 DSOUND)
REGISTER_OOVPA(IDirectSoundBuffer8_Release, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CFullHRTFSource_GetCenterVolume, 5558, XREF),
REGISTER_OOVPA(DirectSound_CHRTFSource_SetFullHRTF5Channel, 5558, XREF),
REGISTER_OOVPA(DirectSoundUseFullHRTF, 5558, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetHeadroom, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetHeadroom, 5788, ALIAS, IDirectSoundBuffer_SetHeadroom),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetAllParameters, 5558, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetAllParameters, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetAllParameters, 5558, ALIAS, IDirectSoundBuffer_SetAllParameters),
REGISTER_OOVPA(IDirectSoundBuffer8_Lock, 5788, ALIAS, IDirectSoundBuffer_Lock),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetI3DL2Source, 5558, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetI3DL2Source, 5558, ALIAS, IDirectSoundBuffer_SetI3DL2Source),
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBins, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBins, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBins, 5788, ALIAS, IDirectSoundBuffer_SetMixBins),
REGISTER_OOVPA(CDirectSoundStream_SetMixBins, 5788, ALIAS, DirectSound_CDirectSoundStream_SetMixBins),
REGISTER_OOVPA(DirectSound_CDirectSound_SetMixBinHeadroom, 5788, XREF),
REGISTER_OOVPA(IDirectSound8_SetMixBinHeadroom, 5788, ALIAS, IDirectSound_SetMixBinHeadroom),
REGISTER_OOVPA(DirectSound_CDirectSound_SetPosition, 5788, XREF),
REGISTER_OOVPA(IDirectSound8_SetPosition, 5788, ALIAS, IDirectSound_SetPosition),
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 5788, XREF),
REGISTER_OOVPA(IDirectSound8_SetVelocity, 5788, ALIAS, IDirectSound_SetVelocity),
REGISTER_OOVPA(CDirectSoundVoice_SetDistanceFactor, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetDistanceFactor, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetDistanceFactor, 5558, PATCH),
REGISTER_OOVPA(CDirectSound_CommitDeferredSettings, 5788, ALIAS, DirectSound_CDirectSound_CommitDeferredSettings),
REGISTER_OOVPA(DirectSoundCreateBuffer, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_SetCurrentPosition, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetCurrentPosition, 5788, ALIAS, IDirectSoundBuffer_SetCurrentPosition),
REGISTER_OOVPA(CMcpxVoiceClient_SetLFO, 5558, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetLFO, 5558, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetLFO, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLFO, 5558, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetCurrentPosition, 5788, ALIAS, IDirectSoundBuffer_GetCurrentPosition),
REGISTER_OOVPA(CDirectSoundBuffer_SetPlayRegion, 5558, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPlayRegion, 5558, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLoopRegion, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLoopRegion, 5788, ALIAS, IDirectSoundBuffer_SetLoopRegion),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Stop, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_StopEx, 5788, ALIAS, DirectSound_CDirectSoundBuffer_StopEx),
REGISTER_OOVPA(CDirectSound_SetDistanceFactorA, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_SetDistanceFactor, 4432, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 5788, XREF),
REGISTER_OOVPA(IDirectSound8_SetRolloffFactor, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 5788, XREF),
REGISTER_OOVPA(IDirectSound8_SetDopplerFactor, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPitch, 5788, PATCH),
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 5558, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetVolume, 5233, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetVolume, 5233, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVolume, 5233, PATCH),
REGISTER_OOVPA(IDirectSoundStream_SetVolume, 5233, ALIAS, CDirectSoundStream_SetVolume), // This is actually the XREF we are using
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_PlayEx, 5788, ALIAS, IDirectSoundBuffer_PlayEx),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffFactor, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetRolloffFactor, 5788, ALIAS, IDirectSoundBuffer_SetRolloffFactor),
REGISTER_OOVPA(CDirectSoundVoice_SetFrequency, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetFrequency, 4627, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetFrequency, 5558, ALIAS, DirectSound_CDirectSoundStream_SetFrequency),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDopplerFactor, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetDopplerFactor, 5788, ALIAS, IDirectSoundBuffer_SetDopplerFactor),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPosition, 5788, ALIAS, IDirectSoundBuffer_SetPosition),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVelocity, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVelocity, 5788, ALIAS, IDirectSoundBuffer_SetVelocity),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Pause, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Pause, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Pause, 5788, ALIAS, IDirectSoundBuffer_Pause),
REGISTER_OOVPA(DirectSoundCreateStream, 5788, ALIAS, DirectSound_CDirectSound_CreateSoundStream),
REGISTER_OOVPA(DirectSoundCreateStream, 5788, PATCH),
REGISTER_OOVPA(DirectSound_CMcpxStream_Pause, 5788, XREF),
REGISTER_OOVPA(CDirectSoundStream_Pause, 5788, ALIAS, DirectSound_CDirectSoundStream_Pause),
REGISTER_OOVPA(DirectSound_CDirectSoundStream_FlushEx, 5788, XREF),
REGISTER_OOVPA(IDirectSoundStream_FlushEx, 5788, PATCH),
REGISTER_OOVPA(DirectSoundDoWork, 5788, PATCH),
REGISTER_OOVPA(CDirectSound_SynchPlayback, 5558, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_EnableHeadphones, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_EnableHeadphones, 5558, ALIAS, IDirectSound_EnableHeadphones),
REGISTER_OOVPA(XAudioDownloadEffectsImage, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_GetOutputLevels, 5558, XREF),
REGISTER_OOVPA(DirectSound_CDirectSound_GetOutputLevels, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_GetOutputLevels, 5558, ALIAS, IDirectSound_GetOutputLevels),
REGISTER_OOVPA(IDirectSound8_SetEffectData, 5788, ALIAS, IDirectSound_SetEffectData),
REGISTER_OOVPA(DirectSound_CMemoryManager_PoolAlloc, 5788, XREF),
REGISTER_OOVPA(XFileCreateMediaObjectAsync, 5788, PATCH),
REGISTER_OOVPA(WaveFormat_CreateXboxAdpcmFormat, 5558, XREF),
REGISTER_OOVPA(XAudioCreateAdpcmFormat, 5558, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetFormat, 5558, ALIAS, DirectSound_CDirectSoundStream_SetFormat),
REGISTER_OOVPA(CDirectSoundStream_SetPitch, 5788, ALIAS, DirectSound_CDirectSoundStream_SetPitch),
REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 5788, ALIAS, DirectSound_CDirectSoundStream_SetHeadroom),
REGISTER_OOVPA(DirectSound_CDirectSound_CreateSoundStream, 5558, XREF),
REGISTER_OOVPA(IDirectSound8_CreateStream, 5558, ALIAS, IDirectSound_CreateSoundStream),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Play2, 5788, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Play, 5788, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Play, 5788, ALIAS, IDirectSoundBuffer_Play),
REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetEG, 4627, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetEG, 4627, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetEG, 4627, ALIAS, DirectSound_CDirectSoundStream_SetEG),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetEG, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetEG, 4627, ALIAS, IDirectSoundBuffer_SetEG),
};
// ******************************************************************

View File

@ -86,7 +86,7 @@ OOVPA_XREF(IDirectSound8_SetI3DL2Listener, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETI3DL2LISTENER },
XREF_ENTRY( 0x19, XREF_DSSETI3DL2LISTENER ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -149,7 +149,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetFormat, 5849, 8,
XREF_DirectSound_CDirectSoundBuffer_SetFormat,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -168,7 +168,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetFormat, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -269,7 +269,7 @@ OOVPA_XREF(IDirectSoundBuffer_Play, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSOUNDPLAY2 },
XREF_ENTRY( 0x1D, XREF_DSOUNDPLAY2 ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -305,7 +305,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 5849, 8,
XREF_DirectSound_CDirectSoundBuffer_SetHeadroom,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -324,7 +324,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetHeadroom, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -375,7 +375,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBins, 5849, 8,
XREF_DSSETMIXBINSB,
XRefOne)
{ 0x0D, XREF_DSSETMIXBINSC },
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINSC ),
{ 0x02, 0x74 },
{ 0x06, 0x74 },
@ -394,7 +394,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBins, 5849, 8,
XREF_DSSETMIXBINSA,
XRefOne)
{ 0x32, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x32, XREF_DSSETMIXBINSB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -413,7 +413,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBins, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINSB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -433,7 +433,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMixBins, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSSETMIXBINSA },
XREF_ENTRY( 0x15, XREF_DSSETMIXBINSA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -470,7 +470,7 @@ OOVPA_XREF(IDirectSound_SetMixBinHeadroom, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETMIXBINHEADROOMA },
XREF_ENTRY( 0x19, XREF_DSSETMIXBINHEADROOMA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -507,7 +507,7 @@ OOVPA_XREF(IDirectSound_SetPosition, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSSETPOSITIONA },
XREF_ENTRY( 0x2D, XREF_DSSETPOSITIONA ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -543,7 +543,7 @@ OOVPA_XREF(IDirectSound_SetVelocity, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSSETVELOCITYA },
XREF_ENTRY( 0x2D, XREF_DSSETVELOCITYA ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -596,7 +596,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 5849, 8,
XREF_DSBUFFERSETCURRENTPOSITIONA,
XRefOne)
{ 0x35, XREF_DSBUFFERSETCURRENTPOSITIONB },
XREF_ENTRY( 0x35, XREF_DSBUFFERSETCURRENTPOSITIONB ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -615,7 +615,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetCurrentPosition, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSBUFFERSETCURRENTPOSITIONA },
XREF_ENTRY( 0x15, XREF_DSBUFFERSETCURRENTPOSITIONA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -651,7 +651,7 @@ OOVPA_XREF(IDirectSoundBuffer_GetCurrentPosition, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_GETCURRENTPOSITION },
XREF_ENTRY( 0x19, XREF_GETCURRENTPOSITION ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -688,7 +688,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetLoopRegion, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion },
XREF_ENTRY( 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -726,7 +726,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_StopEx, 5849, 8,
XREF_DSOUNDSTOP2,
XRefOne)
{ 0x3D, XREF_DSOUNDSTOP },
XREF_ENTRY( 0x3D, XREF_DSOUNDSTOP ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -745,7 +745,7 @@ OOVPA_XREF(IDirectSoundBuffer_StopEx, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSOUNDSTOP2 },
XREF_ENTRY( 0x1D, XREF_DSOUNDSTOP2 ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -818,7 +818,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetPitch, 5849, 8,
XREF_DSBUFFERSETPITCHA,
XRefOne)
{ 0x32, XREF_DSBUFFERSETPITCHB },
XREF_ENTRY( 0x32, XREF_DSBUFFERSETPITCHB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -837,7 +837,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPitch, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSBUFFERSETPITCHA },
XREF_ENTRY( 0x15, XREF_DSBUFFERSETPITCHA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -890,7 +890,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMaxDistance, 5849, 8,
XREF_DSBUFFERSETMAXDISTANCE,
XRefOne)
{ 0x3A, XREF_DSVOICESETMAXDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMAXDISTANCE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -909,7 +909,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMinDistance, 5849, 8,
XREF_DSBUFFERSETMINDISTANCE,
XRefOne)
{ 0x3A, XREF_DSVOICESETMINDISTANCE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETMINDISTANCE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -928,7 +928,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMaxDistance, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETMAXDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMAXDISTANCE ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -947,7 +947,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETMINDISTANCE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETMINDISTANCE ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -983,7 +983,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetVolume, 5849, 8,
XREF_DirectSound_CDirectSoundBuffer_SetVolume,
XRefOne)
{ 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume },
XREF_ENTRY( 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -1003,7 +1003,7 @@ OOVPA_END;
// XREF_DirectSound_CDirectSoundStream_SetVolume,
// XRefOne)
//
// { 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume },
// XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume ),
//
// { 0x00, 0x56 },
// { 0x0C, 0x00 },
@ -1023,7 +1023,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetVolume, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1042,7 +1042,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_PlayEx, 5849, 8,
XREF_DirectSound_CDirectSoundBuffer_PlayEx,
XRefOne)
{ 0x3D, XREF_DirectSound_CMcpxBuffer_Play },
XREF_ENTRY( 0x3D, XREF_DirectSound_CMcpxBuffer_Play ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -1061,7 +1061,7 @@ OOVPA_XREF(IDirectSoundBuffer_PlayEx, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx },
XREF_ENTRY( 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -1097,7 +1097,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 5849, 8,
XREF_DSBUFFERSETROLLOFFFACTOR,
XRefOne)
{ 0x3A, XREF_DSVOICESETROLLOFFFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETROLLOFFFACTOR ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1116,7 +1116,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetRolloffFactor, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -1152,7 +1152,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 5849, 8,
XREF_DSBUFFERSETDOPPLERFACTOR,
XRefOne)
{ 0x3A, XREF_DSVOICESETDOPPLERFACTOR },
XREF_ENTRY( 0x3A, XREF_DSVOICESETDOPPLERFACTOR ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1171,7 +1171,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetDopplerFactor, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -1207,7 +1207,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetPosition, 5849, 9,
XREF_DSBUFFERSETPOSITION,
XRefOne)
{ 0x4A, XREF_DSVOICESETPOSITION },
XREF_ENTRY( 0x4A, XREF_DSVOICESETPOSITION ),
{ 0x0F, 0x00 },
{ 0x18, 0x0B },
@ -1227,7 +1227,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetPosition, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSBUFFERSETPOSITION },
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETPOSITION ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -1263,7 +1263,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetVelocity, 5849, 9,
XREF_DSBUFFERSETVELOCITY,
XRefOne)
{ 0x4A, XREF_DSVOICESETVELOCITY },
XREF_ENTRY( 0x4A, XREF_DSVOICESETVELOCITY ),
{ 0x0F, 0x00 },
{ 0x18, 0x0B },
@ -1283,7 +1283,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetVelocity, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x2D, XREF_DSBUFFERSETVELOCITY },
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETVELOCITY ),
{ 0x05, 0x18 },
{ 0x0C, 0x83 },
@ -1319,7 +1319,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_Pause, 5849, 8,
XREF_DirectSound_CDirectSoundBuffer_Pause,
XRefOne)
{ 0x35, XREF_DirectSound_CMcpxBuffer_Pause },
XREF_ENTRY( 0x35, XREF_DirectSound_CMcpxBuffer_Pause ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1337,7 +1337,7 @@ OOVPA_XREF(IDirectSoundBuffer_Pause, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSoundBuffer_Pause },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSoundBuffer_Pause ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -1373,7 +1373,7 @@ OOVPA_END;
// XRefNoSaveIndex,
// XRefOne)
//
// { 0x1D, XREF_DirectSound_CDirectSound_CreateSoundStream },
// XREF_ENTRY( 0x1D, XREF_DirectSound_CDirectSound_CreateSoundStream ),
//
// { 0x03, 0x10 },
// { 0x08, 0xFF },
@ -1392,7 +1392,7 @@ OOVPA_XREF(DirectSoundCreateStream, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x2F, XREF_DSCREATESOUNDSTREAM },
XREF_ENTRY( 0x2F, XREF_DSCREATESOUNDSTREAM ),
{ 0x09, 0x56 },
{ 0x14, 0x45 },
@ -1412,7 +1412,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBinVolumes, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINVOLUMESB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINVOLUMESB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1449,7 +1449,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_Pause, 5849, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x35, XREF_DSSTREAMPAUSE },
XREF_ENTRY( 0x35, XREF_DSSTREAMPAUSE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -1485,7 +1485,7 @@ OOVPA_XREF(IDirectSoundStream_FlushEx, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x11, XREF_DSFLUSHEX2 },
XREF_ENTRY( 0x11, XREF_DSFLUSHEX2 ),
{ 0x01, 0x74 },
{ 0x04, 0xFF },
@ -1567,7 +1567,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetPitch, 5849, 12,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSBUFFERSETPITCHB },
XREF_ENTRY( 0x36, XREF_DSBUFFERSETPITCHB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1590,7 +1590,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetHeadroom, 5849, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom },
XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
@ -1607,116 +1607,116 @@ OOVPA_END;
// ******************************************************************
OOVPATable DSound_5849[] = {
OOVPA_TABLE_ENTRY(DirectSoundCreate, 4361),
OOVPA_TABLE_XREF(CDirectSound_CreateSoundBuffer, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPlayRegion, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_SetBufferData, 5849),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetBufferData, 4361),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetBufferData, 4361),
OOVPA_TABLE_XREF(CMcpxBuffer_GetStatus, 5849),
OOVPA_TABLE_XREF(CDirectSoundBuffer_GetStatus, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_GetStatus, 4627),
OOVPA_TABLE_XREF(CDirectSound_SetI3DL2Listener, 5849),
OOVPA_TABLE_ENTRY(IDirectSound8_SetI3DL2Listener, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetFormat, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetFormat, 5849),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetFormat, 5849),
OOVPA_TABLE_XREF(CDirectSoundVoiceSettings_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetMixBinVolumes, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetMixBinVolumes, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetMixBinVolumes, 4627),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetMixBinVolumes, 5849, CDirectSoundStream_SetMixBinVolumes2),
OOVPA_TABLE_ENTRY(IDirectSound8_CreateSoundBuffer, 4627),
OOVPA_TABLE_XREF(CDirectSoundVoice_SetFrequency, 4627),
OOVPA_TABLE_XREF(CDirectSoundBuffer_SetFrequency, 4627),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetFrequency, 4627),
OOVPA_TABLE_XREF(CMcpxVoiceClient_SetVolume, 4627),
OOVPA_TABLE_ENTRY(CDirectSoundStream_SetVolume, 4627),
OOVPA_TABLE_ENTRY(IDirectSound8_Release, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_DownloadEffectsImage, 3936),
OOVPA_TABLE_ENTRY(IDirectSound8_SetOrientation, 3936),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMaxDistance, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMaxDistance, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMaxDistance, 5849, IDirectSoundBuffer8_SetMaxDistance),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMinDistance, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMinDistance, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMinDistance, 5849, IDirectSoundBuffer8_SetMinDistance),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Play, 5849),
// OOVPA_TABLE_XREF(CMcpxBuffer_Play, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Stop, 4627, IDirectSoundBuffer8_Stop), // (Possibly weak, but quite OK for 4627 DSOUND)
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_Release, 3936),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetHeadroom, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetHeadroom, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetHeadroom, 5849, IDirectSoundBuffer8_SetHeadroom),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Lock, 5849, IDirectSoundBuffer8_Lock),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetMixBins, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetMixBins, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetMixBins, 5849, IDirectSoundBuffer8_SetMixBins),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetMixBins, 5849, CDirectSoundStream_SetMixBins),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetMixBinHeadroom, 5849),
OOVPA_TABLE_PATCH(IDirectSound_SetMixBinHeadroom, 5849, IDirectSound8_SetMixBinHeadroom),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetPosition, 5849),
OOVPA_TABLE_PATCH(IDirectSound_SetPosition, 5849, IDirectSound8_SetPosition),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetVelocity, 5849),
OOVPA_TABLE_PATCH(IDirectSound_SetVelocity, 5849, IDirectSound8_SetVelocity),
OOVPA_TABLE_PATCH(DirectSound_CDirectSound_CommitDeferredSettings, 5849, CDirectSound_CommitDeferredSettings),
OOVPA_TABLE_ENTRY(DirectSoundCreateBuffer, 4627),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_SetCurrentPosition, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetCurrentPosition, 5849, IDirectSoundBuffer8_SetCurrentPosition),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_GetCurrentPosition, 5849, IDirectSoundBuffer8_GetCurrentPosition),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetLoopRegion, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetLoopRegion, 5849, IDirectSoundBuffer8_SetLoopRegion),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Stop, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_StopEx, 5849),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundBuffer_StopEx, 5849, IDirectSoundBuffer8_StopEx),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetRolloffFactor, 5849),
OOVPA_TABLE_ENTRY(IDirectSound8_SetRolloffFactor, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSound_SetDopplerFactor, 5849),
OOVPA_TABLE_ENTRY(IDirectSound8_SetDopplerFactor, 4627),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetPitch, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetPitch, 5849),
OOVPA_TABLE_ENTRY(IDirectSoundBuffer8_SetPitch, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetVolume, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetVolume, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetVolume, 5849, IDirectSoundBuffer8_SetVolume),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_PlayEx, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_PlayEx, 5849, IDirectSoundBuffer8_PlayEx),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetRolloffFactor, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetRolloffFactor, 5849, IDirectSoundBuffer8_SetRolloffFactor),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetDopplerFactor, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetDopplerFactor, 5849, IDirectSoundBuffer8_SetDopplerFactor),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetPosition, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetPosition, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetPosition, 5849, IDirectSoundBuffer8_SetPosition),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundVoice_SetVelocity, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_SetVelocity, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_SetVelocity, 5849, IDirectSoundBuffer8_SetVelocity),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Pause, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_Pause, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Pause, 5849, IDirectSoundBuffer8_Pause),
OOVPA_TABLE_PATCH(DirectSound_CDirectSound_CreateSoundStream, 5849, DirectSoundCreateStream),
OOVPA_TABLE_ENTRY(DirectSoundCreateStream, 5849),
OOVPA_TABLE_XREF(DirectSound_CMcpxStream_Pause, 5849),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_Pause, 5849, CDirectSoundStream_Pause),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundStream_FlushEx, 5849),
OOVPA_TABLE_ENTRY(IDirectSoundStream_FlushEx, 5849),
OOVPA_TABLE_ENTRY(DirectSoundDoWork, 5849),
OOVPA_TABLE_ENTRY(CDirectSound_SynchPlayback, 5558),
OOVPA_TABLE_ENTRY(XAudioDownloadEffectsImage, 4627),
OOVPA_TABLE_PATCH(IDirectSound_SetEffectData, 5849, IDirectSound8_SetEffectData),
OOVPA_TABLE_XREF(DirectSound_CMemoryManager_PoolAlloc, 5849),
OOVPA_TABLE_ENTRY(XFileCreateMediaObjectAsync, 5849),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetFormat, 5558, CDirectSoundStream_SetFormat),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetPitch, 5849, CDirectSoundStream_SetPitch),
OOVPA_TABLE_PATCH(DirectSound_CDirectSoundStream_SetHeadroom, 5849, IDirectSoundStream_SetHeadroom),
OOVPA_TABLE_XREF(DirectSound_CMcpxBuffer_Play2, 5849),
OOVPA_TABLE_XREF(DirectSound_CDirectSoundBuffer_Play, 5849),
OOVPA_TABLE_PATCH(IDirectSoundBuffer_Play, 5849, IDirectSoundBuffer8_Play),
REGISTER_OOVPA(DirectSoundCreate, 4361, PATCH),
REGISTER_OOVPA(CDirectSound_CreateSoundBuffer, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPlayRegion, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 5849, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetBufferData, 4361, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetBufferData, 4361, PATCH),
REGISTER_OOVPA(CMcpxBuffer_GetStatus, 5849, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_GetStatus, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetStatus, 4627, PATCH),
REGISTER_OOVPA(CDirectSound_SetI3DL2Listener, 5849, XREF),
REGISTER_OOVPA(IDirectSound8_SetI3DL2Listener, 5849, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFormat, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFormat, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFormat, 5849, PATCH),
REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(CDirectSoundVoice_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetMixBinVolumes, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBinVolumes, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetMixBinVolumes2, 5849, ALIAS, DirectSound_CDirectSoundStream_SetMixBinVolumes),
REGISTER_OOVPA(IDirectSound8_CreateSoundBuffer, 4627, PATCH),
REGISTER_OOVPA(CDirectSoundVoice_SetFrequency, 4627, XREF),
REGISTER_OOVPA(CDirectSoundBuffer_SetFrequency, 4627, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetFrequency, 4627, PATCH),
REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4627, XREF),
REGISTER_OOVPA(CDirectSoundStream_SetVolume, 4627, PATCH),
REGISTER_OOVPA(IDirectSound8_Release, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_DownloadEffectsImage, 3936, PATCH),
REGISTER_OOVPA(IDirectSound8_SetOrientation, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMaxDistance, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMaxDistance, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMaxDistance, 5849, ALIAS, IDirectSoundBuffer_SetMaxDistance),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMinDistance, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMinDistance, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMinDistance, 5849, ALIAS, IDirectSoundBuffer_SetMinDistance),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Play, 5849, XREF),
// REGISTER_OOVPA(CMcpxBuffer_Play, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Stop, 4627, ALIAS, IDirectSoundBuffer_Stop), // (Possibly weak, but quite OK for 4627 DSOUND)
REGISTER_OOVPA(IDirectSoundBuffer8_Release, 3936, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetHeadroom, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetHeadroom, 5849, ALIAS, IDirectSoundBuffer_SetHeadroom),
REGISTER_OOVPA(IDirectSoundBuffer8_Lock, 5849, ALIAS, IDirectSoundBuffer_Lock),
REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBins, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBins, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetMixBins, 5849, ALIAS, IDirectSoundBuffer_SetMixBins),
REGISTER_OOVPA(CDirectSoundStream_SetMixBins, 5849, ALIAS, DirectSound_CDirectSoundStream_SetMixBins),
REGISTER_OOVPA(DirectSound_CDirectSound_SetMixBinHeadroom, 5849, XREF),
REGISTER_OOVPA(IDirectSound8_SetMixBinHeadroom, 5849, ALIAS, IDirectSound_SetMixBinHeadroom),
REGISTER_OOVPA(DirectSound_CDirectSound_SetPosition, 5849, XREF),
REGISTER_OOVPA(IDirectSound8_SetPosition, 5849, ALIAS, IDirectSound_SetPosition),
REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 5849, XREF),
REGISTER_OOVPA(IDirectSound8_SetVelocity, 5849, ALIAS, IDirectSound_SetVelocity),
REGISTER_OOVPA(CDirectSound_CommitDeferredSettings, 5849, ALIAS, DirectSound_CDirectSound_CommitDeferredSettings),
REGISTER_OOVPA(DirectSoundCreateBuffer, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_SetCurrentPosition, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetCurrentPosition, 5849, ALIAS, IDirectSoundBuffer_SetCurrentPosition),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_GetCurrentPosition, 5849, ALIAS, IDirectSoundBuffer_GetCurrentPosition),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLoopRegion, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetLoopRegion, 5849, ALIAS, IDirectSoundBuffer_SetLoopRegion),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Stop, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_StopEx, 5849, ALIAS, DirectSound_CDirectSoundBuffer_StopEx),
REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 5849, XREF),
REGISTER_OOVPA(IDirectSound8_SetRolloffFactor, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 5849, XREF),
REGISTER_OOVPA(IDirectSound8_SetDopplerFactor, 4627, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPitch, 5849, PATCH),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVolume, 5849, ALIAS, IDirectSoundBuffer_SetVolume),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_PlayEx, 5849, ALIAS, IDirectSoundBuffer_PlayEx),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffFactor, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetRolloffFactor, 5849, ALIAS, IDirectSoundBuffer_SetRolloffFactor),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDopplerFactor, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetDopplerFactor, 5849, ALIAS, IDirectSoundBuffer_SetDopplerFactor),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetPosition, 5849, ALIAS, IDirectSoundBuffer_SetPosition),
REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVelocity, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_SetVelocity, 5849, ALIAS, IDirectSoundBuffer_SetVelocity),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Pause, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Pause, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Pause, 5849, ALIAS, IDirectSoundBuffer_Pause),
REGISTER_OOVPA(DirectSoundCreateStream, 5849, ALIAS, DirectSound_CDirectSound_CreateSoundStream),
REGISTER_OOVPA(DirectSoundCreateStream, 5849, PATCH),
REGISTER_OOVPA(DirectSound_CMcpxStream_Pause, 5849, XREF),
REGISTER_OOVPA(CDirectSoundStream_Pause, 5849, ALIAS, DirectSound_CDirectSoundStream_Pause),
REGISTER_OOVPA(DirectSound_CDirectSoundStream_FlushEx, 5849, XREF),
REGISTER_OOVPA(IDirectSoundStream_FlushEx, 5849, PATCH),
REGISTER_OOVPA(DirectSoundDoWork, 5849, PATCH),
REGISTER_OOVPA(CDirectSound_SynchPlayback, 5558, PATCH),
REGISTER_OOVPA(XAudioDownloadEffectsImage, 4627, PATCH),
REGISTER_OOVPA(IDirectSound8_SetEffectData, 5849, ALIAS, IDirectSound_SetEffectData),
REGISTER_OOVPA(DirectSound_CMemoryManager_PoolAlloc, 5849, XREF),
REGISTER_OOVPA(XFileCreateMediaObjectAsync, 5849, PATCH),
REGISTER_OOVPA(CDirectSoundStream_SetFormat, 5558, ALIAS, DirectSound_CDirectSoundStream_SetFormat),
REGISTER_OOVPA(CDirectSoundStream_SetPitch, 5849, ALIAS, DirectSound_CDirectSoundStream_SetPitch),
REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 5849, ALIAS, DirectSound_CDirectSoundStream_SetHeadroom),
REGISTER_OOVPA(DirectSound_CMcpxBuffer_Play2, 5849, XREF),
REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Play, 5849, XREF),
REGISTER_OOVPA(IDirectSoundBuffer8_Play, 5849, ALIAS, IDirectSoundBuffer_Play),
};
// ******************************************************************

View File

@ -126,12 +126,12 @@ OOVPA_END;
// ******************************************************************
OOVPATable XG_3911[] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 3911),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 3911), // Leave unpatched
// OOVPA_TABLE_ENTRY(XGUnswizzleRect, 3911), // Leave unpatched
OOVPA_TABLE_ENTRY(XGSwizzleBox, 3911),
OOVPA_TABLE_ENTRY(XGWriteSurfaceOrTextureToXPR, 3911),
OOVPA_TABLE_ENTRY(XGSetTextureHeader, 3911),
REGISTER_OOVPA(XGIsSwizzledFormat, 3911, PATCH),
// REGISTER_OOVPA(XGSwizzleRect, 3911, PATCH), // Leave unpatched
// REGISTER_OOVPA(XGUnswizzleRect, 3911, PATCH), // Leave unpatched
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
};
// ******************************************************************

View File

@ -114,11 +114,11 @@ OOVPA_END;
// ******************************************************************
OOVPATable XG_4034[] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 3911),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 3911), // Leave unpatched
// OOVPA_TABLE_ENTRY(XGUnswizzleRect, 3911),
OOVPA_TABLE_ENTRY(XGSwizzleBox, 3911),
// OOVPA_TABLE_ENTRY(XGWriteSurfaceOrTextureToXPR, 3911),
REGISTER_OOVPA(XGIsSwizzledFormat, 3911, PATCH),
// REGISTER_OOVPA(XGSwizzleRect, 3911, PATCH), // Leave unpatched
// REGISTER_OOVPA(XGUnswizzleRect, 3911, PATCH),
REGISTER_OOVPA(XGSwizzleBox, 3911, PATCH),
// REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 3911, PATCH),
};
// ******************************************************************

View File

@ -151,13 +151,13 @@ OOVPA_END;
// ******************************************************************
OOVPATable XG_4361[] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 4361),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 4361), // Leave unpatched
// OOVPA_TABLE_ENTRY(XGUnswizzleRect, 4361), // Leave unpatched
OOVPA_TABLE_ENTRY(XGSetTextureHeader, 3911),
OOVPA_TABLE_XREF(XGSetVertexBufferHeader, 4361),
OOVPA_TABLE_XREF(XGSetIndexBufferHeader, 4361),
OOVPA_TABLE_XREF(XGCompressRect, 4361),
REGISTER_OOVPA(XGIsSwizzledFormat, 4361, PATCH),
// REGISTER_OOVPA(XGSwizzleRect, 4361, PATCH), // Leave unpatched
// REGISTER_OOVPA(XGUnswizzleRect, 4361, PATCH), // Leave unpatched
REGISTER_OOVPA(XGSetTextureHeader, 3911, PATCH),
REGISTER_OOVPA(XGSetVertexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGSetIndexBufferHeader, 4361, XREF),
REGISTER_OOVPA(XGCompressRect, 4361, XREF),
};
// ******************************************************************

View File

@ -39,8 +39,8 @@
// ******************************************************************
OOVPATable XG_4432[1] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 4361),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 4361), // Leave unpatched
REGISTER_OOVPA(XGIsSwizzledFormat, 4361, PATCH),
// REGISTER_OOVPA(XGSwizzleRect, 4361, PATCH), // Leave unpatched
};
// ******************************************************************

View File

@ -92,11 +92,11 @@ OOVPA_END;
// ******************************************************************
OOVPATable XG_4627[] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 4361),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 4361), // Leave unpatched
// OOVPA_TABLE_ENTRY(XGUnswizzleRect, 4627), // Leave unpatched
OOVPA_TABLE_ENTRY(XGSwizzleBox, 4627),
OOVPA_TABLE_ENTRY(XGWriteSurfaceOrTextureToXPR, 4627),
REGISTER_OOVPA(XGIsSwizzledFormat, 4361, PATCH),
// REGISTER_OOVPA(XGSwizzleRect, 4361, PATCH), // Leave unpatched
// REGISTER_OOVPA(XGUnswizzleRect, 4627, PATCH), // Leave unpatched
REGISTER_OOVPA(XGSwizzleBox, 4627, PATCH),
REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 4627, PATCH),
};
// ******************************************************************

View File

@ -37,8 +37,8 @@
// ******************************************************************
OOVPATable XG_5233[1] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 4361),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 4361), // Leave unpatched
REGISTER_OOVPA(XGIsSwizzledFormat, 4361, PATCH),
// REGISTER_OOVPA(XGSwizzleRect, 4361, PATCH), // Leave unpatched
};
// ******************************************************************

View File

@ -123,12 +123,12 @@ OOVPA_END;
// ******************************************************************
OOVPATable XG_5558[] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 4361),
REGISTER_OOVPA(XGIsSwizzledFormat, 4361, PATCH),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 5558), // Leave unpatched
OOVPA_TABLE_ENTRY(XGSwizzleBox, 5558), // (* UNTESTED *)
// OOVPA_TABLE_ENTRY(XGUnswizzleRect, 5558), // Leave unpatched
// OOVPA_TABLE_ENTRY(XGUnswizzleBox, 5558), // (* UNTESTED *)
// REGISTER_OOVPA(XGSwizzleRect, 5558, PATCH), // Leave unpatched
REGISTER_OOVPA(XGSwizzleBox, 5558, PATCH), // (* UNTESTED *)
// REGISTER_OOVPA(XGUnswizzleRect, 5558, PATCH), // Leave unpatched
// REGISTER_OOVPA(XGUnswizzleBox, 5558, PATCH), // (* UNTESTED *)
};
// ******************************************************************

View File

@ -76,10 +76,10 @@ OOVPA_END;
// ******************************************************************
OOVPATable XG_5788[1] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 4361),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 5558),
// OOVPA_TABLE_ENTRY(XGUnswizzleRect, 5558),
// OOVPA_TABLE_ENTRY(XFONT_OpenBitmapFontFromMemory, 5788),
REGISTER_OOVPA(XGIsSwizzledFormat, 4361, PATCH),
// REGISTER_OOVPA(XGSwizzleRect, 5558, PATCH),
// REGISTER_OOVPA(XGUnswizzleRect, 5558, PATCH),
// REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 5788, PATCH),
};
// ******************************************************************

View File

@ -76,10 +76,10 @@ OOVPA_END;
// ******************************************************************
OOVPATable XG_5849[1] = {
OOVPA_TABLE_ENTRY(XGIsSwizzledFormat, 4361),
// OOVPA_TABLE_ENTRY(XGSwizzleRect, 5558), // Leave unpatched
// OOVPA_TABLE_ENTRY(XGUnswizzleRect, 5558), // Leave unpatched
// OOVPA_TABLE_ENTRY(XFONT_OpenBitmapFontFromMemory, 5849),
REGISTER_OOVPA(XGIsSwizzledFormat, 4361, PATCH),
// REGISTER_OOVPA(XGSwizzleRect, 5558, PATCH), // Leave unpatched
// REGISTER_OOVPA(XGUnswizzleRect, 5558, PATCH), // Leave unpatched
// REGISTER_OOVPA(XFONT_OpenBitmapFontFromMemory, 5849, PATCH),
};
// ******************************************************************

View File

@ -41,7 +41,7 @@ OOVPA_XREF(XNetStartup, 3911, 9,
XRefOne)
// XNetStartup+0x07 : call [XnInit]
{ 0x07, XREF_XNINIT }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x07, XREF_XNINIT ), // (Offset,Value)-Pair #1
// XNetStartup+0x00 : push 0
{ 0x00, 0x6A }, // (Offset,Value)-Pair #2
@ -67,7 +67,7 @@ OOVPA_XREF(WSAStartup, 3911, 11,
XRefOne)
// WSAStartup+0x07 : call [XnInit]
{ 0x07, XREF_XNINIT }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x07, XREF_XNINIT ), // (Offset,Value)-Pair #1
// WSAStartup+0x01 : push 1; xor ebx, ebx
{ 0x01, 0x6A }, // (Offset,Value)-Pair #2
@ -137,10 +137,10 @@ OOVPA_END;
// ******************************************************************
OOVPATable XNet_3911[] = {
OOVPA_TABLE_ENTRY(XNetStartup, 3911),
OOVPA_TABLE_ENTRY(WSAStartup, 3911),
OOVPA_TABLE_XREF(XnInit, 3911),
OOVPA_TABLE_ENTRY(XNetGetEthernetLinkStatus, 3911),
REGISTER_OOVPA(XNetStartup, 3911, PATCH),
REGISTER_OOVPA(WSAStartup, 3911, PATCH),
REGISTER_OOVPA(XnInit, 3911, XREF),
REGISTER_OOVPA(XNetGetEthernetLinkStatus, 3911, PATCH),
};
// ******************************************************************

View File

@ -35,7 +35,7 @@
// ******************************************************************
// * XnInit
// ******************************************************************
OOVPA_XREF_LARGE(XnInit, 4627, 18,
OOVPA_XREF(XnInit, 4627, 18,
XREF_XNINIT,
XRefZero)
@ -80,7 +80,7 @@ OOVPA_XREF(XNetStartup, 4627, 8,
XRefOne)
// XNetStartup+0x0F : call [XnInit]
{ 0x10, XREF_XNINIT }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x10, XREF_XNINIT ), // (Offset,Value)-Pair #1
// XNetStartup+0x00 : xor eax, eax
{ 0x00, 0x33 }, // (Offset,Value)-Pair #2
@ -109,7 +109,7 @@ OOVPA_XREF(WSAStartup, 4627, 9,
XRefOne)
// WSAStartup+0x0F : call [XnInit]
{ 0x14, XREF_XNINIT }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x14, XREF_XNINIT ), // (Offset,Value)-Pair #1
// WSAStartup+0x00 : push [esp+0x08]
{ 0x00, 0xFF }, // (Offset,Value)-Pair #2
@ -128,7 +128,7 @@ OOVPA_END;
// ******************************************************************
// * socket
// ******************************************************************
OOVPA_NO_XREF_LARGE(socket, 4627, 20)
OOVPA_NO_XREF(socket, 4627, 20)
// socket+0x13 : push 0x276D
{ 0x0013, 0x68 }, // (Offset,Value)-Pair #1
@ -329,14 +329,14 @@ OOVPA_END;
// * XNet_4627
// ******************************************************************
OOVPATable XNet_4627[] = {
OOVPA_TABLE_ENTRY(XNetStartup, 4627), // same as xonline 4361
OOVPA_TABLE_ENTRY(WSAStartup, 4627), // same as xonline 4361
OOVPA_TABLE_XREF(XnInit, 4627),
OOVPA_TABLE_PATCH_EmuThis(socket, 4627),
OOVPA_TABLE_PATCH_EmuThis(connect, 4627),
OOVPA_TABLE_PATCH_EmuThis(send, 4627),
OOVPA_TABLE_PATCH_EmuThis(recv, 4627),
OOVPA_TABLE_PATCH_EmuThis(ioctlsocket, 4627),
REGISTER_OOVPA(XNetStartup, 4627, PATCH), // same as xonline 4361
REGISTER_OOVPA(WSAStartup, 4627, PATCH), // same as xonline 4361
REGISTER_OOVPA(XnInit, 4627, XREF),
REGISTER_OOVPA(socket, 4627, EMUTHIS),
REGISTER_OOVPA(connect, 4627, EMUTHIS),
REGISTER_OOVPA(send, 4627, EMUTHIS),
REGISTER_OOVPA(recv, 4627, EMUTHIS),
REGISTER_OOVPA(ioctlsocket, 4627, EMUTHIS),
};
// ******************************************************************

View File

@ -41,7 +41,7 @@ OOVPA_XREF(XNetStartup, 4361, 8,
XRefOne)
// XNetStartup+0x0F : call [XnInit]
{ 0x10, XREF_XNINIT }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x10, XREF_XNINIT ), // (Offset,Value)-Pair #1
// XNetStartup+0x00 : xor eax, eax
{ 0x00, 0x33 }, // (Offset,Value)-Pair #2
@ -70,7 +70,7 @@ OOVPA_XREF(WSAStartup, 4361, 9,
XRefOne)
// WSAStartup+0x0F : call [XnInit]
{ 0x14, XREF_XNINIT }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x14, XREF_XNINIT ), // (Offset,Value)-Pair #1
// WSAStartup+0x00 : push [esp+0x08]
{ 0x00, 0xFF }, // (Offset,Value)-Pair #2
@ -207,13 +207,13 @@ OOVPA_END;
// ******************************************************************
OOVPATable XOnline_4361[] = {
OOVPA_TABLE_ENTRY(XNetStartup, 4361),
OOVPA_TABLE_ENTRY(WSAStartup, 4361),
OOVPA_TABLE_XREF(XnInit, 4361),
OOVPA_TABLE_PATCH_EmuThis(socket, 4361),
OOVPA_TABLE_PATCH_EmuThis(bind, 4361),
OOVPA_TABLE_PATCH_EmuThis(listen, 4361),
OOVPA_TABLE_PATCH_EmuThis(ioctlsocket, 4361),
REGISTER_OOVPA(XNetStartup, 4361, PATCH),
REGISTER_OOVPA(WSAStartup, 4361, PATCH),
REGISTER_OOVPA(XnInit, 4361, XREF),
REGISTER_OOVPA(socket, 4361, EMUTHIS),
REGISTER_OOVPA(bind, 4361, EMUTHIS),
REGISTER_OOVPA(listen, 4361, EMUTHIS),
REGISTER_OOVPA(ioctlsocket, 4361, EMUTHIS),
};
// ******************************************************************

View File

@ -97,15 +97,15 @@ OOVPA_END;
// ******************************************************************
OOVPATable XOnline_4627[] ={
OOVPA_TABLE_ENTRY(XNetStartup, 4361),
OOVPA_TABLE_ENTRY(WSAStartup, 4361),
OOVPA_TABLE_XREF(XnInit, 4627),
OOVPA_TABLE_PATCH_EmuThis(socket, 4361),
OOVPA_TABLE_PATCH_EmuThis(bind, 4361),
OOVPA_TABLE_PATCH_EmuThis(listen, 4361),
OOVPA_TABLE_PATCH_EmuThis(ioctlsocket, 4361),
OOVPA_TABLE_ENTRY(XNetGetEthernetLinkStatus, 4627),
OOVPA_TABLE_XREF(XoUpdateLaunchNewImageInternal, 4627),
REGISTER_OOVPA(XNetStartup, 4361, PATCH),
REGISTER_OOVPA(WSAStartup, 4361, PATCH),
REGISTER_OOVPA(XnInit, 4627, XREF),
REGISTER_OOVPA(socket, 4361, EMUTHIS),
REGISTER_OOVPA(bind, 4361, EMUTHIS),
REGISTER_OOVPA(listen, 4361, EMUTHIS),
REGISTER_OOVPA(ioctlsocket, 4361, EMUTHIS),
REGISTER_OOVPA(XNetGetEthernetLinkStatus, 4627, PATCH),
REGISTER_OOVPA(XoUpdateLaunchNewImageInternal, 4627, XREF),
};
// ******************************************************************

View File

@ -78,7 +78,7 @@ OOVPA_XREF(XOnlineLogon, 5344, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x0B, XREF_CXo_XOnlineLogon },
XREF_ENTRY( 0x0B, XREF_CXo_XOnlineLogon ),
{ 0x00, 0x55 },
{ 0x01, 0x8B },
@ -94,16 +94,16 @@ OOVPA_END;
// ******************************************************************
OOVPATable XOnline_5233[] = {
OOVPA_TABLE_ENTRY(XNetStartup, 5344),
OOVPA_TABLE_ENTRY(WSAStartup, 4361),
OOVPA_TABLE_XREF(XnInit, 4627),
// OOVPA_TABLE_PATCH_EmuThis(socket, 4361),
OOVPA_TABLE_PATCH_EmuThis(bind, 4361),
// OOVPA_TABLE_PATCH_EmuThis(listen, 4361),
OOVPA_TABLE_PATCH_EmuThis(ioctlsocket, 4361),
OOVPA_TABLE_ENTRY(XNetGetEthernetLinkStatus, 5344),
OOVPA_TABLE_XREF(CXo_XOnlineLogon, 5344),
OOVPA_TABLE_ENTRY(XOnlineLogon, 5344),
REGISTER_OOVPA(XNetStartup, 5344, PATCH),
REGISTER_OOVPA(WSAStartup, 4361, PATCH),
REGISTER_OOVPA(XnInit, 4627, XREF),
// REGISTER_OOVPA(socket, 4361, EMUTHIS),
REGISTER_OOVPA(bind, 4361, EMUTHIS),
// REGISTER_OOVPA(listen, 4361, EMUTHIS),
REGISTER_OOVPA(ioctlsocket, 4361, EMUTHIS),
REGISTER_OOVPA(XNetGetEthernetLinkStatus, 5344, PATCH),
REGISTER_OOVPA(CXo_XOnlineLogon, 5344, XREF),
REGISTER_OOVPA(XOnlineLogon, 5344, PATCH),
};
// ******************************************************************

View File

@ -89,7 +89,7 @@ OOVPA_XREF(XOnlineLogon, 5344, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x0B, XREF_CXo_XOnlineLogon },
XREF_ENTRY( 0x0B, XREF_CXo_XOnlineLogon ),
{ 0x00, 0x55 },
{ 0x01, 0x8B },
@ -122,14 +122,14 @@ OOVPA_END;
// ******************************************************************
OOVPATable XOnline_5558[] = {
OOVPA_TABLE_ENTRY(XNetStartup, 5344),
OOVPA_TABLE_ENTRY(WSAStartup, 5558),
OOVPA_TABLE_XREF(XnInit, 4627),
// OOVPA_TABLE_PATCH_EmuThis(socket, 4361),
OOVPA_TABLE_PATCH_EmuThis(bind, 4361),
// OOVPA_TABLE_PATCH_EmuThis(listen, 4361),
OOVPA_TABLE_PATCH_EmuThis(ioctlsocket, 4361),
OOVPA_TABLE_ENTRY(XNetGetEthernetLinkStatus, 5344),
REGISTER_OOVPA(XNetStartup, 5344, PATCH),
REGISTER_OOVPA(WSAStartup, 5558, PATCH),
REGISTER_OOVPA(XnInit, 4627, XREF),
// REGISTER_OOVPA(socket, 4361, EMUTHIS),
REGISTER_OOVPA(bind, 4361, EMUTHIS),
// REGISTER_OOVPA(listen, 4361, EMUTHIS),
REGISTER_OOVPA(ioctlsocket, 4361, EMUTHIS),
REGISTER_OOVPA(XNetGetEthernetLinkStatus, 5344, PATCH),
};
// ******************************************************************

View File

@ -98,12 +98,12 @@ OOVPA_END;
// * XOnline_5788
// ******************************************************************
OOVPATable XOnline_5788[] = {
OOVPA_TABLE_ENTRY(XNetStartup, 5788),
OOVPA_TABLE_ENTRY(WSAStartup, 5788),
OOVPA_TABLE_XREF(XnInit, 5788),
OOVPA_TABLE_ENTRY(XNetGetEthernetLinkStatus, 5788),
OOVPA_TABLE_PATCH_EmuThis(bind, 4361),
OOVPA_TABLE_PATCH_EmuThis(ioctlsocket, 4361),
REGISTER_OOVPA(XNetStartup, 5788, PATCH),
REGISTER_OOVPA(WSAStartup, 5788, PATCH),
REGISTER_OOVPA(XnInit, 5788, XREF),
REGISTER_OOVPA(XNetGetEthernetLinkStatus, 5788, PATCH),
REGISTER_OOVPA(bind, 4361, EMUTHIS),
REGISTER_OOVPA(ioctlsocket, 4361, EMUTHIS),
};
// ******************************************************************

View File

@ -88,10 +88,10 @@ OOVPA_END;
// * XOnline_5849
// ******************************************************************
OOVPATable XOnline_5849[] = {
OOVPA_TABLE_ENTRY(XNetStartup, 5849),
OOVPA_TABLE_ENTRY(WSAStartup, 5849),
OOVPA_TABLE_XREF(XnInit, 5849),
OOVPA_TABLE_ENTRY(XNetGetEthernetLinkStatus, 5849),
REGISTER_OOVPA(XNetStartup, 5849, PATCH),
REGISTER_OOVPA(WSAStartup, 5849, PATCH),
REGISTER_OOVPA(XnInit, 5849, XREF),
REGISTER_OOVPA(XNetGetEthernetLinkStatus, 5849, PATCH),
};
// ******************************************************************

View File

@ -107,7 +107,7 @@ OOVPA_XREF(IXACTEngine_RegisterWaveBank, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_XACT_CEngine_RegisterWaveBank },
XREF_ENTRY( 0x1D, XREF_XACT_CEngine_RegisterWaveBank ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -185,7 +185,7 @@ OOVPA_XREF(IXACTEngine_RegisterStreamedWaveBank, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_XACT_CEngine_RegisterStreamedWaveBank },
XREF_ENTRY( 0x19, XREF_XACT_CEngine_RegisterStreamedWaveBank ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -206,7 +206,7 @@ OOVPA_XREF(IXACTEngine_RegisterStreamedWaveBank, 4928, 10,
XRefOne)
// IXACTEngine_RegisterStreamedWaveBank+0x22 : call XACT::CEngine::RegisterStreamedWaveBank
{ 0x23, XREF_XACT_CEngine_RegisterStreamedWaveBank },
XREF_ENTRY( 0x23, XREF_XACT_CEngine_RegisterStreamedWaveBank ),
// IXACTEngine_RegisterStreamedWaveBank+0x0B : movzx esi, al
{ 0x0B, 0x0F },
@ -274,7 +274,7 @@ OOVPA_XREF(IXACTEngine_CreateSoundBank, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_XACT_CEngine_CreateSoundBank },
XREF_ENTRY( 0x1D, XREF_XACT_CEngine_CreateSoundBank ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -293,7 +293,7 @@ OOVPA_XREF(IXACTEngine_CreateSoundBank, 4928, 10,
XRefNoSaveIndex,
XRefOne)
{ 0x27, XREF_XACT_CEngine_CreateSoundBank },
XREF_ENTRY( 0x27, XREF_XACT_CEngine_CreateSoundBank ),
// IXACTEngine_CreateSoundBank+0x07 : push [ebp+8+0x10]
{ 0x07, 0xFF },
@ -333,7 +333,7 @@ OOVPA_XREF(IXACTEngine_DownloadEffectsImage, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x1F, XREF_XACT_CEngine_DownloadEffectsImage },
XREF_ENTRY( 0x1F, XREF_XACT_CEngine_DownloadEffectsImage ),
{ 0x03, 0xFF },
{ 0x08, 0x08 },
@ -370,7 +370,7 @@ OOVPA_XREF(IXACTEngine_CreateSoundSource, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_XACT_CEngine_CreateSoundSource },
XREF_ENTRY( 0x19, XREF_XACT_CEngine_CreateSoundSource ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -406,7 +406,7 @@ OOVPA_XREF(IXACTSoundBank_GetSoundCueIndexFromFriendlyName, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_XACT_CSoundBank_GetSoundCueIndexFromFriendlyName },
XREF_ENTRY( 0x19, XREF_XACT_CSoundBank_GetSoundCueIndexFromFriendlyName ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -457,7 +457,7 @@ OOVPA_XREF(IXACTEngine_RegisterNotification, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_XACT_CEngine_RegisterNotification },
XREF_ENTRY( 0x15, XREF_XACT_CEngine_RegisterNotification ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -494,7 +494,7 @@ OOVPA_XREF(IXACTEngine_GetNotification, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_XACT_CEngine_GetNotification },
XREF_ENTRY( 0x19, XREF_XACT_CEngine_GetNotification ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -554,7 +554,7 @@ OOVPA_XREF(IXACTEngine_UnRegisterWaveBank, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_XACT_CEngine_UnRegisterWaveBank },
XREF_ENTRY( 0x15, XREF_XACT_CEngine_UnRegisterWaveBank ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -574,7 +574,7 @@ OOVPA_XREF(IXACTEngine_UnRegisterWaveBank, 4928, 8,
XRefOne)
// IXACTEngine_UnRegisterWaveBank+0x1E : call XACT::CEngine::UnRegisterWaveBank
{ 0x1F, XREF_XACT_CEngine_UnRegisterWaveBank },
XREF_ENTRY( 0x1F, XREF_XACT_CEngine_UnRegisterWaveBank ),
{ 0x07, 0xFF },
{ 0x0E, 0x8B },
@ -590,34 +590,34 @@ OOVPA_END;
// ******************************************************************
OOVPATable XactEng_4627[] = {
OOVPA_TABLE_ENTRY(XACTEngineCreate, 4627),
OOVPA_TABLE_ENTRY(XACTEngineCreate, 4928),
OOVPA_TABLE_ENTRY(XACTEngineDoWork, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_RegisterWaveBank, 4627),
OOVPA_TABLE_ENTRY(IXACTEngine_RegisterWaveBank, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_RegisterStreamedWaveBank, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_RegisterStreamedWaveBank, 4928),
OOVPA_TABLE_ENTRY(IXACTEngine_RegisterStreamedWaveBank, 4627),
OOVPA_TABLE_ENTRY(IXACTEngine_RegisterStreamedWaveBank, 4928),
OOVPA_TABLE_XREF(XACT_CEngine_CreateSoundBank, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_CreateSoundBank, 4928),
OOVPA_TABLE_ENTRY(IXACTEngine_CreateSoundBank, 4627),
OOVPA_TABLE_ENTRY(IXACTEngine_CreateSoundBank, 4928),
OOVPA_TABLE_XREF(XACT_CEngine_DownloadEffectsImage, 4627),
OOVPA_TABLE_ENTRY(IXACTEngine_DownloadEffectsImage, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_CreateSoundSource, 4627),
OOVPA_TABLE_ENTRY(IXACTEngine_CreateSoundSource, 4627),
OOVPA_TABLE_XREF(XACT_CSoundBank_GetSoundCueIndexFromFriendlyName, 4627),
OOVPA_TABLE_ENTRY(IXACTSoundBank_GetSoundCueIndexFromFriendlyName, 4627),
OOVPA_TABLE_ENTRY(IXACTSoundBank_Play, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_RegisterNotification, 4627),
OOVPA_TABLE_ENTRY(IXACTEngine_RegisterNotification, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_GetNotification, 4627),
OOVPA_TABLE_ENTRY(IXACTEngine_GetNotification, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_UnRegisterWaveBank, 4627),
OOVPA_TABLE_XREF(XACT_CEngine_UnRegisterWaveBank, 4928),
OOVPA_TABLE_ENTRY(IXACTEngine_UnRegisterWaveBank, 4627),
OOVPA_TABLE_ENTRY(IXACTEngine_UnRegisterWaveBank, 4928),
REGISTER_OOVPA(XACTEngineCreate, 4627, PATCH),
REGISTER_OOVPA(XACTEngineCreate, 4928, PATCH),
REGISTER_OOVPA(XACTEngineDoWork, 4627, PATCH),
REGISTER_OOVPA(XACT_CEngine_RegisterWaveBank, 4627, XREF),
REGISTER_OOVPA(IXACTEngine_RegisterWaveBank, 4627, PATCH),
REGISTER_OOVPA(XACT_CEngine_RegisterStreamedWaveBank, 4627, XREF),
REGISTER_OOVPA(XACT_CEngine_RegisterStreamedWaveBank, 4928, XREF),
REGISTER_OOVPA(IXACTEngine_RegisterStreamedWaveBank, 4627, PATCH),
REGISTER_OOVPA(IXACTEngine_RegisterStreamedWaveBank, 4928, PATCH),
REGISTER_OOVPA(XACT_CEngine_CreateSoundBank, 4627, XREF),
REGISTER_OOVPA(XACT_CEngine_CreateSoundBank, 4928, XREF),
REGISTER_OOVPA(IXACTEngine_CreateSoundBank, 4627, PATCH),
REGISTER_OOVPA(IXACTEngine_CreateSoundBank, 4928, PATCH),
REGISTER_OOVPA(XACT_CEngine_DownloadEffectsImage, 4627, XREF),
REGISTER_OOVPA(IXACTEngine_DownloadEffectsImage, 4627, PATCH),
REGISTER_OOVPA(XACT_CEngine_CreateSoundSource, 4627, XREF),
REGISTER_OOVPA(IXACTEngine_CreateSoundSource, 4627, PATCH),
REGISTER_OOVPA(XACT_CSoundBank_GetSoundCueIndexFromFriendlyName, 4627, XREF),
REGISTER_OOVPA(IXACTSoundBank_GetSoundCueIndexFromFriendlyName, 4627, PATCH),
REGISTER_OOVPA(IXACTSoundBank_Play, 4627, PATCH),
REGISTER_OOVPA(XACT_CEngine_RegisterNotification, 4627, XREF),
REGISTER_OOVPA(IXACTEngine_RegisterNotification, 4627, PATCH),
REGISTER_OOVPA(XACT_CEngine_GetNotification, 4627, XREF),
REGISTER_OOVPA(IXACTEngine_GetNotification, 4627, PATCH),
REGISTER_OOVPA(XACT_CEngine_UnRegisterWaveBank, 4627, XREF),
REGISTER_OOVPA(XACT_CEngine_UnRegisterWaveBank, 4928, XREF),
REGISTER_OOVPA(IXACTEngine_UnRegisterWaveBank, 4627, PATCH),
REGISTER_OOVPA(IXACTEngine_UnRegisterWaveBank, 4928, PATCH),
};
// ******************************************************************

View File

@ -402,7 +402,7 @@ OOVPA_XREF(XInputClose, 3911, 8,
XRefOne)
// XInputClose+0x05 : call [fCloseDevice]
{ 0x05, XREF_FCLOSEDEVICE }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x05, XREF_FCLOSEDEVICE ), // (Offset,Value)-Pair #1
// XInputClose+0x00 : mov ecx, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -975,43 +975,43 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_3911[] = {
OOVPA_TABLE_ENTRY(GetExitCodeThread, 3911),
OOVPA_TABLE_ENTRY(XInitDevices, 3911),
// OOVPA_TABLE_ENTRY(CreateMutex, 3911), // Too High Level
// OOVPA_TABLE_ENTRY(CreateThread, 3911), // Too High Level
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911), //*/
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(XRegisterThreadNotifyRoutine, 3911),
// OOVPA_TABLE_ENTRY(XCalculateSignatureBegin, 3911),
OOVPA_TABLE_ENTRY(XGetDevices, 3911),
OOVPA_TABLE_ENTRY(XGetDeviceChanges, 3911),
OOVPA_TABLE_ENTRY(XInputOpen, 3911),
OOVPA_TABLE_XREF(XID_fCloseDevice, 3911),
OOVPA_TABLE_ENTRY(XInputClose, 3911),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 3911),
OOVPA_TABLE_ENTRY(XInputGetState, 3911),
OOVPA_TABLE_ENTRY(XInputSetState, 3911),
OOVPA_TABLE_ENTRY(SetThreadPriorityBoost, 3911),
OOVPA_TABLE_ENTRY(GetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(CreateFiber, 3911),
OOVPA_TABLE_ENTRY(DeleteFiber, 3911),
OOVPA_TABLE_ENTRY(SwitchToFiber, 3911),
OOVPA_TABLE_ENTRY(ConvertThreadToFiber, 3911),
OOVPA_TABLE_ENTRY(SignalObjectAndWait, 3911),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
// OOVPA_TABLE_ENTRY(lstrcmpiW, 3911),
OOVPA_TABLE_PATCH(XMountAlternateTitleA, 3911, XMountAlternateTitle),
OOVPA_TABLE_PATCH(XUnmountAlternateTitleA, 3911, XUnmountAlternateTitle),
OOVPA_TABLE_ENTRY(XMountMUA, 3911),
OOVPA_TABLE_PATCH(XLaunchNewImageA, 3911, XLaunchNewImage),
OOVPA_TABLE_ENTRY(XGetLaunchInfo, 3911),
OOVPA_TABLE_ENTRY(XAutoPowerDownResetTimer, 3911),
OOVPA_TABLE_ENTRY(XMountMURootA, 3911),
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 3911),
// OOVPA_TABLE_ENTRY(ReadFileEx, 3911),
// OOVPA_TABLE_ENTRY(WriteFileEx, 3911),
// OOVPA_TABLE_ENTRY(CloseHandle, 3911),
// OOVPA_TABLE_ENTRY(ExitThread, 3911),
REGISTER_OOVPA(GetExitCodeThread, 3911, PATCH),
REGISTER_OOVPA(XInitDevices, 3911, PATCH),
// REGISTER_OOVPA(CreateMutex, 3911, PATCH), // Too High Level
// REGISTER_OOVPA(CreateThread, 3911, PATCH), // Too High Level
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH), //*/
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH),
// REGISTER_OOVPA(XCalculateSignatureBegin, 3911, PATCH),
REGISTER_OOVPA(XGetDevices, 3911, PATCH),
REGISTER_OOVPA(XGetDeviceChanges, 3911, PATCH),
REGISTER_OOVPA(XInputOpen, 3911, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 3911, XREF),
REGISTER_OOVPA(XInputClose, 3911, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 3911, PATCH),
REGISTER_OOVPA(XInputGetState, 3911, PATCH),
REGISTER_OOVPA(XInputSetState, 3911, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 3911, PATCH),
REGISTER_OOVPA(GetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(CreateFiber, 3911, PATCH),
REGISTER_OOVPA(DeleteFiber, 3911, PATCH),
REGISTER_OOVPA(SwitchToFiber, 3911, PATCH),
REGISTER_OOVPA(ConvertThreadToFiber, 3911, PATCH),
REGISTER_OOVPA(SignalObjectAndWait, 3911, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
// REGISTER_OOVPA(lstrcmpiW, 3911, PATCH),
REGISTER_OOVPA(XMountAlternateTitle, 3911, ALIAS, XMountAlternateTitleA),
REGISTER_OOVPA(XUnmountAlternateTitle, 3911, ALIAS, XUnmountAlternateTitleA),
REGISTER_OOVPA(XMountMUA, 3911, PATCH),
REGISTER_OOVPA(XLaunchNewImage, 3911, ALIAS, XLaunchNewImageA),
REGISTER_OOVPA(XGetLaunchInfo, 3911, PATCH),
REGISTER_OOVPA(XAutoPowerDownResetTimer, 3911, PATCH),
REGISTER_OOVPA(XMountMURootA, 3911, PATCH),
REGISTER_OOVPA(XMountUtilityDrive, 3911, PATCH),
// REGISTER_OOVPA(ReadFileEx, 3911, PATCH),
// REGISTER_OOVPA(WriteFileEx, 3911, PATCH),
// REGISTER_OOVPA(CloseHandle, 3911, PATCH),
// REGISTER_OOVPA(ExitThread, 3911, PATCH),
};
// ******************************************************************

View File

@ -163,30 +163,30 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_4034[] = {
OOVPA_TABLE_ENTRY(XInitDevices, 3911),
OOVPA_TABLE_ENTRY(XGetDevices, 3911),
REGISTER_OOVPA(XInitDevices, 3911, PATCH),
REGISTER_OOVPA(XGetDevices, 3911, PATCH),
/* These functions havent been rev'd yet (may be same as new/old)
OOVPA_TABLE_ENTRY(XInputOpen, 4034),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 4361),
OOVPA_TABLE_ENTRY(XInputGetState, 4361),
REGISTER_OOVPA(XInputOpen, 4034, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 4361, PATCH),
REGISTER_OOVPA(XInputGetState, 4361, PATCH),
*/
// OOVPA_TABLE_ENTRY(CreateThread, 3911), // Too High Level
// OOVPA_TABLE_ENTRY(CloseHandle, (???)),
OOVPA_TABLE_ENTRY(CreateFiber, 3911),
OOVPA_TABLE_ENTRY(DeleteFiber, 3911),
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(SignalObjectAndWait, 3911),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
OOVPA_TABLE_ENTRY(XInputSetState, 3911),
OOVPA_TABLE_ENTRY(XRegisterThreadNotifyRoutine, 3911),
OOVPA_TABLE_ENTRY(XGetDeviceChanges, 3911),
OOVPA_TABLE_XREF(XID_fCloseDevice, 3911),
OOVPA_TABLE_ENTRY(XInputClose, 3911),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 3911),
OOVPA_TABLE_ENTRY(GetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(XInputOpen, 3911),
OOVPA_TABLE_ENTRY(XInputGetState, 3911),
// REGISTER_OOVPA(CreateThread, 3911, PATCH), // Too High Level
// REGISTER_OOVPA(CloseHandle, (???, PATCH)),
REGISTER_OOVPA(CreateFiber, 3911, PATCH),
REGISTER_OOVPA(DeleteFiber, 3911, PATCH),
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(SignalObjectAndWait, 3911, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
REGISTER_OOVPA(XInputSetState, 3911, PATCH),
REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH),
REGISTER_OOVPA(XGetDeviceChanges, 3911, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 3911, XREF),
REGISTER_OOVPA(XInputClose, 3911, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 3911, PATCH),
REGISTER_OOVPA(GetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(XInputOpen, 3911, PATCH),
REGISTER_OOVPA(XInputGetState, 3911, PATCH),
};
// ******************************************************************

View File

@ -210,31 +210,31 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_4134[] = {
OOVPA_TABLE_ENTRY(XInitDevices, 3911), //*/
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(GetExitCodeThread, 3911),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XInputOpen, 4134),
OOVPA_TABLE_ENTRY(XInputGetState, 4134),
OOVPA_TABLE_ENTRY(XInputSetState, 3911),
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4134),
OOVPA_TABLE_ENTRY(CreateFiber, 3911),
OOVPA_TABLE_ENTRY(DeleteFiber, 3911),
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(XRegisterThreadNotifyRoutine, 3911),
OOVPA_TABLE_ENTRY(XGetDeviceChanges, 3911),
OOVPA_TABLE_XREF(XID_fCloseDevice, 3911),
OOVPA_TABLE_ENTRY(XInputClose, 3911),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 3911),
OOVPA_TABLE_ENTRY(GetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(XInputPoll, 4134),
OOVPA_TABLE_ENTRY(SetThreadPriorityBoost, 3911),
OOVPA_TABLE_ENTRY(SignalObjectAndWait, 3911),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
OOVPA_TABLE_ENTRY(XMountMUA, 4134),
OOVPA_TABLE_ENTRY(timeSetEvent, 4134),
OOVPA_TABLE_ENTRY(timeKillEvent, 4134),
OOVPA_TABLE_PATCH(XLaunchNewImageA, 3911, XLaunchNewImage),
REGISTER_OOVPA(XInitDevices, 3911, PATCH), //*/
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(GetExitCodeThread, 3911, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XInputOpen, 4134, PATCH),
REGISTER_OOVPA(XInputGetState, 4134, PATCH),
REGISTER_OOVPA(XInputSetState, 3911, PATCH),
REGISTER_OOVPA(XMountUtilityDrive, 4134, PATCH),
REGISTER_OOVPA(CreateFiber, 3911, PATCH),
REGISTER_OOVPA(DeleteFiber, 3911, PATCH),
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH),
REGISTER_OOVPA(XGetDeviceChanges, 3911, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 3911, XREF),
REGISTER_OOVPA(XInputClose, 3911, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 3911, PATCH),
REGISTER_OOVPA(GetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(XInputPoll, 4134, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 3911, PATCH),
REGISTER_OOVPA(SignalObjectAndWait, 3911, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
REGISTER_OOVPA(XMountMUA, 4134, PATCH),
REGISTER_OOVPA(timeSetEvent, 4134, PATCH),
REGISTER_OOVPA(timeKillEvent, 4134, PATCH),
REGISTER_OOVPA(XLaunchNewImage, 3911, ALIAS, XLaunchNewImageA),
};
// ******************************************************************

View File

@ -339,26 +339,26 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_4361[] = {
OOVPA_TABLE_ENTRY(XInitDevices, 3911),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XGetDeviceChanges, 3911),
OOVPA_TABLE_ENTRY(XInputOpen, 4361),
OOVPA_TABLE_XREF(XID_fCloseDevice, 4361),
OOVPA_TABLE_ENTRY(XInputClose, 3911),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 4361),
OOVPA_TABLE_ENTRY(XInputGetState, 4361),
OOVPA_TABLE_ENTRY(XInputSetState, 4361),
// OOVPA_TABLE_ENTRY(XapiThreadStartup, 4361),
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4134), // TODO: This needs to be verified on 4361, not just 4242!
OOVPA_TABLE_ENTRY(CreateFiber, 3911),
OOVPA_TABLE_ENTRY(DeleteFiber, 3911),
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(GetExitCodeThread, 3911),
OOVPA_TABLE_ENTRY(SetThreadPriorityBoost, 3911),
OOVPA_TABLE_ENTRY(SignalObjectAndWait, 3911),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
OOVPA_TABLE_ENTRY(XMountMUA, 4361),
REGISTER_OOVPA(XInitDevices, 3911, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XGetDeviceChanges, 3911, PATCH),
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 4361, XREF),
REGISTER_OOVPA(XInputClose, 3911, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 4361, PATCH),
REGISTER_OOVPA(XInputGetState, 4361, PATCH),
REGISTER_OOVPA(XInputSetState, 4361, PATCH),
// REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH),
REGISTER_OOVPA(XMountUtilityDrive, 4134, PATCH), // TODO: This needs to be verified on 4361, not just 4242!
REGISTER_OOVPA(CreateFiber, 3911, PATCH),
REGISTER_OOVPA(DeleteFiber, 3911, PATCH),
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(GetExitCodeThread, 3911, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 3911, PATCH),
REGISTER_OOVPA(SignalObjectAndWait, 3911, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
REGISTER_OOVPA(XMountMUA, 4361, PATCH),
};
// ******************************************************************

View File

@ -58,26 +58,26 @@ OOVPA_END;
// * XAPI_4432
// ******************************************************************
OOVPATable XAPI_4432[] = {
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4432),
OOVPA_TABLE_ENTRY(XInitDevices, 3911),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XInputOpen, 4361),
OOVPA_TABLE_XREF(XID_fCloseDevice, 4361),
OOVPA_TABLE_ENTRY(XInputClose, 3911),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 4361),
OOVPA_TABLE_ENTRY(XInputGetState, 4361),
OOVPA_TABLE_ENTRY(XInputSetState, 4361),
// OOVPA_TABLE_ENTRY(XapiThreadStartup, 4361),
OOVPA_TABLE_ENTRY(GetExitCodeThread, 3911),
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(SignalObjectAndWait, 3911),
OOVPA_TABLE_ENTRY(CreateFiber, 3911),
OOVPA_TABLE_ENTRY(DeleteFiber, 3911),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
OOVPA_TABLE_ENTRY(timeSetEvent, 4134),
OOVPA_TABLE_ENTRY(timeKillEvent, 4134),
OOVPA_TABLE_PATCH(XLaunchNewImageA, 3911, XLaunchNewImage),
REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH),
REGISTER_OOVPA(XInitDevices, 3911, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 4361, XREF),
REGISTER_OOVPA(XInputClose, 3911, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 4361, PATCH),
REGISTER_OOVPA(XInputGetState, 4361, PATCH),
REGISTER_OOVPA(XInputSetState, 4361, PATCH),
// REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH),
REGISTER_OOVPA(GetExitCodeThread, 3911, PATCH),
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(SignalObjectAndWait, 3911, PATCH),
REGISTER_OOVPA(CreateFiber, 3911, PATCH),
REGISTER_OOVPA(DeleteFiber, 3911, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
REGISTER_OOVPA(timeSetEvent, 4134, PATCH),
REGISTER_OOVPA(timeKillEvent, 4134, PATCH),
REGISTER_OOVPA(XLaunchNewImage, 3911, ALIAS, XLaunchNewImageA),
};
// ******************************************************************

View File

@ -144,7 +144,7 @@ OOVPA_XREF(XInputClose, 4928, 8,
XRefOne)
// XInputClose+0x05 : call [fCloseDevice]
{ 0x05, XREF_FCLOSEDEVICE }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x05, XREF_FCLOSEDEVICE ), // (Offset,Value)-Pair #1
// XInputClose+0x00 : mov ecx, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #2
@ -638,59 +638,59 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_4627[] = {
OOVPA_TABLE_ENTRY(XFormatUtilityDrive, 4627),
OOVPA_TABLE_ENTRY(SetThreadPriorityBoost, 4627),
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(GetThreadPriority, 4627),
OOVPA_TABLE_ENTRY(XRegisterThreadNotifyRoutine, 3911),
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4432),
OOVPA_TABLE_ENTRY(XInitDevices, 3911),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XInputOpen, 4361),
OOVPA_TABLE_ENTRY(XInputPoll, 4134),
OOVPA_TABLE_XREF(XID_fCloseDevice, 4627),
OOVPA_TABLE_XREF(XID_fCloseDevice, 4928),
OOVPA_TABLE_ENTRY(XInputClose, 4928),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 4361),
OOVPA_TABLE_ENTRY(XInputGetState, 4361),
OOVPA_TABLE_ENTRY(XInputGetState, 4928),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 4928),
OOVPA_TABLE_PATCH(XInputGetCapabilities2, 4928, XInputGetCapabilities),
OOVPA_TABLE_PATCH(XInputGetCapabilities3, 4928, XInputGetCapabilities),
OOVPA_TABLE_PATCH(XInputGetCapabilities4, 4928, XInputGetCapabilities),
OOVPA_TABLE_PATCH(XInputGetCapabilities5, 4928, XInputGetCapabilities),
OOVPA_TABLE_ENTRY(XInputSetState, 4361),
OOVPA_TABLE_ENTRY(XInputSetState, 4928),
// OOVPA_TABLE_ENTRY(XapiThreadStartup, 4361), // obsolete?
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 4831),
OOVPA_TABLE_PATCH(XInputGetCapabilities2, 4831, XInputGetCapabilities),
OOVPA_TABLE_PATCH(XInputGetCapabilities3, 4831, XInputGetCapabilities),
OOVPA_TABLE_PATCH(XInputGetCapabilities4, 4831, XInputGetCapabilities),
OOVPA_TABLE_PATCH(XInputGetCapabilities5, 4831, XInputGetCapabilities),
OOVPA_TABLE_PATCH(XInputGetCapabilities6, 4928, XInputGetCapabilities),
// OOVPA_TABLE_ENTRY(XCalculateSignatureBeginEx, 4627), // +s, not necessary?
// OOVPA_TABLE_ENTRY(XCalculateSignatureBegin, 4627),
// OOVPA_TABLE_ENTRY(XCalculateSignatureUpdate, 4627),
// OOVPA_TABLE_ENTRY(XCalculateSignatureEnd, 4627), // s+
OOVPA_TABLE_ENTRY(CreateFiber, 3911),
OOVPA_TABLE_ENTRY(DeleteFiber, 3911),
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(GetExitCodeThread, 3911),
OOVPA_TABLE_ENTRY(GetOverlappedResult, 4627),
OOVPA_TABLE_PATCH(XLaunchNewImageA, 4627, XLaunchNewImage),
OOVPA_TABLE_PATCH(XLaunchNewImageA, 4928, XLaunchNewImage),
OOVPA_TABLE_ENTRY(XGetLaunchInfo, 4627),
OOVPA_TABLE_ENTRY(XSetProcessQuantumLength, 4627),
OOVPA_TABLE_ENTRY(SignalObjectAndWait, 3911),
OOVPA_TABLE_ENTRY(timeSetEvent, 4627),
OOVPA_TABLE_ENTRY(timeKillEvent, 4627),
OOVPA_TABLE_ENTRY(RaiseException, 4627),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
OOVPA_TABLE_PATCH(XMountAlternateTitleA, 4627, XMountAlternateTitle),
OOVPA_TABLE_PATCH(XMountAlternateTitleA, 4928, XMountAlternateTitle),
OOVPA_TABLE_PATCH(XUnmountAlternateTitleA, 4627, XUnmountAlternateTitle),
OOVPA_TABLE_ENTRY(XInputGetDeviceDescription, 4831),
// OOVPA_TABLE_ENTRY(MoveFileA, 4627),
REGISTER_OOVPA(XFormatUtilityDrive, 4627, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 4627, PATCH),
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(GetThreadPriority, 4627, PATCH),
REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH),
REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH),
REGISTER_OOVPA(XInitDevices, 3911, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
REGISTER_OOVPA(XInputPoll, 4134, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 4627, XREF),
REGISTER_OOVPA(XID_fCloseDevice, 4928, XREF),
REGISTER_OOVPA(XInputClose, 4928, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 4361, PATCH),
REGISTER_OOVPA(XInputGetState, 4361, PATCH),
REGISTER_OOVPA(XInputGetState, 4928, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 4928, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities2),
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities3),
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities4),
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities5),
REGISTER_OOVPA(XInputSetState, 4361, PATCH),
REGISTER_OOVPA(XInputSetState, 4928, PATCH),
// REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH), // obsolete?
REGISTER_OOVPA(XInputGetCapabilities, 4831, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities2),
REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities3),
REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities4),
REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities5),
REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities6),
// REGISTER_OOVPA(XCalculateSignatureBeginEx, 4627, PATCH), // +s, not necessary?
// REGISTER_OOVPA(XCalculateSignatureBegin, 4627, PATCH),
// REGISTER_OOVPA(XCalculateSignatureUpdate, 4627, PATCH),
// REGISTER_OOVPA(XCalculateSignatureEnd, 4627, PATCH), // s+
REGISTER_OOVPA(CreateFiber, 3911, PATCH),
REGISTER_OOVPA(DeleteFiber, 3911, PATCH),
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(GetExitCodeThread, 3911, PATCH),
REGISTER_OOVPA(GetOverlappedResult, 4627, PATCH),
REGISTER_OOVPA(XLaunchNewImage, 4627, ALIAS, XLaunchNewImageA),
REGISTER_OOVPA(XLaunchNewImage, 4928, ALIAS, XLaunchNewImageA),
REGISTER_OOVPA(XGetLaunchInfo, 4627, PATCH),
REGISTER_OOVPA(XSetProcessQuantumLength, 4627, PATCH),
REGISTER_OOVPA(SignalObjectAndWait, 3911, PATCH),
REGISTER_OOVPA(timeSetEvent, 4627, PATCH),
REGISTER_OOVPA(timeKillEvent, 4627, PATCH),
REGISTER_OOVPA(RaiseException, 4627, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
REGISTER_OOVPA(XMountAlternateTitle, 4627, ALIAS, XMountAlternateTitleA),
REGISTER_OOVPA(XMountAlternateTitle, 4928, ALIAS, XMountAlternateTitleA),
REGISTER_OOVPA(XUnmountAlternateTitle, 4627, ALIAS, XUnmountAlternateTitleA),
REGISTER_OOVPA(XInputGetDeviceDescription, 4831, PATCH),
// REGISTER_OOVPA(MoveFileA, 4627, PATCH),
};
// ******************************************************************

View File

@ -36,25 +36,25 @@
// * XAPI_4721
// ******************************************************************
OOVPATable XAPI_4721[] = {
// OOVPA_TABLE_ENTRY(RtlCreateHeap, 3911), // obsolete, (* unchanged since 1.0.4361 *) (* OR FARTHER *)
// OOVPA_TABLE_ENTRY(RtlAllocateHeap, 3911), // obsolete (* unchanged since 1.0.4361 *) (* OR FARTHER *)
// OOVPA_TABLE_ENTRY(RtlReAllocateHeap, 4627), // obsolete
// OOVPA_TABLE_ENTRY(RtlFreeHeap, 4627), // obsolete
// OOVPA_TABLE_ENTRY(RtlSizeHeap, 4627), // obsolete
// OOVPA_TABLE_ENTRY(RtlDestroyHeap, 4627), // obsolete
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4432),
OOVPA_TABLE_ENTRY(XInitDevices, 3911),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XInputOpen, 4361),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 4361),
OOVPA_TABLE_ENTRY(XInputGetState, 4361),
OOVPA_TABLE_ENTRY(XInputSetState, 4361),
OOVPA_TABLE_XREF(XID_fCloseDevice, 4361),
OOVPA_TABLE_ENTRY(XInputClose, 3911),
// OOVPA_TABLE_ENTRY(XInputClose, 4361),
// OOVPA_TABLE_ENTRY(XapiThreadStartup, 4361), // obsolete
// OOVPA_TABLE_ENTRY(XapiInitProcess, 4361), // obsolete, Too High Level
// OOVPA_TABLE_ENTRY(XapiBootDash, 3911), // obsolete
// REGISTER_OOVPA(RtlCreateHeap, 3911, PATCH), // obsolete, (* unchanged since 1.0.4361 *) (* OR FARTHER *)
// REGISTER_OOVPA(RtlAllocateHeap, 3911, PATCH), // obsolete (* unchanged since 1.0.4361 *) (* OR FARTHER *)
// REGISTER_OOVPA(RtlReAllocateHeap, 4627, PATCH), // obsolete
// REGISTER_OOVPA(RtlFreeHeap, 4627, PATCH), // obsolete
// REGISTER_OOVPA(RtlSizeHeap, 4627, PATCH), // obsolete
// REGISTER_OOVPA(RtlDestroyHeap, 4627, PATCH), // obsolete
REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH),
REGISTER_OOVPA(XInitDevices, 3911, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 4361, PATCH),
REGISTER_OOVPA(XInputGetState, 4361, PATCH),
REGISTER_OOVPA(XInputSetState, 4361, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 4361, XREF),
REGISTER_OOVPA(XInputClose, 3911, PATCH),
// REGISTER_OOVPA(XInputClose, 4361, PATCH),
// REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH), // obsolete
// REGISTER_OOVPA(XapiInitProcess, 4361, PATCH), // obsolete, Too High Level
// REGISTER_OOVPA(XapiBootDash, 3911, PATCH), // obsolete
};
// ******************************************************************

View File

@ -98,22 +98,22 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_5233[] = {
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(SetThreadPriorityBoost, 4627),
OOVPA_TABLE_ENTRY(GetThreadPriority, 4627),
OOVPA_TABLE_ENTRY(XRegisterThreadNotifyRoutine, 3911),
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4432),
OOVPA_TABLE_ENTRY(XInitDevices, 5233),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XGetDeviceChanges, 5233),
OOVPA_TABLE_ENTRY(XInputOpen, 4361),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 5233),
OOVPA_TABLE_XREF(XID_fCloseDevice, 4928),
OOVPA_TABLE_ENTRY(XInputClose, 4928),
OOVPA_TABLE_ENTRY(XInputGetState, 4928),
OOVPA_TABLE_ENTRY(XInputSetState, 5233),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 4627, PATCH),
REGISTER_OOVPA(GetThreadPriority, 4627, PATCH),
REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH),
REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH),
REGISTER_OOVPA(XInitDevices, 5233, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XGetDeviceChanges, 5233, PATCH),
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 5233, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 4928, XREF),
REGISTER_OOVPA(XInputClose, 4928, PATCH),
REGISTER_OOVPA(XInputGetState, 4928, PATCH),
REGISTER_OOVPA(XInputSetState, 5233, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
};
// ******************************************************************

View File

@ -229,7 +229,7 @@ OOVPA_XREF(XInputClose, 5558, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x05, XREF_FCLOSEDEVICE },
XREF_ENTRY( 0x05, XREF_FCLOSEDEVICE ),
{ 0x00, 0x8B },
{ 0x01, 0x4C },
@ -246,31 +246,31 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_5558[] = {
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(XRegisterThreadNotifyRoutine, 3911),
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4432),
OOVPA_TABLE_ENTRY(XInitDevices, 5233),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XGetDeviceChanges, 5233),
OOVPA_TABLE_ENTRY(XInputOpen, 4361),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 5558),
OOVPA_TABLE_ENTRY(XInputGetState, 5558),
OOVPA_TABLE_ENTRY(XInputSetState, 5233),
// OOVPA_TABLE_ENTRY(XapiThreadStartup, 4361), // obsolete?
OOVPA_TABLE_PATCH(XLaunchNewImageA, 5558, XLaunchNewImage),
OOVPA_TABLE_ENTRY(XGetLaunchInfo, 5558),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
OOVPA_TABLE_ENTRY(SetThreadPriorityBoost, 4627),
OOVPA_TABLE_ENTRY(GetThreadPriority, 4627),
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(XMountMUA, 5558),
OOVPA_TABLE_ENTRY(CreateFiber, 5558),
OOVPA_TABLE_ENTRY(DeleteFiber, 5558),
OOVPA_TABLE_ENTRY(SwitchToFiber, 5558),
OOVPA_TABLE_ENTRY(ConvertThreadToFiber, 5558),
// OOVPA_TABLE_ENTRY(XapiFiberStartup, 5558),
OOVPA_TABLE_XREF(XID_fCloseDevice, 5558),
OOVPA_TABLE_ENTRY(XInputClose, 5558),
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH),
REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH),
REGISTER_OOVPA(XInitDevices, 5233, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XGetDeviceChanges, 5233, PATCH),
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 5558, PATCH),
REGISTER_OOVPA(XInputGetState, 5558, PATCH),
REGISTER_OOVPA(XInputSetState, 5233, PATCH),
// REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH), // obsolete?
REGISTER_OOVPA(XLaunchNewImage, 5558, ALIAS, XLaunchNewImageA),
REGISTER_OOVPA(XGetLaunchInfo, 5558, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 4627, PATCH),
REGISTER_OOVPA(GetThreadPriority, 4627, PATCH),
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(XMountMUA, 5558, PATCH),
REGISTER_OOVPA(CreateFiber, 5558, PATCH),
REGISTER_OOVPA(DeleteFiber, 5558, PATCH),
REGISTER_OOVPA(SwitchToFiber, 5558, PATCH),
REGISTER_OOVPA(ConvertThreadToFiber, 5558, PATCH),
// REGISTER_OOVPA(XapiFiberStartup, 5558, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 5558, XREF),
REGISTER_OOVPA(XInputClose, 5558, PATCH),
};
// ******************************************************************

View File

@ -147,35 +147,35 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_5788[] = {
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4432),
OOVPA_TABLE_ENTRY(XInitDevices, 5233),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XInputOpen, 4361),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 5558),
OOVPA_TABLE_ENTRY(XInputGetState, 5558),
OOVPA_TABLE_ENTRY(XGetDeviceChanges, 5788),
// OOVPA_TABLE_ENTRY(XapiThreadStartup, 4361), // obsolete?
OOVPA_TABLE_ENTRY(XGetLaunchInfo, 5558),
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
OOVPA_TABLE_ENTRY(XRegisterThreadNotifyRoutine, 3911),
OOVPA_TABLE_ENTRY(GetThreadPriority, 5788),
OOVPA_TABLE_ENTRY(SetThreadPriorityBoost, 5788),
// OOVPA_TABLE_ENTRY(GetThreadPriorityBoost, 5788),
OOVPA_TABLE_ENTRY(XMountMUA, 5558),
OOVPA_TABLE_ENTRY(GetTimeZoneInformation, 3911),
OOVPA_TABLE_ENTRY(RaiseException, 5788),
OOVPA_TABLE_PATCH(XLaunchNewImageA, 5558, XLaunchNewImage),
OOVPA_TABLE_ENTRY(XInputSetState, 5233),
OOVPA_TABLE_ENTRY(XGetDeviceEnumerationStatus, 5788),
// OOVPA_TABLE_ENTRY(SwitchToThread, 5788),
OOVPA_TABLE_ENTRY(XFormatUtilityDrive, 4627),
OOVPA_TABLE_ENTRY(CreateFiber, 5558),
OOVPA_TABLE_ENTRY(DeleteFiber, 5558),
OOVPA_TABLE_ENTRY(SwitchToFiber, 5558),
OOVPA_TABLE_ENTRY(ConvertThreadToFiber, 5558),
OOVPA_TABLE_XREF(XID_fCloseDevice, 5558),
OOVPA_TABLE_ENTRY(XInputClose, 5558),
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH),
REGISTER_OOVPA(XInitDevices, 5233, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 5558, PATCH),
REGISTER_OOVPA(XInputGetState, 5558, PATCH),
REGISTER_OOVPA(XGetDeviceChanges, 5788, PATCH),
// REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH), // obsolete?
REGISTER_OOVPA(XGetLaunchInfo, 5558, PATCH),
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH),
REGISTER_OOVPA(GetThreadPriority, 5788, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 5788, PATCH),
// REGISTER_OOVPA(GetThreadPriorityBoost, 5788, PATCH),
REGISTER_OOVPA(XMountMUA, 5558, PATCH),
REGISTER_OOVPA(GetTimeZoneInformation, 3911, PATCH),
REGISTER_OOVPA(RaiseException, 5788, PATCH),
REGISTER_OOVPA(XLaunchNewImage, 5558, ALIAS, XLaunchNewImageA),
REGISTER_OOVPA(XInputSetState, 5233, PATCH),
REGISTER_OOVPA(XGetDeviceEnumerationStatus, 5788, PATCH),
// REGISTER_OOVPA(SwitchToThread, 5788, PATCH),
REGISTER_OOVPA(XFormatUtilityDrive, 4627, PATCH),
REGISTER_OOVPA(CreateFiber, 5558, PATCH),
REGISTER_OOVPA(DeleteFiber, 5558, PATCH),
REGISTER_OOVPA(SwitchToFiber, 5558, PATCH),
REGISTER_OOVPA(ConvertThreadToFiber, 5558, PATCH),
REGISTER_OOVPA(XID_fCloseDevice, 5558, XREF),
REGISTER_OOVPA(XInputClose, 5558, PATCH),
};
// ******************************************************************

View File

@ -147,29 +147,29 @@ OOVPA_END;
// ******************************************************************
OOVPATable XAPI_5849[] = {
OOVPA_TABLE_ENTRY(SetThreadPriority, 3911),
OOVPA_TABLE_ENTRY(XMountUtilityDrive, 4432),
OOVPA_TABLE_ENTRY(XInitDevices, 5233),
OOVPA_TABLE_ENTRY(XGetDevices, 4134),
OOVPA_TABLE_ENTRY(XInputOpen, 4361),
OOVPA_TABLE_ENTRY(XInputGetCapabilities, 5558),
OOVPA_TABLE_ENTRY(XInputGetState, 5558),
OOVPA_TABLE_ENTRY(XGetDeviceChanges, 5849),
// OOVPA_TABLE_ENTRY(XapiThreadStartup, 4361), // obsolete?
OOVPA_TABLE_ENTRY(QueueUserAPC, 3911),
OOVPA_TABLE_ENTRY(GetThreadPriority, 5849),
OOVPA_TABLE_ENTRY(SetThreadPriorityBoost, 5849),
// OOVPA_TABLE_ENTRY(GetThreadPriorityBoost, 5849),
OOVPA_TABLE_ENTRY(RaiseException, 5849),
OOVPA_TABLE_PATCH(XLaunchNewImageA, 5558, XLaunchNewImage),
OOVPA_TABLE_ENTRY(XInputSetState, 5233),
OOVPA_TABLE_ENTRY(XGetDeviceEnumerationStatus, 5849),
// OOVPA_TABLE_ENTRY(SwitchToThread, 5849),
OOVPA_TABLE_ENTRY(XFormatUtilityDrive, 4627),
OOVPA_TABLE_ENTRY(CreateFiber, 5558),
OOVPA_TABLE_ENTRY(DeleteFiber, 5558),
OOVPA_TABLE_ENTRY(SwitchToFiber, 5558),
OOVPA_TABLE_ENTRY(ConvertThreadToFiber, 5558),
REGISTER_OOVPA(SetThreadPriority, 3911, PATCH),
REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH),
REGISTER_OOVPA(XInitDevices, 5233, PATCH),
REGISTER_OOVPA(XGetDevices, 4134, PATCH),
REGISTER_OOVPA(XInputOpen, 4361, PATCH),
REGISTER_OOVPA(XInputGetCapabilities, 5558, PATCH),
REGISTER_OOVPA(XInputGetState, 5558, PATCH),
REGISTER_OOVPA(XGetDeviceChanges, 5849, PATCH),
// REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH), // obsolete?
REGISTER_OOVPA(QueueUserAPC, 3911, PATCH),
REGISTER_OOVPA(GetThreadPriority, 5849, PATCH),
REGISTER_OOVPA(SetThreadPriorityBoost, 5849, PATCH),
// REGISTER_OOVPA(GetThreadPriorityBoost, 5849, PATCH),
REGISTER_OOVPA(RaiseException, 5849, PATCH),
REGISTER_OOVPA(XLaunchNewImage, 5558, ALIAS, XLaunchNewImageA),
REGISTER_OOVPA(XInputSetState, 5233, PATCH),
REGISTER_OOVPA(XGetDeviceEnumerationStatus, 5849, PATCH),
// REGISTER_OOVPA(SwitchToThread, 5849, PATCH),
REGISTER_OOVPA(XFormatUtilityDrive, 4627, PATCH),
REGISTER_OOVPA(CreateFiber, 5558, PATCH),
REGISTER_OOVPA(DeleteFiber, 5558, PATCH),
REGISTER_OOVPA(SwitchToFiber, 5558, PATCH),
REGISTER_OOVPA(ConvertThreadToFiber, 5558, PATCH),
};
// ******************************************************************

View File

@ -44,24 +44,24 @@
#include "HLEDataBase.h"
#include "HLEIntercept.h"
static void *EmuLocateFunction(OOVPA *Oovpa, uint32 lower, uint32 upper);
static void EmuInstallWrappers(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xbe::Header *pXbeHeader);
static xbaddr EmuLocateFunction(OOVPA *Oovpa, xbaddr lower, xbaddr upper);
static void EmuInstallPatches(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xbe::Header *pXbeHeader);
static void EmuXRefFailure();
#include <shlobj.h>
#include <vector>
uint32 fcount = 0;
uint32 funcExclude[2048] = {0};
void * funcExclude[2048] = { nullptr };
uint32 g_BuildVersion;
uint32 g_OrigBuildVersion;
static std::vector<void *> vCacheOut;
static std::vector<xbaddr> vCacheOut;
static bool bCacheInp = false;
static std::vector<void *> vCacheInp;
static std::vector<void*>::const_iterator vCacheInpIter;
static std::vector<xbaddr> vCacheInp;
static std::vector<xbaddr>::const_iterator vCacheInpIter;
bool bLLE_APU = false; // Set this to true for experimental APU (sound) LLE
@ -71,9 +71,10 @@ bool bLLE_JIT = false; // Set this to true for experimental JIT
bool bXRefFirstPass; // For search speed optimization, set in EmuHLEIntercept, read in EmuLocateFunction
uint32 UnResolvedXRefs; // Tracks XRef location, used (read/write) in EmuHLEIntercept and EmuLocateFunction
void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHeader)
void EmuHLEIntercept(Xbe::Header *pXbeHeader)
{
Xbe::Certificate *pCertificate = (Xbe::Certificate*)pXbeHeader->dwCertificateAddr;
Xbe::LibraryVersion *pLibraryVersion = (Xbe::LibraryVersion*)pXbeHeader->dwLibraryVersionsAddr;
char szCacheFileName[MAX_PATH];
@ -139,7 +140,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
{
while(true)
{
void *cur;
xbaddr cur;
if(fread(&cur, 4, 1, pCacheFile) != 1)
break;
@ -166,7 +167,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
{
DbgPrintf("HLE: Detected Microsoft XDK application...\n");
UnResolvedXRefs = XREF_COUNT; // = sizeof(XRefDataBase) / sizeof(uint32)
UnResolvedXRefs = XREF_COUNT; // = sizeof(XRefDataBase) / sizeof(xbaddr)
uint32 dwLibraryVersions = pXbeHeader->dwLibraryVersions;
uint32 LastUnResolvedXRefs = UnResolvedXRefs+1;
@ -176,7 +177,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
bXRefFirstPass = true; // Set to false for search speed optimization
memset((void*)XRefDataBase, XREF_UNKNOWN, sizeof(XRefDataBase));
memset((void*)XRefDataBase, XREF_ADDR_UNDETERMINED, sizeof(XRefDataBase));
for(int p=0;UnResolvedXRefs < LastUnResolvedXRefs;p++)
@ -323,8 +324,8 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|| BuildVersion == 4432 || BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5558
|| BuildVersion == 5788 || BuildVersion == 5849))
{
uint32 lower = pXbeHeader->dwBaseAddr;
uint32 upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
xbaddr lower = pXbeHeader->dwBaseAddr;
xbaddr upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
}
else if(strcmp(Lib_D3D8, szLibraryName) == 0 /*&& strcmp(Lib_D3D8LTCG, szOrigLibraryName)*/ &&
(BuildVersion == 3925 || BuildVersion == 4134 || BuildVersion == 4361 || BuildVersion == 4432
@ -335,10 +336,9 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
g_BuildVersion = BuildVersion;
g_OrigBuildVersion = OrigBuildVersion;
uint32 lower = pXbeHeader->dwBaseAddr;
uint32 upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
void *pFunc = nullptr;
xbaddr lower = pXbeHeader->dwBaseAddr;
xbaddr upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
xbaddr pFunc = (xbaddr)nullptr;
if(BuildVersion == 3925)
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetRenderState_CullMode_3925, lower, upper);
@ -348,49 +348,49 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetRenderState_CullMode_5233, lower, upper);
// locate D3DDeferredRenderState
if(pFunc != nullptr)
if(pFunc != (xbaddr)nullptr)
{
// offset for stencil cull enable render state in the deferred render state buffer
int patchOffset = 0;
if(BuildVersion == 3925)
{
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x25) - 0x1FC + 82*4); // TODO: Clean up (?)
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x25) - 0x1FC + 82*4); // TODO: Clean up (?)
patchOffset = 142*4 - 82*4; // TODO: Verify
//XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x25) - 0x19F + 72*4); // TODO: Clean up (?)
//XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x25) - 0x19F + 72*4); // TODO: Clean up (?)
//patchOffset = 142*4 - 72*4; // TODO: Verify
}
else if(BuildVersion == 4034 || BuildVersion == 4134)
{
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x2B) - 0x248 + 82*4); // TODO: Verify
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x2B) - 0x248 + 82*4); // TODO: Verify
patchOffset = 142*4 - 82*4;
}
else if(BuildVersion == 4361)
{
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x2B) - 0x200 + 82*4);
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x2B) - 0x200 + 82*4);
patchOffset = 142*4 - 82*4;
}
else if(BuildVersion == 4432)
{
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x2B) - 0x204 + 83*4);
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x2B) - 0x204 + 83*4);
patchOffset = 143*4 - 83*4;
}
else if(BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5558 || BuildVersion == 5788
|| BuildVersion == 5849)
{
// WARNING: Not thoroughly tested (just seemed very correct right away)
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x2B) - 0x24C + 92*4);
XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x2B) - 0x24C + 92*4);
patchOffset = 162*4 - 92*4;
}
XRefDataBase[XREF_D3DDEVICE] = *(DWORD*)((DWORD)pFunc + 0x03);
XRefDataBase[XREF_D3DRS_MULTISAMPLEMODE] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset - 8*4;
XRefDataBase[XREF_D3DRS_MULTISAMPLERENDERTARGETMODE] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset - 7*4;
XRefDataBase[XREF_D3DRS_STENCILCULLENABLE] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset + 0*4;
XRefDataBase[XREF_D3DRS_ROPZCMPALWAYSREAD] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset + 1*4;
XRefDataBase[XREF_D3DRS_ROPZREAD] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset + 2*4;
XRefDataBase[XREF_D3DRS_DONOTCULLUNCOMPRESSED] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset + 3*4;
XRefDataBase[XREF_D3DRS_MULTISAMPLEMODE] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset - 8*4;
XRefDataBase[XREF_D3DRS_MULTISAMPLERENDERTARGETMODE] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset - 7*4;
XRefDataBase[XREF_D3DRS_STENCILCULLENABLE] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset + 0*4;
XRefDataBase[XREF_D3DRS_ROPZCMPALWAYSREAD] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset + 1*4;
XRefDataBase[XREF_D3DRS_ROPZREAD] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset + 2*4;
XRefDataBase[XREF_D3DRS_DONOTCULLUNCOMPRESSED] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset + 3*4;
for(int v=0;v<44;v++)
{
@ -408,7 +408,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
// locate D3DDeferredTextureState
{
pFunc = nullptr;
pFunc = (xbaddr)nullptr;
if(BuildVersion == 3925)
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_3925, lower, upper);
@ -420,14 +420,14 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
|| BuildVersion == 5849)
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4627, lower, upper);
if(pFunc != nullptr)
if(pFunc != (xbaddr)nullptr)
{
if(BuildVersion == 3925) // 0x18F180
XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x11) - 0x70); // TODO: Verify
XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)(pFunc + 0x11) - 0x70); // TODO: Verify
else if(BuildVersion == 4134)
XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x18) - 0x70); // TODO: Verify
XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)(pFunc + 0x18) - 0x70); // TODO: Verify
else
XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x19) - 0x70);
XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)(pFunc + 0x19) - 0x70);
for(int s=0;s<4;s++)
{
@ -451,10 +451,9 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
// g_BuildVersion = BuildVersion;
// g_OrigBuildVersion = OrigBuildVersion;
// uint32 lower = pXbeHeader->dwBaseAddr;
// uint32 upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
// void *pFunc = nullptr;
// xbaddr lower = pXbeHeader->dwBaseAddr;
// xbaddr upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
// xbaddr pFunc = (xbaddr)nullptr;
// if(BuildVersion == 5849)
// pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetRenderState_CullMode_LTCG_5849, lower, upper);
@ -468,17 +467,17 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
// if(BuildVersion == 5849)
// {
// // WARNING: Not thoroughly tested (just seemed very correct right away)
// XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x2B) - 0x24C + 92*4);
// XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x2B) - 0x24C + 92*4);
// patchOffset = 162*4 - 92*4;
// }
// XRefDataBase[XREF_D3DDEVICE] = *(DWORD*)((DWORD)pFunc + 0x03);
// XRefDataBase[XREF_D3DRS_MULTISAMPLEMODE] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset - 8*4;
// XRefDataBase[XREF_D3DRS_MULTISAMPLERENDERTARGETMODE] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset - 7*4;
// XRefDataBase[XREF_D3DRS_STENCILCULLENABLE] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset + 0*4;
// XRefDataBase[XREF_D3DRS_ROPZCMPALWAYSREAD] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset + 1*4;
// XRefDataBase[XREF_D3DRS_ROPZREAD] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset + 2*4;
// XRefDataBase[XREF_D3DRS_DONOTCULLUNCOMPRESSED] = (uint32)XTL::EmuD3DDeferredRenderState + patchOffset + 3*4;
// XRefDataBase[XREF_D3DRS_MULTISAMPLEMODE] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset - 8*4;
// XRefDataBase[XREF_D3DRS_MULTISAMPLERENDERTARGETMODE] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset - 7*4;
// XRefDataBase[XREF_D3DRS_STENCILCULLENABLE] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset + 0*4;
// XRefDataBase[XREF_D3DRS_ROPZCMPALWAYSREAD] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset + 1*4;
// XRefDataBase[XREF_D3DRS_ROPZREAD] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset + 2*4;
// XRefDataBase[XREF_D3DRS_DONOTCULLUNCOMPRESSED] = (xbaddr)XTL::EmuD3DDeferredRenderState + patchOffset + 3*4;
// for(int v=0;v<44;v++)
// {
@ -495,19 +494,19 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
// // locate D3DDeferredTextureState
// {
// pFunc = nullptr;
// pFunc = (xbaddr)nullptr;
// if(BuildVersion == 3925)
// pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_LTCG_5849, lower, upper);
// if(pFunc != nullptr)
// if(pFunc != (xbaddr)nullptr)
// {
// if(BuildVersion == 3925) // 0x18F180
// XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x11) - 0x70); // TODO: Verify
// XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)(pFunc + 0x11) - 0x70); // TODO: Verify
// else if(BuildVersion == 4134)
// XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x18) - 0x70); // TODO: Verify
// XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)(pFunc + 0x18) - 0x70); // TODO: Verify
// else
// XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)((uint32)pFunc + 0x19) - 0x70);
// XTL::EmuD3DDeferredTextureState = (DWORD*)(*(DWORD*)(pFunc + 0x19) - 0x70);
// for(int s=0;s<4;s++)
// {
@ -538,7 +537,7 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
if (FoundHLEData) {
if (g_bPrintfOn) printf("Found\n");
EmuInstallWrappers(FoundHLEData->OovpaTable, FoundHLEData->OovpaTableSize, pXbeHeader);
EmuInstallPatches(FoundHLEData->OovpaTable, FoundHLEData->OovpaTableSize, pXbeHeader);
} else {
if (g_bPrintfOn) printf("Skipped\n");
}
@ -599,34 +598,34 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
return;
}
// install function interception wrapper
static inline void EmuInstallWrapper(void *FunctionAddr, void *WrapperAddr)
static inline void EmuInstallPatch(xbaddr FunctionAddr, void *Patch)
{
uint08 *FuncBytes = (uint08*)FunctionAddr;
*(uint08*)&FuncBytes[0] = 0xE9; // = opcode for JMP rel32 (Jump near, relative, displacement relative to next instruction)
*(uint32*)&FuncBytes[1] = (uint32)WrapperAddr - (uint32)FunctionAddr - 5;
*(uint08*)&FuncBytes[0] = OPCODE_JMP_E9; // = opcode for JMP rel32 (Jump near, relative, displacement relative to next instruction)
*(uint32*)&FuncBytes[1] = (uint32)Patch - FunctionAddr - 5;
}
static inline void GetOovpaEntry(OOVPA *oovpa, int index, OUT uint32 &offset, OUT uint08 &value)
{
if (oovpa->Type == Large) {
offset = (uint32) ((LOOVPA<1>*)oovpa)->Lovp[index].Offset;
value = ((LOOVPA<1>*)oovpa)->Lovp[index].Value;
}
else {
offset = (uint32) ((SOOVPA<1>*)oovpa)->Sovp[index].Offset;
value = ((SOOVPA<1>*)oovpa)->Sovp[index].Value;
}
offset = (uint32)((LOOVPA<1>*)oovpa)->Lovp[index].Offset;
value = ((LOOVPA<1>*)oovpa)->Lovp[index].Value;
}
static inline void GetXRefEntry(OOVPA *oovpa, int index, OUT uint32 &xref, OUT uint08 &offset)
{
// Note : These are stored swapped by the XREF_ENTRY macro, hence this difference from GetOovpaEntry :
xref = (uint32)((LOOVPA<1>*)oovpa)->Lovp[index].Offset;
offset = ((LOOVPA<1>*)oovpa)->Lovp[index].Value;
}
// locate the given function, searching within lower and upper bounds
static void *EmuLocateFunction(OOVPA *Oovpa, uint32 lower, uint32 upper)
static xbaddr EmuLocateFunction(OOVPA *Oovpa, xbaddr lower, xbaddr upper)
{
uint32 xref_count = Oovpa->XRefCount;
// skip out if this is an unnecessary search
if(!bXRefFirstPass && xref_count == XRefZero && Oovpa->XRefSaveIndex == XRefNoSaveIndex)
return nullptr;
return (xbaddr)nullptr;
// correct upper bound with highest Oovpa offset
uint32 count = Oovpa->Count;
@ -639,25 +638,25 @@ static void *EmuLocateFunction(OOVPA *Oovpa, uint32 lower, uint32 upper)
}
// search all of the image memory
for (uint32 cur = lower; cur < upper; cur++)
for (xbaddr cur = lower; cur < upper; cur++)
{
uint32 v; // verification counter
// check all cross references
for (v = 0; v < xref_count; v++)
{
uint32 Offset;
uint08 Value;
uint32 XRef;
uint08 Offset;
// get XRef offset + value pair and currently registered (un)known address
GetOovpaEntry(Oovpa, v, Offset, Value);
uint32 XRefValue = XRefDataBase[Value];
GetXRefEntry(Oovpa, v, XRef, Offset);
xbaddr XRefValue = XRefDataBase[XRef];
// unknown XRef cannot be checked yet
if (XRefValue == XREF_UNKNOWN)
if (XRefValue == XREF_ADDR_UNDETERMINED)
break;
uint32 RealValue = *(uint32*)(cur + Offset);
xbaddr RealValue = *(xbaddr*)(cur + Offset);
// check if PC-relative or direct reference matches XRef
if ((RealValue + cur + Offset + 4 != XRefValue) && (RealValue != XRefValue))
break;
@ -685,7 +684,7 @@ static void *EmuLocateFunction(OOVPA *Oovpa, uint32 lower, uint32 upper)
if (Oovpa->XRefSaveIndex != XRefNoSaveIndex)
{
// is the XRef not saved yet?
if (XRefDataBase[Oovpa->XRefSaveIndex] == XREF_UNKNOWN)
if (XRefDataBase[Oovpa->XRefSaveIndex] == XREF_ADDR_UNDETERMINED)
{
// save and count the found address
UnResolvedXRefs--;
@ -695,37 +694,35 @@ static void *EmuLocateFunction(OOVPA *Oovpa, uint32 lower, uint32 upper)
{
// TODO : Check identical result?
// already found, no bother patching again
return (void*)XRefDataBase[Oovpa->XRefSaveIndex];
return XRefDataBase[Oovpa->XRefSaveIndex];
}
}
// return found address
return (void*)cur;
return cur;
}
}
}
// found nothing
return nullptr;
return (xbaddr)nullptr;
}
// install function interception wrappers
static void EmuInstallWrappers(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xbe::Header *pXbeHeader)
static void EmuInstallPatches(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xbe::Header *pXbeHeader)
{
uint32 lower = pXbeHeader->dwBaseAddr;
uint32 upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
xbaddr lower = pXbeHeader->dwBaseAddr;
xbaddr upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage;
// traverse the full OOVPA table
for(uint32 a=0;a<OovpaTableSize/sizeof(OOVPATable);a++)
for(size_t a=0;a<OovpaTableSize/sizeof(OOVPATable);a++)
{
OOVPA *Oovpa = OovpaTable[a].Oovpa;
void *pFunc = nullptr;
xbaddr pFunc = (xbaddr)nullptr;
if(bCacheInp && (vCacheInpIter != vCacheInp.end()))
{
pFunc = (*vCacheInpIter);
pFunc = *vCacheInpIter;
++vCacheInpIter;
}
else
@ -734,22 +731,26 @@ static void EmuInstallWrappers(OOVPATable *OovpaTable, uint32 OovpaTableSize, Xb
vCacheOut.push_back(pFunc);
}
if(pFunc != nullptr)
if(pFunc != (xbaddr)nullptr)
{
#ifdef _DEBUG_TRACE
DbgPrintf("HLE: 0x%.08X -> %s\n", pFunc, OovpaTable[a].szFuncName);
#endif
if(OovpaTable[a].lpRedirect == nullptr)
if(OovpaTable[a].emuPatch == nullptr)
{
// Insert breakpoint
*(uint8_t*)pFunc = 0xCC;
EmuInstallWrapper((void*)(((uint32_t)pFunc)+1), EmuXRefFailure);
// Only place an XRef trapping patch when the OOVPA registration wasn't disabled
if ((OovpaTable[a].Flags & Flag_DontScan) == 0)
{
// Write breakpoint opcode
*(uint8_t*)pFunc = OPCODE_INT3_CC;
EmuInstallPatch(pFunc + 1, EmuXRefFailure);
}
}
else
{
EmuInstallWrapper(pFunc, OovpaTable[a].lpRedirect);
funcExclude[fcount++] = (uint32)pFunc;
EmuInstallPatch(pFunc, OovpaTable[a].emuPatch);
funcExclude[fcount++] = (void *)pFunc;
}
}
}
@ -815,8 +816,8 @@ void VerifyHLEOOVPA(HLEVerifyContext *context, OOVPA *oovpa)
uint32 curr_offset;
GetOovpaEntry(oovpa, p, curr_offset, dummy_value);
if (!(curr_offset > prev_offset)) {
HLEError(context, "%s[%d] : Offset (0x%x) must be larger then previous offset (0x%x)",
(oovpa->Type = Large) ? "Lovp" : "Sovp", p, curr_offset, prev_offset);
HLEError(context, "Lovp[%d] : Offset (0x%x) must be larger then previous offset (0x%x)",
p, curr_offset, prev_offset);
}
}
@ -912,7 +913,7 @@ void VerifyHLEDataEntry(HLEVerifyContext *context, const OOVPATable *table, uint
if (context->against == nullptr) {
context->main_index = index;
// does this entry specify a redirection (patch)?
void * entry_redirect = table[index].lpRedirect;
void * entry_redirect = table[index].emuPatch;
if (entry_redirect != nullptr) {
if (table[index].Oovpa == nullptr) {
HLEError(context, "Patch without an OOVPA at index %d",
@ -920,7 +921,7 @@ void VerifyHLEDataEntry(HLEVerifyContext *context, const OOVPATable *table, uint
} else
// check no patch occurs twice in this table
for (uint32 t = index + 1; t < count; t++) {
if (entry_redirect == table[t].lpRedirect) {
if (entry_redirect == table[t].emuPatch) {
if (table[index].Oovpa == table[t].Oovpa) {
HLEError(context, "Patch registered again (with same OOVPA) at index %d",
t);

View File

@ -38,7 +38,7 @@ extern bool bLLE_APU; // Set this to true for experimental APU (sound) LLE
extern bool bLLE_GPU; // Set this to true for experimental GPU (graphics) LLE
extern bool bLLE_JIT; // Set this to true for experimental JIT
void EmuHLEIntercept(Xbe::LibraryVersion *LibraryVersion, Xbe::Header *XbeHeader);
void EmuHLEIntercept(Xbe::Header *XbeHeader);
#ifdef _DEBUG_TRACE
void VerifyHLEDataBase();

View File

@ -306,19 +306,19 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)FUNC(&xboxkrnl::NtWriteFile), // 0x00EC (236)
(uint32)PANIC(0x00ED), // 0x00ED (237) NtWriteFileGather
(uint32)FUNC(&xboxkrnl::NtYieldExecution), // 0x00EE (238)
(uint32)PANIC(0x00EF), // 0x00EF (239) ObCreateObject
(uint32)FUNC(&xboxkrnl::ObCreateObject), // 0x00EF (239)
(uint32)VARIABLE(&xboxkrnl::ObDirectoryObjectType), // 0x00F0 (240)
(uint32)PANIC(0x00F1), // 0x00F1 (241) ObInsertObject
(uint32)PANIC(0x00F2), // 0x00F2 (242) ObMakeTemporaryObject
(uint32)FUNC(&xboxkrnl::ObInsertObject), // 0x00F1 (241)
(uint32)FUNC(&xboxkrnl::ObMakeTemporaryObject), // 0x00F2 (242)
(uint32)FUNC(&xboxkrnl::ObOpenObjectByName), // 0x00F3 (243)
(uint32)PANIC(0x00F4), // 0x00F4 (244) ObOpenObjectByPointer
(uint32)FUNC(&xboxkrnl::ObOpenObjectByPointer), // 0x00F4 (244)
(uint32)VARIABLE(&xboxkrnl::ObpObjectHandleTable), // 0x00F5 (245)
(uint32)FUNC(&xboxkrnl::ObReferenceObjectByHandle), // 0x00F6 (246)
(uint32)PANIC(0x00F7), // 0x00F7 (247) ObReferenceObjectByName
(uint32)PANIC(0x00F8), // 0x00F8 (248) ObReferenceObjectByPointer
(uint32)FUNC(&xboxkrnl::ObReferenceObjectByName), // 0x00F7 (247)
(uint32)FUNC(&xboxkrnl::ObReferenceObjectByPointer), // 0x00F8 (248)
(uint32)VARIABLE(&xboxkrnl::ObSymbolicLinkObjectType), // 0x00F9 (249)
(uint32)FUNC(&xboxkrnl::ObfDereferenceObject), // 0x00FA (250)
(uint32)PANIC(0x00FB), // 0x00FB (251) ObfReferenceObject
(uint32)FUNC(&xboxkrnl::ObfReferenceObject), // 0x00FB (251)
(uint32)FUNC(&xboxkrnl::PhyGetLinkState), // 0x00FC (252)
(uint32)FUNC(&xboxkrnl::PhyInitialize), // 0x00FD (253)
(uint32)FUNC(&xboxkrnl::PsCreateSystemThread), // 0x00FE (254)
@ -485,6 +485,6 @@ void ConnectWindowsTimersToThunkTable()
// KeQuerySystemTime), this value is not adjusted with HostSystemTimeDelta!
CxbxKrnl_KernelThunkTable[154] = (uint32)&(USER_SHARED_DATA->SystemTime);
// Note that we can't do the same for TickCount, as that timer
// updates slower on the xbox. See EmuThreadUpdateTickCount().
// We can't point Xbox KeTickCount to host TickCount, because it
// updates slower on the xbox. See EmuUpdateTickCount().
}

View File

@ -55,35 +55,17 @@ template <class BaseClass, typename MFT> inline void *MFPtoFP(MFT pMemFunc)
#pragma pack(1)
enum OOVPAType : uint16 {
Small, // Meaning, use SOVP, in which Offset is an uint08
Large, // Meaning, use LOVP, in which Offset is an uint16
};
// ******************************************************************
// * Optimized (Offset, Value)-Pair Array
// ******************************************************************
struct OOVPA
{
// This OOVPA field (OOVPAType Type) indicates weither
// this struct needs to be cast to SOOVPA or LOOVPA,
// for OOVPATYPE.Small vs .Large
// SOOVPA uses bytes for offset in the {Offset, Value}-pairs.
// LOOVPA uses words for offset in the {Offset, Value}-pairs.
// The value field in the {Offset, Value}-pairs is of type byte.
OOVPAType Type : 1;
// This OOVPA field (uint16 Count) indicates the number of
// {Offset, Value}-pairs present in the Sovp or Lovp array,
// available after casting this OOVPA to SOOVPA or LOOVPA.
// This OOVPA field (uint08 Count) indicates the number of
// {Offset, Value}-pairs present in the Lovp array,
// available after casting this OOVPA to LOOVPA.
// (This Count INCLUDES optional leading {Offset, XREF_*-enum}-
// pairs - see comment at XRefCount.)
uint16 Count : 15;
// This OOVPA field (uint08 XRefSaveIndex) contains either an
// XREF_* enum value, or the XRefNoSaveIndex marker when there's
// no XREF_* enum defined for this OOVPA.
uint08 XRefSaveIndex;
uint08 Count;
// This OOVPA field (uint08 XRefCount) contains the number of
// {Offset, XREF_*-enum}-pairs that come before all other
@ -92,19 +74,17 @@ struct OOVPA
// (Also, see comments at XRefZero and XRefOne.)
uint08 XRefCount;
// Define SOVP and LOVP here to reduce type definition complexity.
// This OOVPA field (uint16 XRefSaveIndex) contains either an
// XREF_* enum value, or the XRefNoSaveIndex marker when there's
// no XREF_* enum defined for this OOVPA.
uint16 XRefSaveIndex;
// Define LOVP here to reduce type definition complexity.
// (Otherwise, if defined in the template classes, that would mean
// that for each template instance, the type is redefined. Let's
// avoid that.)
// Small (byte-sized) {Offset, Value}-pair(s)
struct SOVP
{
uint08 Offset;
uint08 Value;
};
// Large (word-sized) {Offset, Value}-pair(s)
// {Offset, Value}-pair(s)
struct LOVP
{
uint16 Offset;
@ -112,22 +92,35 @@ struct OOVPA
};
};
// This XRefNoSaveIndex constant, when set in the OOVPA.XRefSaveIndex
// field, functions as a marker indicating there's no XREF_* enum
// defined for the OOVPA.
const uint08 XRefNoSaveIndex = (uint08)-1;
// This XRefZero constant, when set in the OOVPA.XRefSaveIndex field,
// This XRefZero constant, when set in the OOVPA.XRefCount field,
// indicates there are no {offset, XREF_*-enum} present in the OOVPA.
const uint08 XRefZero = (uint08)0;
// This XRefOne constant, when set in the OOVPA.XRefSaveIndex field,
// This XRefOne constant, when set in the OOVPA.XRefCount field,
// indicates the OOVPA contains one (1) {offset, XREF_* enum} pair.
const uint08 XRefOne = (uint08)1;
// Note : Theoretically, there can be more than one {offset, XREF_*-enum}
// Note : Theoretically, there can be more than one {Offset, XREF_*-enum}
// pair at the start of the OOVPA's, but there are no examples of that yet.
// (Also, EmuLocateFunction might not cater for this well enough?)
// This XRefNoSaveIndex constant, when set in the OOVPA.XRefSaveIndex
// field, functions as a marker indicating there's no XREF_* enum
// defined for the OOVPA.
const uint16 XRefNoSaveIndex = (uint16)-1;
// Macro used for storing an XRef {Offset, XRef}-Pair.
//
// XRefs are stored with Offset and Value swapped. This is to be able
// to store XRef values beyond 8 bits (for now limited to 16 bits).
// The price to pay for this is that the Offset is stored using 8 bits,
// meaning that offsets beyond 255 cannot be used, not problem for now.
#define XREF_ENTRY(Offset, XRef) \
{ XRef, Offset }
// UNUSED Macro for storing a normal (non-XRef) {Offset, Value}-Pair
// Offsets can go up to 16 bits, values are always one byte (8 bits)
#define OV_ENTRY(Offset, Value) \
{ Offset, Value }
// ******************************************************************
@ -141,25 +134,8 @@ template <uint16 COUNT> struct LOOVPA
OOVPA::LOVP Lovp[COUNT];
};
// ******************************************************************
// * Small Optimized (Offset,Value)-Pair Array
// ******************************************************************
template <uint16 COUNT> struct SOOVPA
{
OOVPA Header;
// Small (Offset,Value)-Pair(s)
OOVPA::SOVP Sovp[COUNT];
};
#define OOVPA_XREF_LARGE(Name, Version, Count, XRefSaveIndex, XRefCount) \
LOOVPA<Count> Name##_##Version = { { /*OOVPAType*/Large, Count, XRefSaveIndex, XRefCount }, {
#define OOVPA_XREF(Name, Version, Count, XRefSaveIndex, XRefCount) \
SOOVPA<Count> Name##_##Version = { { /*OOVPAType*/Small, Count, XRefSaveIndex, XRefCount }, {
#define OOVPA_NO_XREF_LARGE(Name, Version, Count) \
OOVPA_XREF_LARGE(Name, Version, Count, XRefNoSaveIndex, XRefZero)
LOOVPA<Count> Name##_##Version = { { Count, XRefCount, XRefSaveIndex }, {
#define OOVPA_NO_XREF(Name, Version, Count) \
OOVPA_XREF(Name, Version, Count, XRefNoSaveIndex, XRefZero)
@ -173,7 +149,7 @@ OOVPA_XREF(Name, Version, Count, XRefNoSaveIndex, XRefZero)
struct OOVPATable
{
OOVPA *Oovpa;
void *lpRedirect;
void *emuPatch;
#ifdef _DEBUG_TRACE
char *szFuncName;
#endif
@ -193,23 +169,9 @@ const uint16_t Flag_Reserved = 4;
{ & Oovpa ## _ ## Version.Header, Patch, /* skip */ Version, Flags }
#endif
// TODO : Remove the OOVPA_TABLE_* macro's below once they are not in use anymore.
// (This will be when version-specific OOVPATable's are combined into library-specific OOVPATable's.)
#define OOVPA_TABLE_PATCH(Oovpa, Version, Patch) \
OOVPA_TABLE_ENTRY_FULL(Oovpa, XTL::EMUPATCH(Patch), #Patch ## "_" ## #Version, Version, 0)
#define OOVPA_TABLE_PATCH_EmuThis(Oovpa, Version) \
OOVPA_TABLE_ENTRY_FULL(Oovpa, MFPtoFP<XTL::EmuThis>(&XTL::EmuThis::EMUPATCH(Oovpa)), #Oovpa ## "_" ## #Version, Version, 0)
#define OOVPA_TABLE_ENTRY(Symbol, Version) \
OOVPA_TABLE_ENTRY_FULL(Symbol, XTL::EMUPATCH(Symbol), #Symbol ## "_" ## #Version, Version, 0)
#define OOVPA_TABLE_XREF(Oovpa, Version) \
OOVPA_TABLE_ENTRY_FULL(Oovpa, nullptr, #Oovpa ## "_" ## #Version ## " (XRef)", Version, 0)
// REGISTER_OOVPA is the ONLY allowed macro for registrations.
// Registrations MUST stay sorted to prevent duplicates and maintain overview.
// The TYPE argument MUST be PATCH, XREF, ALIAS, LTCG or DISABLED (see below).
// The TYPE argument MUST be PATCH, XREF, ALIAS, EMUTHIS, LTCG or DISABLED (see below).
// ONLY use ALIAS when absolutely required (when OOVPA identifier cannot follow Patch)
// ONLY use LTCG for LTCG OOVPA's (HLE support for these is flacky at best)
// DO NOT comment out registrations, but use TYPE DISABLED instead.
@ -228,13 +190,18 @@ const uint16_t Flag_Reserved = 4;
#define REGISTER_OOVPA_ALIAS(Symbol, Version, AliasOovpa) \
OOVPA_TABLE_ENTRY_FULL(AliasOovpa, XTL::EMUPATCH(Symbol), #AliasOovpa ## "_" ## #Version, Version, 0)
#define EMUTHIS /* registration of an EmuThis-derived function */
#define REGISTER_OOVPA_EMUTHIS(Symbol, Version, ...) \
OOVPA_TABLE_ENTRY_FULL(Symbol, MFPtoFP<XTL::EmuThis>(&XTL::EmuThis::EMUPATCH(Symbol)), #Symbol ## "_" ## #Version, Version, 0)
#define LTCG /* registration of a Patch using a LTCG specific OOVPA */
#define REGISTER_OOVPA_LTCG(Symbol, Version, ...) \
OOVPA_TABLE_ENTRY_FULL(Symbol ## _LTCG, XTL::EMUPATCH(Symbol), #Symbol ## "_LTCG_" ## #Version ## " (LTCG)", Version, Flag_IsLTCG)
#define DISABLED /* registration is (temporarily) disabled by a flag */
#define REGISTER_OOVPA_DISABLED(Symbol, Version, ...) \
OOVPA_TABLE_ENTRY_FULL(Symbol, XTL::EMUPATCH(Symbol), #Symbol ## "_" ## #Version ## " (Disabled)", Version, Flag_DontScan)
OOVPA_TABLE_ENTRY_FULL(Symbol, nullptr, #Symbol ## "_" ## #Version ## " (Disabled)", Version, Flag_DontScan)
#pragma pack()