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

This commit is contained in:
jarupxx 2017-02-10 08:02:35 +09:00
commit 3b4ba1f322
54 changed files with 918 additions and 862 deletions

View File

@ -540,7 +540,7 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
else
{
DbgPrintf("EmuMain: Initializing Direct3D.\n");
XTL::EmuD3DInit(pXbeHeader, dwXbeHeaderSize);
XTL::EmuD3DInit();
}
EmuHLEIntercept(pXbeHeader);

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

@ -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

@ -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
{
@ -8828,6 +8826,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_SetDepthClipPlanes)
return hRet;
}
#if 0 // DISABLED (Just calls MmAllocateContiguousMemory)
// ******************************************************************
// * patch: D3D_AllocContiguousMemory
// ******************************************************************
@ -8873,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);
}

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

@ -63,6 +63,8 @@ namespace NtDll
#define OBJECT_TO_OBJECT_HEADER(Object) \
CONTAINING_RECORD(Object, OBJECT_HEADER, Body)
#define OB_FLAG_NAMED_OBJECT 1
// ******************************************************************
// * 0x00EF - ObCreateObject()
// ******************************************************************
@ -81,9 +83,60 @@ XBSYSAPI EXPORTNUM(239) xboxkrnl::NTSTATUS NTAPI xboxkrnl::ObCreateObject
LOG_FUNC_ARG_OUT(Object)
LOG_FUNC_END;
LOG_UNIMPLEMENTED();
NTSTATUS result = STATUS_SUCCESS;
OBJECT_STRING TmpName = { 0 };
int NameSize = 0;
RETURN(S_OK);
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);
}
// ******************************************************************

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

@ -335,14 +335,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 },
@ -3427,7 +3427,7 @@ OOVPATable D3D8_3925[] = {
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, PATCH),
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),

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

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

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

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 },

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 },

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
@ -629,7 +629,7 @@ OOVPA_XREF(D3DResource_BlockUntilNotBusy, 5558, 2,
XRefNoSaveIndex,
XRefOne)
{ 0x01, XREF_D3D_BlockOnResource },
XREF_ENTRY( 0x01, XREF_D3D_BlockOnResource ),
{ 0x00, 0xE9 },
OOVPA_END;

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 },
@ -1370,7 +1370,7 @@ OOVPATable D3D8_5788[] = {
REGISTER_OOVPA(D3D_CheckDeviceMultiSampleType, 5558, PATCH),
REGISTER_OOVPA(D3D_GetDeviceCaps, 5233, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5788, PATCH),
REGISTER_OOVPA(D3D_AllocContiguousMemory, 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),

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 },
@ -1361,7 +1361,7 @@ OOVPATable D3D8_5849[] = {
REGISTER_OOVPA(D3DVertexBuffer_Lock2, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_LightEnable, 5849, PATCH),
REGISTER_OOVPA(D3DDevice_DrawVertices, 5849, PATCH),
REGISTER_OOVPA(D3D_AllocContiguousMemory, 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),

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

View File

@ -91,7 +91,7 @@ OOVPA_XREF(DirectSoundDoWorkA, 3936, 9,
XRefOne)
// DirectSoundDoWorkA+0x10 : call [DirectSoundDoWorkB]
{ 0x10, XREF_DSDOWORKB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x10, XREF_DSDOWORKB ), // (Offset,Value)-Pair #1
// DirectSoundDoWorkA+0x08 : mov eax, [esp+0x08]
{ 0x08, 0x8B }, // (Offset,Value)-Pair #2
@ -117,7 +117,7 @@ OOVPA_XREF(DirectSoundDoWork, 3936, 9,
XRefOne)
// DirectSoundDoWork+0x13 : call [XREF_DSDOWORKA]
{ 0x13, XREF_DSDOWORKA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x13, XREF_DSDOWORKA ), // (Offset,Value)-Pair #1
// DirectSoundDoWork+0x0D : test eax, eax;jz +0x06
{ 0x0D, 0x85 }, // (Offset,Value)-Pair #2
@ -178,7 +178,7 @@ OOVPA_XREF(IDirectSound8_CreateStream, 3936, 10,
// TODO: tidy up the xref names (are probably not accurate)
// IDirectSound8_CreateStream+0x1D : call [CDirectSound::CreateSoundStream]
{ 0x1D, XREF_DSCREATESOUNDSTREAM }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1D, XREF_DSCREATESOUNDSTREAM ), // (Offset,Value)-Pair #1
// IDirectSound8_CreateStream+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -240,7 +240,7 @@ OOVPA_XREF(IDirectSound8_CreateBuffer, 3936, 10,
// TODO: tidy up the xref names (are probably not accurate)
// IDirectSound8_CreateBuffer+0x1D : call [CDirectSound::CreateSoundStream]
{ 0x1D, XREF_DSCREATESOUNDBUFFER }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1D, XREF_DSCREATESOUNDBUFFER ), // (Offset,Value)-Pair #1
// IDirectSound8_CreateBuffer+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -314,7 +314,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPitchA, 3936, 12,
XRefOne)
// IDirectSoundBuffer8_SetPitchA+0x1B : call [IDirectSoundBuffer8_SetPitchB]
{ 0x1B, XREF_DSBUFFERSETPITCHB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1B, XREF_DSBUFFERSETPITCHB ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetPitchA+0x07 : mov edx, [esp+0x10]
{ 0x07, 0x8B }, // (Offset,Value)-Pair #2
@ -345,7 +345,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPitch, 3936, 10,
XRefOne)
// IDirectSoundBuffer8_SetPitch+0x15 : call [IDirectSoundBuffer8_SetPitchA]
{ 0x15, XREF_DSBUFFERSETPITCHA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERSETPITCHA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetPitch+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -404,7 +404,7 @@ OOVPA_XREF(CDirectSoundBuffer_GetStatus, 3936, 10,
XRefOne)
// CDirectSoundBuffer_GetStatus+0x14 : call [CMcpxBuffer::GetStatus]
{ 0x15, XREF_DSBUFFERGETSTATUSB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERGETSTATUSB ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_GetStatus+0x07 : push [esp+0x10]
{ 0x07, 0xFF }, // (Offset,Value)-Pair #2
@ -431,7 +431,7 @@ OOVPA_XREF(IDirectSoundBuffer8_GetStatus, 3936, 10,
XRefOne)
// IDirectSoundBuffer8_GetStatus+0x15 : call [CDirectSoundBuffer::GetStatus]
{ 0x15, XREF_DSBUFFERGETSTATUSA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERGETSTATUSA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_GetStatus+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -484,7 +484,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetVolumeA, 3936, 12,
XRefOne)
// IDirectSoundBuffer8_SetVolumeA+0x1E : call [IDirectSoundBuffer8_SetVolumeB]
{ 0x1E, XREF_DSBUFFERSETVOLUMEB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1E, XREF_DSBUFFERSETVOLUMEB ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetVolumeA+0x07 : mov ecx, [esp+0x0C]
{ 0x07, 0x8B }, // (Offset,Value)-Pair #2
@ -515,7 +515,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetVolume, 3936, 10,
XRefOne)
// IDirectSoundBuffer8_SetVolume+0x15 : call [IDirectSoundBuffer8_SetVolumeA]
{ 0x15, XREF_DSBUFFERSETVOLUMEA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERSETVOLUMEA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetVolume+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -568,7 +568,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetCurrentPositionA, 3936, 12,
XRefOne)
// IDirectSoundBuffer8_SetCurrentPositionA+0x15 : call [IDirectSoundBuffer8_SetCurrentPositionB]
{ 0x15, XREF_DSBUFFERSETCURRENTPOSITIONB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERSETCURRENTPOSITIONB ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetCurrentPositionA+0x0D : mov eax, [esp+0x10]
{ 0x0D, 0x8B }, // (Offset,Value)-Pair #2
@ -599,7 +599,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetCurrentPosition, 3936, 10,
XRefOne)
// IDirectSoundBuffer8_SetCurrentPosition+0x15 : call [IDirectSoundBuffer8_SetCurrentPositionA]
{ 0x15, XREF_DSBUFFERSETCURRENTPOSITIONA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERSETCURRENTPOSITIONA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetCurrentPosition+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -653,7 +653,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPlayRegion, 3936, 10,
XRefOne)
// IDirectSoundBuffer8_SetPlayRegion+0x19 : call [IDirectSoundBuffer8_SetPlayRegionA]
{ 0x19, XREF_DSBUFFERSETPLAYREGIONA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSBUFFERSETPLAYREGIONA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetPlayRegion+0x04 : push [esp+0x0C]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -705,7 +705,7 @@ OOVPA_XREF(IDirectSoundBuffer8_Lock, 3936, 9,
XRefOne)
// IDirectSoundBuffer8_Lock+0x28 : call [IDirectSoundBuffer8_LockA]
{ 0x28, XREF_DSBUFFERLOCKA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x28, XREF_DSBUFFERLOCKA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_Lock+0x03 : push [esp+0x24]
{ 0x03, 0xFF }, // (Offset,Value)-Pair #2
@ -733,7 +733,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetHeadroomA, 3936, 12,
// WARNING: I am unsure if this is SetHeadroom
// IDirectSoundBuffer8_SetHeadroomA+0x23 : call [IDirectSoundBuffer8_SetVolumeB]
{ 0x23, XREF_DSBUFFERSETVOLUMEB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x23, XREF_DSBUFFERSETVOLUMEB ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetHeadroomA+0x07 : mov edx, [esp+0x0C]
{ 0x07, 0x8B }, // (Offset,Value)-Pair #2
@ -764,7 +764,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetHeadroom, 3936, 10,
XRefOne)
// IDirectSoundBuffer8_SetHeadroom+0x15 : call [IDirectSoundBuffer8_SetHeadroomA]
{ 0x15, XREF_DSBUFFERSETHEADROOMA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSBUFFERSETHEADROOMA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetHeadroom+0x04 : push [esp+0x08]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -815,7 +815,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetBufferData, 3936, 10,
XRefOne)
// IDirectSoundBuffer8_SetBufferData+0x18 : call [IDirectSoundBuffer8_SetBufferDataA]
{ 0x19, XREF_DSSETBUFFERDATA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSSETBUFFERDATA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetBufferData+0x04 : push [esp+0x0C]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -878,7 +878,7 @@ OOVPA_XREF(CDirectSoundVoice_SetMixBins, 3936, 9,
XRefOne)
// CDirectSoundVoice_SetMixBins+0x28 : call [CMcpxVoiceClient::SetMixBins]
{ 0x29, XREF_DSSETMIXBINSB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x29, XREF_DSSETMIXBINSB ), // (Offset,Value)-Pair #1
// CDirectSoundVoice_SetMixBins+0x11 : mov ecx, [esi+0x18]
{ 0x11, 0x8B }, // (Offset,Value)-Pair #2
@ -904,7 +904,7 @@ OOVPA_XREF(IDirectSoundStream_SetMixBins, 3936, 10,
XRefOne)
// IDirectSoundStream_SetFrequency+0x0C : call [CDirectSoundVoice::SetMixBins]
{ 0x0D, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINSA ), // (Offset,Value)-Pair #1
// IDirectSoundStream_SetMixBins+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -931,7 +931,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMixBins, 3936, 8,
XRefOne)
// IDirectSoundBuffer8_SetMixBins+0x14 : call [CDirectSoundVoice::SetMixBins]
{ 0x15, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSETMIXBINSA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetMixBins+0x0A : add eax, 0xFFFFFFE4
{ 0x0A, 0x83 }, // (Offset,Value)-Pair #2
@ -1012,7 +1012,7 @@ OOVPA_XREF(CDirectSoundBuffer_GetCurrentPosition, 3936, 9,
XRefOne)
// CDirectSoundBuffer_GetCurrentPosition+0x19 : call [CMcpxBuffer::GetCurrentPosition]
{ 0x19, XREF_GETCURRENTPOSITION }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_GETCURRENTPOSITION ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_GetCurrentPosition+0x0D : mov eax, [esp+0x10]
{ 0x0D, 0x8B }, // (Offset,Value)-Pair #2
@ -1038,7 +1038,7 @@ OOVPA_XREF(IDirectSoundBuffer8_GetCurrentPosition, 3936, 8,
XRefOne)
// IDirectSoundBuffer8_GetCurrentPosition+0x19 : call [CDirectSoundBuffer::GetCurrentPosition]
{ 0x19, XREF_GETCURRENTPOSITION2 }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_GETCURRENTPOSITION2 ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_GetCurrentPosition+0x0E : add eax, 0xFFFFFFE4
{ 0x0E, 0x83 }, // (Offset,Value)-Pair #2
@ -1080,7 +1080,7 @@ OOVPA_XREF(IDirectSoundBuffer8_Play, 3936, 16,
XRefOne)
// IDirectSoundBuffer8_Play+0x1D : call CDirectSoundBuffer::Play
{ 0x1D, XREF_DSOUNDPLAY },
XREF_ENTRY( 0x1D, XREF_DSOUNDPLAY ),
// IDirectSoundBuffer8_Play+0x00 : push [esp+0x10]
{ 0x00, 0xFF }, // (Offset,Value)-Pair #1
@ -1117,7 +1117,7 @@ OOVPA_XREF(IDirectSoundBuffer8_Play2, 3936, 12,
XRefOne)
// IDirectSoundBuffer8_Play+0x1D : call CDirectSoundBuffer::Play
{ 0x1D, XREF_DSOUNDPLAY },
XREF_ENTRY( 0x1D, XREF_DSOUNDPLAY ),
// IDirectSoundBuffer8_Play+0x00 : push [esp+0x10]
{ 0x00, 0xFF }, // (Offset,Value)-Pair #1
@ -1175,7 +1175,7 @@ OOVPA_XREF(IDirectSoundBuffer8_Stop, 3936, 8,
XRefOne)
// IDirectSoundBuffer8_Stop+0x11 : call [CDirectSoundBuffer::Stop]
{ 0x11, XREF_DSOUNDSTOP }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSOUNDSTOP ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_Stop+0x06 : and eax, 0xFFFFFFE4
{ 0x06, 0x83 }, // (Offset,Value)-Pair #2
@ -1229,7 +1229,7 @@ OOVPA_XREF(CDirectSoundStream_SetVolume, 3936, 10,
XRefOne)
// CDirectSoundStream_SetVolume+0x0D : call [IDirectSoundStream::SetVolume]
{ 0x0D, XREF_DSSTREAMSETVOLUME }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0D, XREF_DSSTREAMSETVOLUME ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetVolume+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -1286,7 +1286,7 @@ OOVPA_XREF(CDirectSoundStream_SetAllParametersA, 3936, 12,
// TODO: re-use for CDirectSoundBuffer_SetAllParametersA!?
// CDirectSoundStream_SetAllParametersA+0x25 : call [IDirectSoundStream::SetAllParametersB]
{ 0x1F, XREF_DSSTREAMSETALLPARAMETERS1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1F, XREF_DSSTREAMSETALLPARAMETERS1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetAllParametersA+0x09 : mov eax, [esp+0x14]
{ 0x09, 0x8B }, // (Offset,Value)-Pair #2
@ -1315,7 +1315,7 @@ OOVPA_XREF(CDirectSoundStream_SetAllParameters, 3936, 10,
XRefOne)
// CDirectSoundStream_SetAllParameters+0x11 : call [IDirectSoundStream::SetAllParametersA]
{ 0x11, XREF_DSSTREAMSETALLPARAMETERS1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSSTREAMSETALLPARAMETERS1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetAllParameters+0x04 : push eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -1373,7 +1373,7 @@ OOVPA_XREF(CDirectSoundStream_SetConeAnglesA, 3936, 12,
// TODO: re-use for CDirectSoundBuffer_SetConeAnglesA!?
// CDirectSoundStream_SetConeAnglesA+0x23 : call [IDirectSoundStream::SetConeAnglesB]
{ 0x23, XREF_DSSTREAMSETCONEANGLES1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x23, XREF_DSSTREAMSETCONEANGLES1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetConeAnglesA+0x09 : mov eax, [esp+0x18]
{ 0x09, 0x8B }, // (Offset,Value)-Pair #2
@ -1402,7 +1402,7 @@ OOVPA_XREF(CDirectSoundStream_SetConeAngles, 3936, 10,
XRefOne)
// CDirectSoundStream_SetConeAngles+0x15 : call [IDirectSoundStream::SetConeAnglesA]
{ 0x15, XREF_DSSTREAMSETCONEANGLES1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSTREAMSETCONEANGLES1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetConeAngles+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -1460,7 +1460,7 @@ OOVPA_XREF(CDirectSoundStream_SetConeOutsideVolumeA, 3936, 12,
// TODO: re-use for CDirectSoundBuffer_SetConeOutsideVolumeA!?
// CDirectSoundStream_SetConeOutsideVolumeA+0x1F : call [IDirectSoundStream::SetConeOutsideVolumeB]
{ 0x1F, XREF_DSSTREAMSETCONEOUTSIDEVOLUME1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1F, XREF_DSSTREAMSETCONEOUTSIDEVOLUME1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetConeOutsideVolumeA+0x09 : mov eax, [esp+0x14]
{ 0x09, 0x8B }, // (Offset,Value)-Pair #2
@ -1489,7 +1489,7 @@ OOVPA_XREF(CDirectSoundStream_SetConeOutsideVolume, 3936, 10,
XRefOne)
// CDirectSoundStream_SetConeOutsideVolume+0x11 : call [IDirectSoundStream::SetConeOutsideVolumeA]
{ 0x11, XREF_DSSTREAMSETCONEOUTSIDEVOLUME1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSSTREAMSETCONEOUTSIDEVOLUME1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetConeOutsideVolume+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -1547,7 +1547,7 @@ OOVPA_XREF(CDirectSoundStream_SetMaxDistanceB, 3936, 15,
// TODO: re-use for CDirectSoundBuffer_SetMaxDistanceB!?
// CDirectSoundStream_SetMaxDistanceB+0x23 : call [IDirectSoundStream::SetMaxDistanceC]
{ 0x23, XREF_DSSTREAMSETMAXDISTANCE1C }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x23, XREF_DSSTREAMSETMAXDISTANCE1C ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetMaxDistanceB+0x0D : mov eax, [esp+0x14]
{ 0x0D, 0x8B }, // (Offset,Value)-Pair #2
@ -1585,7 +1585,7 @@ OOVPA_XREF(CDirectSoundStream_SetMaxDistanceA, 3936, 10,
// TODO: re-use for CDirectSoundBuffer_SetMaxDistanceA!?
// CDirectSoundStream_SetMaxDistanceA+0x15 : call [IDirectSoundStream::SetMaxDistanceB]
{ 0x15, XREF_DSSTREAMSETMAXDISTANCE1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSTREAMSETMAXDISTANCE1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetMaxDistanceA+0x04 : fld [esp+0x0C]
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
@ -1612,7 +1612,7 @@ OOVPA_XREF(CDirectSoundStream_SetMaxDistance, 3936, 11,
XRefOne)
// CDirectSoundStream_SetMaxDistance+0x11 : call [IDirectSoundStream::SetMaxDistanceA]
{ 0x11, XREF_DSSTREAMSETMAXDISTANCE1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSSTREAMSETMAXDISTANCE1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetMaxDistance+0x04 : fld [esp+0x0C]
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
@ -1671,7 +1671,7 @@ OOVPA_XREF(CDirectSoundStream_SetMinDistanceB, 3936, 15,
// TODO: re-use for CDirectSoundBuffer_SetMinDistanceB!?
// CDirectSoundStream_SetMinDistanceB+0x23 : call [IDirectSoundStream::SetMinDistanceC]
{ 0x23, XREF_DSSTREAMSETMINDISTANCE1C }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x23, XREF_DSSTREAMSETMINDISTANCE1C ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetMinDistanceB+0x0D : mov eax, [esp+0x14]
{ 0x0D, 0x8B }, // (Offset,Value)-Pair #2
@ -1709,7 +1709,7 @@ OOVPA_XREF(CDirectSoundStream_SetMinDistanceA, 3936, 10,
// TODO: re-use for CDirectSoundBuffer_SetMinDistanceA!?
// CDirectSoundStream_SetMinDistanceA+0x15 : call [IDirectSoundStream::SetMinDistanceB]
{ 0x15, XREF_DSSTREAMSETMINDISTANCE1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSTREAMSETMINDISTANCE1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetMinDistanceA+0x04 : fld [esp+0x0C]
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
@ -1736,7 +1736,7 @@ OOVPA_XREF(CDirectSoundStream_SetMinDistance, 3936, 11,
XRefOne)
// CDirectSoundStream_SetMinDistance+0x11 : call [IDirectSoundStream::SetMinDistanceA]
{ 0x11, XREF_DSSTREAMSETMINDISTANCE1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSSTREAMSETMINDISTANCE1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetMinDistance+0x04 : fld [esp+0x0C]
{ 0x04, 0xD9 }, // (Offset,Value)-Pair #2
@ -1791,7 +1791,7 @@ OOVPA_XREF(CDirectSoundStream_SetVelocityB, 3936, 14,
XRefOne)
// CDirectSoundStream_SetVelocityB+0x35 : call [IDirectSoundStream::SetVelocityC]
{ 0x35, XREF_DSSTREAMSETVELOCITY1C }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_DSSTREAMSETVELOCITY1C ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetVelocityB+0x21 : mov eax, [ebp+0x18]
{ 0x21, 0x8B }, // (Offset,Value)-Pair #2
@ -1826,7 +1826,7 @@ OOVPA_XREF(CDirectSoundStream_SetVelocityA, 3936, 9,
XRefOne)
// CDirectSoundStream_SetVelocityA+0x25 : call [IDirectSoundStream::SetVelocityB]
{ 0x25, XREF_DSSTREAMSETVELOCITY1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x25, XREF_DSSTREAMSETVELOCITY1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetVelocityA+0x06 : fld [ebp+0x14]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -1852,7 +1852,7 @@ OOVPA_XREF(CDirectSoundStream_SetVelocity, 3936, 9,
XRefOne)
// CDirectSoundStream_SetVelocity+0x21 : call [IDirectSoundStream::SetVelocityA]
{ 0x21, XREF_DSSTREAMSETVELOCITY1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x21, XREF_DSSTREAMSETVELOCITY1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetVelocity+0x06 : fld [ebp+0x14]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -1878,7 +1878,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetVelocity, 3936, 9,
XRefOne)
// CDirectSoundBuffer_SetVelocity+0x20 : call [CDirectSoundStream::SetVelocityB]
{ 0x21, XREF_DSSTREAMSETVELOCITY1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x21, XREF_DSSTREAMSETVELOCITY1B ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetVelocity+0x06 : fld [ebp+arg_C]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -1904,7 +1904,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetVelocity, 3936, 9,
XRefOne)
// IDirectSoundBuffer8_SetVelocity+0x2C : call [CDirectSoundBuffer::SetVelocity]
{ 0x2D, XREF_DSBUFFERSETVELOCITY }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETVELOCITY ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetVelocity+0x09 : mov eax, [ebp+arg_0]
{ 0x09, 0x8B }, // (Offset,Value)-Pair #2
@ -1960,7 +1960,7 @@ OOVPA_XREF(CDirectSoundStream_SetConeOrientationB, 3936, 14,
// TODO: re-use for CDirectSoundBuffer_SetConeOrientationB!?
// CDirectSoundStream_SetConeOrientationB+0x35 : call [IDirectSoundStream::SetConeOrientationC]
{ 0x35, XREF_DSSTREAMSETCONEORIENTATION1C }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_DSSTREAMSETCONEORIENTATION1C ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetConeOrientationB+0x21 : mov eax, [ebp+0x18]
{ 0x21, 0x8B }, // (Offset,Value)-Pair #2
@ -1997,7 +1997,7 @@ OOVPA_XREF(CDirectSoundStream_SetConeOrientationA, 3936, 9,
// TODO: re-use for CDirectSoundBuffer_SetConeOrientationA!?
// CDirectSoundStream_SetConeOrientationA+0x25 : call [IDirectSoundStream::SetConeOrientationB]
{ 0x25, XREF_DSSTREAMSETCONEORIENTATION1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x25, XREF_DSSTREAMSETCONEORIENTATION1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetConeOrientationA+0x06 : fld [ebp+0x14]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -2023,7 +2023,7 @@ OOVPA_XREF(CDirectSoundStream_SetConeOrientation, 3936, 9,
XRefOne)
// CDirectSoundStream_SetConeOrientation+0x21 : call [IDirectSoundStream::SetConeOrientationA]
{ 0x21, XREF_DSSTREAMSETCONEORIENTATION1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x21, XREF_DSSTREAMSETCONEORIENTATION1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetConeOrientation+0x06 : fld [ebp+0x14]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -2075,7 +2075,7 @@ OOVPA_XREF(CDirectSoundStream_SetPositionB, 3936, 14,
XRefOne)
// CDirectSoundStream_SetPositionB+0x35 : call [IDirectSoundStream::SetPositionC]
{ 0x35, XREF_DSSTREAMSETPOSITION1C }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_DSSTREAMSETPOSITION1C ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetPositionB+0x21 : mov eax, [ebp+0x18]
{ 0x21, 0x8B }, // (Offset,Value)-Pair #2
@ -2110,7 +2110,7 @@ OOVPA_XREF(CDirectSoundStream_SetPositionA, 3936, 9,
XRefOne)
// CDirectSoundStream_SetPositionA+0x25 : call [IDirectSoundStream::SetPositionB]
{ 0x25, XREF_DSSTREAMSETPOSITION1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x25, XREF_DSSTREAMSETPOSITION1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetPositionA+0x06 : fld [ebp+0x14]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -2136,7 +2136,7 @@ OOVPA_XREF(CDirectSoundStream_SetPosition, 3936, 9,
XRefOne)
// CDirectSoundStream_SetPosition+0x21 : call [IDirectSoundStream::SetPositionA]
{ 0x21, XREF_DSSTREAMSETPOSITION1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x21, XREF_DSSTREAMSETPOSITION1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetPosition+0x06 : fld [ebp+0x14]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -2162,7 +2162,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetPosition, 3936, 9,
XRefOne)
// CDirectSoundBuffer_SetPosition+0x20 : call [CDirectSoundStream::PositionB]
{ 0x21, XREF_DSSTREAMSETPOSITION1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x21, XREF_DSSTREAMSETPOSITION1B ), // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetPosition+0x06 : fld [ebp+arg_C]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -2188,7 +2188,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPosition, 3936, 9,
XRefOne)
// IDirectSoundBuffer8_SetPosition+0x2C : call [CDirectSoundBuffer::SetPosition]
{ 0x2D, XREF_DSBUFFERSETPOSITION }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x2D, XREF_DSBUFFERSETPOSITION ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetPosition+0x09 : mov eax, [ebp+arg_0]
{ 0x09, 0x8B }, // (Offset,Value)-Pair #2
@ -2242,7 +2242,7 @@ OOVPA_XREF(CDirectSoundStream_SetFrequencyA, 3936, 9,
XRefOne)
// CDirectSoundStream_SetFrequencyA+0x1F : call [CDirectSoundStream::SetFrequencyB]
{ 0x20, XREF_DSSTREAMSETFREQUENCY1B }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x20, XREF_DSSTREAMSETFREQUENCY1B ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetFrequencyA+0x15 : mov eax, [esi+0x18]
{ 0x15, 0x8B }, // (Offset,Value)-Pair #2
@ -2268,7 +2268,7 @@ OOVPA_XREF(CDirectSoundStream_SetFrequency, 3936, 10,
XRefOne)
// CDirectSoundStream_SetFrequency+0x0D : call [IDirectSoundStream::SetFrequency]
{ 0x0D, XREF_DSSTREAMSETFREQUENCY1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0D, XREF_DSSTREAMSETFREQUENCY1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetFrequency+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -2295,7 +2295,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetFrequency, 3936, 8,
XRefOne)
// IDirectSoundBuffer8_SetFrequency+0x15 : call [IDirectSoundStream::SetFrequency]
{ 0x15, XREF_DSSTREAMSETFREQUENCY1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x15, XREF_DSSTREAMSETFREQUENCY1A ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetFrequency+0x0A : add eax, 0xFFFFFFE4
{ 0x0A, 0x83 }, // (Offset,Value)-Pair #2
@ -2347,7 +2347,7 @@ OOVPA_XREF(CDirectSoundVoice_SetMode, 3936, 10,
XRefOne)
// CDirectSoundVoice_SetMode+0x1E : call [CMcpxVoiceClient::Set3dMode]
{ 0x1F, XREF_DSBUFFERSETMODEB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x1F, XREF_DSBUFFERSETMODEB ), // (Offset,Value)-Pair #1
// CDirectSoundVoice_SetMode+0x17 : push [esp+0x14]
{ 0x17, 0xFF }, // (Offset,Value)-Pair #2
@ -2374,7 +2374,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMode, 3936, 10,
XRefOne)
// IDirectSoundBuffer8_SetMode+0x18 : call [CDirectSoundVoice::SetMode]
{ 0x19, XREF_DSBUFFERSETMODEA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSBUFFERSETMODEA ), // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetMode+0x04 : push [esp+0x0C]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -2402,7 +2402,7 @@ OOVPA_XREF(CDirectSoundStream_SetRolloffFactor, 3936, 10,
XRefOne)
// CDirectSoundStream_SetRolloffFactor+0x11 : call [IDirectSoundStream::SetRolloffFactor]
{ 0x11, XREF_DSSTREAMSETROLLOFFFACTOR1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSSTREAMSETROLLOFFFACTOR1A ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetRolloffFactor+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -2461,7 +2461,7 @@ OOVPA_XREF(IDirectSoundStream_SetI3DL2Source, 3936, 10,
// TODO: Tentative! (most likely incorrect, actually!)
// IDirectSoundStream_SetI3DL2SourceB+0x11 : call [IDirectSoundStream_SetI3DL2SourceA]
{ 0x11, XREF_DSSETI3DL2SOURCE1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSSETI3DL2SOURCE1A ), // (Offset,Value)-Pair #1
// IDirectSoundStream_SetI3DL2SourceB+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -2492,7 +2492,7 @@ OOVPA_XREF(IDirectSoundStream_Unknown1, 3936, 9,
// TODO: Tentative! (most likely incorrect, actually!)
// IDirectSoundStream_Unknown1A+0x38 : call [IDirectSoundStream_SetI3DL2SourceA]
{ 0x38, XREF_DSSETI3DL2SOURCE1A }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x38, XREF_DSSETI3DL2SOURCE1A ), // (Offset,Value)-Pair #1
// IDirectSoundStream_Unknown1A+0x17 : cmp edi, [ecx+0x20]
{ 0x17, 0x3B }, // (Offset,Value)-Pair #2
@ -2550,7 +2550,7 @@ OOVPA_XREF(IDirectSoundStream_SetHeadroom, 3936, 10,
// TODO: Tentative! (most likely incorrect, actually!)
// IDirectSoundStream_SetHeadroomB+0x0D : call [IDirectSoundStream_SetHeadroomA]
{ 0x0D, XREF_DSSETHEADROOMA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x0D, XREF_DSSETHEADROOMA ), // (Offset,Value)-Pair #1
// IDirectSoundStream_SetHeadroomB+0x04 : mov eax, [esp+0x08]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
@ -2632,7 +2632,7 @@ OOVPA_XREF(CDirectSound_CommitDeferredSettingsA, 3936, 10,
XRefOne)
// CDirectSound_CommitDeferredSettingsA+0x12 : call [CDirectSound::CommitDeferredSettingsB]
{ 0x12, XREF_COMMITDEFERREDSETTINGSB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x12, XREF_COMMITDEFERREDSETTINGSB ), // (Offset,Value)-Pair #1
// CDirectSound_CommitDeferredSettingsA+0x0C : mov ecx, [eax+0x0C]
{ 0x0C, 0x8B }, // (Offset,Value)-Pair #2
@ -2661,7 +2661,7 @@ OOVPA_XREF(CDirectSound_CommitDeferredSettings, 3936, 8,
XRefOne)
// CDirectSound_CommitDeferredSettings+0x11 : call [CDirectSound::CommitDeferredSettingsA]
{ 0x11, XREF_COMMITDEFERREDSETTINGSA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_COMMITDEFERREDSETTINGSA ), // (Offset,Value)-Pair #1
// CDirectSound_CommitDeferredSettings+0x06 : and eax, 0xFFFFFFF8
{ 0x06, 0x83 }, // (Offset,Value)-Pair #2
@ -2738,7 +2738,7 @@ OOVPA_XREF(CDirectSound_SetDistanceFactorA, 3936, 12,
XRefOne)
// CDirectSound_SetDistanceFactorA+0x23 : call [CDirectSound::SetDistanceFactorB]
{ 0x23, XREF_SETDISTANCEFACTORB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x23, XREF_SETDISTANCEFACTORB ), // (Offset,Value)-Pair #1
// CDirectSound_SetDistanceFactorA+0x00 : push esi; push edi
{ 0x00, 0x56 }, // (Offset,Value)-Pair #2
@ -2769,7 +2769,7 @@ OOVPA_XREF(IDirectSound8_SetDistanceFactor, 3936, 11,
// TODO: Tentative (may not be SetDistanceFactor)
// IDirectSound8_SetDistanceFactor+0x1D : call [CDirectSound::SetDistanceFactorA]
{ 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
@ -2827,7 +2827,7 @@ OOVPA_XREF(CDirectSound_SetRolloffFactorA, 3936, 12,
XRefOne)
// CDirectSound_SetRolloffFactorA+0x23 : call [CDirectSound::SetRolloffFactorB]
{ 0x23, XREF_SETROLLOFFFACTORB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x23, XREF_SETROLLOFFFACTORB ), // (Offset,Value)-Pair #1
// CDirectSound_SetRolloffFactorA+0x00 : push esi; push edi
{ 0x00, 0x56 }, // (Offset,Value)-Pair #2
@ -2858,7 +2858,7 @@ OOVPA_XREF(IDirectSound8_SetRolloffFactor, 3936, 11,
// TODO: Tentative (may not be SetRolloffFactor)
// IDirectSound8_SetRolloffFactor+0x1D : call [CDirectSound::SetRolloffFactorA]
{ 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
@ -2915,7 +2915,7 @@ OOVPA_XREF(CDirectSound_SetMixBinHeadroomA, 3936, 9,
XRefOne)
// CDirectSound_SetMixBinHeadroomA+0x19 : call [CDirectSound::SetMixBinHeadroomB]
{ 0x19, XREF_DSSETMIXBINHEADROOMB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSSETMIXBINHEADROOMB ), // (Offset,Value)-Pair #1
// CDirectSound_SetMixBinHeadroomA+0x00 : push esi; push edi
{ 0x00, 0x56 }, // (Offset,Value)-Pair #2
@ -2941,7 +2941,7 @@ OOVPA_XREF(IDirectSound8_SetMixBinHeadroom, 3936, 12,
XRefOne)
// IDirectSound8_SetMixBinHeadroom+0x19 : call [CDirectSound::SetMixBinHeadroomA]
{ 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
@ -2999,7 +2999,7 @@ OOVPA_XREF(CDirectSound_SetPositionA, 3936, 10,
XRefOne)
// CDirectSound_SetPositionA+0x35 : call [CDirectSound::SetPositionB]
{ 0x35, XREF_DSSETPOSITIONB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_DSSETPOSITIONB ), // (Offset,Value)-Pair #1
// CDirectSound_SetPositionA+0x06 : push esi; push edi
{ 0x06, 0x56 }, // (Offset,Value)-Pair #2
@ -3026,7 +3026,7 @@ OOVPA_XREF(IDirectSound8_SetPosition, 3936, 11,
XRefOne)
// IDirectSound8_SetPosition+0x2D : call [CDirectSound::SetPositionA]
{ 0x2D, XREF_DSSETPOSITIONA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x2D, XREF_DSSETPOSITIONA ), // (Offset,Value)-Pair #1
// IDirectSound8_SetPosition+0x06 : fld [ebp+0x14]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -3083,7 +3083,7 @@ OOVPA_XREF(CDirectSound_SetVelocityA, 3936, 10,
XRefOne)
// CDirectSound_SetVelocityA+0x35 : call [CDirectSound::SetVelocityB]
{ 0x35, XREF_DSSETVELOCITYB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x35, XREF_DSSETVELOCITYB ), // (Offset,Value)-Pair #1
// CDirectSound_SetVelocityA+0x06 : push esi; push edi
{ 0x06, 0x56 }, // (Offset,Value)-Pair #2
@ -3110,7 +3110,7 @@ OOVPA_XREF(IDirectSound8_SetVelocity, 3936, 11,
XRefOne)
// IDirectSound8_SetVelocity+0x2D : call [CDirectSound::SetVelocityA]
{ 0x2D, XREF_DSSETVELOCITYA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x2D, XREF_DSSETVELOCITYA ), // (Offset,Value)-Pair #1
// IDirectSound8_SetVelocity+0x06 : fld [ebp+0x14]
{ 0x06, 0xD9 }, // (Offset,Value)-Pair #2
@ -3168,7 +3168,7 @@ OOVPA_XREF(CDirectSound_SetAllParametersA, 3936, 10,
XRefOne)
// CDirectSound_SetAllParametersA+0x2F : call [CDirectSound::SetAllParametersB]
{ 0x2F, XREF_DSSETALLPARAMETERSB }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x2F, XREF_DSSETALLPARAMETERSB ), // (Offset,Value)-Pair #1
// CDirectSound_SetAllParametersA+0x00 : push esi; push edi
{ 0x00, 0x56 }, // (Offset,Value)-Pair #2
@ -3195,7 +3195,7 @@ OOVPA_XREF(IDirectSound8_SetAllParameters, 3936, 12,
XRefOne)
// IDirectSound8_SetAllParameters+0x19 : call [CDirectSound::SetAllParametersA]
{ 0x19, XREF_DSSETALLPARAMETERSA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x19, XREF_DSSETALLPARAMETERSA ), // (Offset,Value)-Pair #1
// IDirectSound8_SetAllParameters+0x04 : push [esp+0x0C]
{ 0x04, 0xFF }, // (Offset,Value)-Pair #2
@ -3251,7 +3251,7 @@ OOVPA_XREF(CDirectSoundStream_SetMode, 3936, 7,
XRefOne)
// CDirectSoundStream_SetMode+0x10 : call [CDirectSoundVoice::SetMode]
{ 0x11, XREF_DSBUFFERSETMODEA }, // (Offset,Value)-Pair #1
XREF_ENTRY( 0x11, XREF_DSBUFFERSETMODEA ), // (Offset,Value)-Pair #1
// CDirectSoundStream_SetMode+0x0C : add eax, 4
{ 0x0C, 0x83 }, // (Offset,Value)-Pair #2
@ -3309,7 +3309,7 @@ OOVPA_XREF(CDirectSound_SetDopplerFactor, 3936, 9,
XREF_SETDOPPLERFACTOR,
XRefOne)
{ 0x23, XREF_CMcpxAPU_Set3dDopplerFactor },
XREF_ENTRY( 0x23, XREF_CMcpxAPU_Set3dDopplerFactor ),
{ 0x07, 0xD9 },
{ 0x0E, 0x44 },
@ -3329,7 +3329,7 @@ OOVPA_XREF(IDirectSound_SetDopplerFactor, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_SETDOPPLERFACTOR },
XREF_ENTRY( 0x1D, XREF_SETDOPPLERFACTOR ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -3365,7 +3365,7 @@ OOVPA_XREF(DirectSoundUseFullHRTF, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x0D, XREF_CSensaura3d_GetFullHRTFFilterPair },
XREF_ENTRY( 0x0D, XREF_CSensaura3d_GetFullHRTFFilterPair ),
{ 0x05, 0x85 },
{ 0x06, 0xC0 },
@ -3384,7 +3384,7 @@ OOVPA_XREF(DirectSoundUseFullHRTF2, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x01, XREF_DirectSoundEnterCriticalSection },
XREF_ENTRY( 0x01, XREF_DirectSoundEnterCriticalSection ),
{ 0x05, 0x85 },
{ 0x06, 0xC0 },
@ -3421,7 +3421,7 @@ OOVPA_XREF(IDirectSound_GetCaps, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_CDirectSound_GetCaps },
XREF_ENTRY( 0x15, XREF_CDirectSound_GetCaps ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -3458,7 +3458,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetPitch, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_CDirectSoundVoice_SetPitch },
XREF_ENTRY( 0x15, XREF_CDirectSoundVoice_SetPitch ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -3495,7 +3495,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetConeAngles, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSVOICESETCONEANGLES },
XREF_ENTRY( 0x1D, XREF_DSVOICESETCONEANGLES ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -3531,7 +3531,7 @@ OOVPA_XREF(CDirectSoundBuffer_PlayEx, 3936, 9,
XREF_DirectSound_CDirectSoundBuffer_PlayEx,
XRefOne)
{ 0x03, XREF_DirectSoundEnterCriticalSection },
XREF_ENTRY( 0x03, XREF_DirectSoundEnterCriticalSection ),
{ 0x00, 0x56 },
{ 0x07, 0x8B },
@ -3551,7 +3551,7 @@ OOVPA_XREF(IDirectSoundBuffer_PlayEx, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx },
XREF_ENTRY( 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -3633,7 +3633,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMinDistance, 3936, 9,
XREF_CDirectSoundBuffer_SetMinDistance,
XRefOne)
{ 0x11, XREF_DSSTREAMSETMINDISTANCE1B },
XREF_ENTRY( 0x11, XREF_DSSTREAMSETMINDISTANCE1B ),
{ 0x01, 0x74 },
{ 0x04, 0xD9 },
@ -3653,7 +3653,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_CDirectSoundBuffer_SetMinDistance },
XREF_ENTRY( 0x1D, XREF_CDirectSoundBuffer_SetMinDistance ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -3672,7 +3672,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetMaxDistance, 3936, 9,
XREF_CDirectSoundBuffer_SetMaxDistance,
XRefOne)
{ 0x11, XREF_DSSTREAMSETMAXDISTANCE1B },
XREF_ENTRY( 0x11, XREF_DSSTREAMSETMAXDISTANCE1B ),
{ 0x01, 0x74 },
{ 0x04, 0xD9 },
@ -3692,7 +3692,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMaxDistance, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_CDirectSoundBuffer_SetMaxDistance },
XREF_ENTRY( 0x1D, XREF_CDirectSoundBuffer_SetMaxDistance ),
{ 0x03, 0x0C },
{ 0x08, 0x8B },
@ -3751,7 +3751,7 @@ OOVPA_XREF(CDirectSoundVoice_SetI3DL2Source, 3936, 9,
XREF_CDirectSoundVoice_SetI3DL2Source,
XRefOne)
{ 0x1F, XREF_CMcpxVoiceClient_SetI3DL2Source },
XREF_ENTRY( 0x1F, XREF_CMcpxVoiceClient_SetI3DL2Source ),
{ 0x00, 0x56 },
{ 0x07, 0x8B },
@ -3771,7 +3771,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetI3DL2Source, 3936, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_CDirectSoundVoice_SetI3DL2Source },
XREF_ENTRY( 0x19, XREF_CDirectSoundVoice_SetI3DL2Source ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -3808,7 +3808,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetMixBinVolumes, 3936, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_CDirectSoundVoice_SetMixBinVolumes },
XREF_ENTRY( 0x19, XREF_CDirectSoundVoice_SetMixBinVolumes ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -3845,7 +3845,7 @@ OOVPA_XREF(CDirectSound_SetAllParameters, 3936, 9,
XREF_DSSETALLPARAMETERSA,
XRefOne)
{ 0x1F, XREF_DSSETALLPARAMETERSB },
XREF_ENTRY( 0x1F, XREF_DSSETALLPARAMETERSB ),
{ 0x00, 0x56 },
{ 0x07, 0x8B },
@ -3865,7 +3865,7 @@ OOVPA_XREF(IDirectSound_SetAllParameters, 3936, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETALLPARAMETERSA },
XREF_ENTRY( 0x19, XREF_DSSETALLPARAMETERSA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -3902,7 +3902,7 @@ OOVPA_XREF(IDirectSound_SetI3DL2Listener, 3936, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSSETI3DL2LISTENER },
XREF_ENTRY( 0x19, XREF_DSSETI3DL2LISTENER ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -3938,7 +3938,7 @@ OOVPA_XREF(IDirectSound_EnableHeadphones, 3936, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DirectSound_CDirectSound_EnableHeadphones },
XREF_ENTRY( 0x15, XREF_DirectSound_CDirectSound_EnableHeadphones ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -3957,7 +3957,7 @@ OOVPA_XREF(CDirectSoundStream_SetMixBinVolumes, 3936, 9,
XREF_CDirectSoundStream_SetMixBinVolumes,
XRefOne)
{ 0x11, XREF_CDirectSoundVoice_SetMixBinVolumes },
XREF_ENTRY( 0x11, XREF_CDirectSoundVoice_SetMixBinVolumes ),
{ 0x01, 0x74 },
{ 0x04, 0x8B },
@ -3977,7 +3977,7 @@ OOVPA_XREF(CDirectSoundStream_SetI3DL2Source, 3936, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x11, XREF_CDirectSoundVoice_SetI3DL2Source },
XREF_ENTRY( 0x11, XREF_CDirectSoundVoice_SetI3DL2Source ),
{ 0x01, 0x74 },
{ 0x04, 0x8B },
@ -4014,7 +4014,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetNotificationPositions, 3936, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_CDirectSoundBuffer_SetNotificationPositions },
XREF_ENTRY( 0x19, XREF_CDirectSoundBuffer_SetNotificationPositions ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },

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 },

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 },
@ -384,7 +384,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
@ -411,7 +411,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
@ -460,7 +460,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
@ -487,7 +487,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
@ -540,7 +540,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
@ -595,7 +595,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
@ -622,7 +622,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
@ -672,7 +672,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
@ -699,7 +699,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
@ -740,7 +740,7 @@ OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4361, 8,
XREF_DSSETMIXBINVOLUMESB,
XRefOne)
{ 0x0D, XREF_DSSETMIXBINVOLUMESC },
XREF_ENTRY( 0x0D, XREF_DSSETMIXBINVOLUMESC ),
{ 0x02, 0x74 },
{ 0x06, 0x74 },
@ -759,7 +759,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4361, 8,
XREF_DSSETMIXBINVOLUMESA,
XRefOne)
{ 0x32, XREF_DSSETMIXBINVOLUMESB },
XREF_ENTRY( 0x32, XREF_DSSETMIXBINVOLUMESB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -778,7 +778,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_PlayEx, 4361, 8,
XREF_DirectSound_CDirectSoundBuffer_PlayEx,
XRefOne)
{ 0x3D, XREF_DSOUNDPLAY },
XREF_ENTRY( 0x3D, XREF_DSOUNDPLAY ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -797,7 +797,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 },
@ -840,7 +840,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 },
@ -859,7 +859,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 },
@ -907,7 +907,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
@ -945,7 +945,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
@ -981,7 +981,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

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

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
@ -978,7 +978,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
@ -1070,7 +1070,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
@ -1124,7 +1124,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 },
@ -1151,7 +1151,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 },
@ -1202,7 +1202,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 },
@ -1229,7 +1229,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 },
@ -1280,7 +1280,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 },
@ -1308,7 +1308,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 },
@ -1358,7 +1358,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 },
@ -1384,7 +1384,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 },
@ -1434,7 +1434,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 },
@ -1462,7 +1462,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 },
@ -1511,7 +1511,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 },
@ -1560,7 +1560,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 },
@ -1610,7 +1610,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 },
@ -1637,7 +1637,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 },
@ -1690,7 +1690,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 },
@ -1718,7 +1718,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 },
@ -1788,7 +1788,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 },
@ -1807,7 +1807,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 },
@ -1854,7 +1854,7 @@ OOVPA_XREF(CDirectSoundStream_SetMixBinVolumes, 4627, 12,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINVOLUMESB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINVOLUMESB ),
{ 0x0D, 0x0F },
{ 0x0E, 0xB6 },
@ -1911,7 +1911,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 },
@ -1937,7 +1937,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 },
@ -1957,7 +1957,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 },
@ -2020,7 +2020,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 },
@ -2058,7 +2058,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 },
@ -2077,7 +2077,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 },
@ -2114,7 +2114,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 },
@ -2133,7 +2133,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 },
@ -2169,7 +2169,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 },
@ -2188,7 +2188,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 },
@ -2207,7 +2207,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBins, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSSETMIXBINSB },
XREF_ENTRY( 0x36, XREF_DSSETMIXBINSB ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2244,7 +2244,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 },
@ -2262,7 +2262,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 },
@ -2281,7 +2281,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 },
@ -2300,7 +2300,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 },
@ -2336,7 +2336,7 @@ OOVPA_XREF(IDirectSoundStream_FlushEx, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x11, XREF_DSFLUSHEX2 },
XREF_ENTRY( 0x11, XREF_DSFLUSHEX2 ),
{ 0x01, 0x74 },
{ 0x04, 0xFF },
@ -2388,7 +2388,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMode, 4627, 8,
XREF_DSBUFFERSETMODEA,
XRefOne)
{ 0x36, XREF_DSBUFFERSETMODEB },
XREF_ENTRY( 0x36, XREF_DSBUFFERSETMODEB ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2407,7 +2407,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetMode, 4627, 9,
XRefNoSaveIndex,
XRefOne)
{ 0x19, XREF_DSBUFFERSETMODEA },
XREF_ENTRY( 0x19, XREF_DSBUFFERSETMODEA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2445,7 +2445,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 },
@ -2463,7 +2463,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 },
@ -2482,7 +2482,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 },
@ -2501,7 +2501,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 },
@ -2536,7 +2536,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetPitch, 4627, 8,
XREF_DSBUFFERSETPITCHA,
XRefOne)
{ 0x32, XREF_DSBUFFERSETPITCHB },
XREF_ENTRY( 0x32, XREF_DSBUFFERSETPITCHB ),
{ 0x0C, 0x00 },
{ 0x12, 0x85 },
@ -2555,7 +2555,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPitch, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x15, XREF_DSBUFFERSETPITCHA },
XREF_ENTRY( 0x15, XREF_DSBUFFERSETPITCHA ),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
@ -2575,7 +2575,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 },
@ -2630,7 +2630,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 },
@ -2649,7 +2649,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 },
@ -2668,7 +2668,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 },
@ -2705,7 +2705,7 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetRolloffCurve, 4627, 8,
XREF_DSBUFFERSETROLLOFFCURVE,
XRefOne)
{ 0x3A, XREF_DSVOICESETROLLOFFCURVE },
XREF_ENTRY( 0x3A, XREF_DSVOICESETROLLOFFCURVE ),
{ 0x0C, 0x00 },
{ 0x14, 0x74 },
@ -2724,7 +2724,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetRolloffCurve, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x3E, XREF_DSVOICESETROLLOFFCURVE },
XREF_ENTRY( 0x3E, XREF_DSVOICESETROLLOFFCURVE ),
{ 0x0C, 0x00 },
{ 0x16, 0x68 },
@ -2743,7 +2743,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetRolloffCurve, 4627, 8,
XRefNoSaveIndex,
XRefOne)
{ 0x1D, XREF_DSBUFFERSETROLLOFFCURVE },
XREF_ENTRY( 0x1D, XREF_DSBUFFERSETROLLOFFCURVE ),
{ 0x03, 0x10 },
{ 0x08, 0xFF },
@ -2829,7 +2829,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 },
@ -2867,7 +2867,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 },
@ -2885,7 +2885,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 },
@ -2904,7 +2904,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 },
@ -2923,7 +2923,7 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetPitch, 4627, 12,
XRefNoSaveIndex,
XRefOne)
{ 0x36, XREF_DSBUFFERSETPITCHB },
XREF_ENTRY( 0x36, XREF_DSBUFFERSETPITCHB ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },

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 },

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 },

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 },

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 },

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

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

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

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 },

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 },

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 },

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

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

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 },

View File

@ -44,8 +44,8 @@
#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>
@ -57,11 +57,11 @@ 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
@ -140,7 +140,7 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
{
while(true)
{
void *cur;
xbaddr cur;
if(fread(&cur, 4, 1, pCacheFile) != 1)
break;
@ -167,7 +167,7 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
{
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;
@ -177,7 +177,7 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
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++)
@ -324,8 +324,8 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|| 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
@ -336,10 +336,9 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
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);
@ -349,49 +348,49 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
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++)
{
@ -409,7 +408,7 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
// locate D3DDeferredTextureState
{
pFunc = nullptr;
pFunc = (xbaddr)nullptr;
if(BuildVersion == 3925)
pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_3925, lower, upper);
@ -421,14 +420,14 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
|| 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++)
{
@ -452,10 +451,9 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
// 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);
@ -469,17 +467,17 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
// 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++)
// {
@ -496,19 +494,19 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
// // 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++)
// {
@ -539,7 +537,7 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
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");
}
@ -600,34 +598,34 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader)
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;
@ -640,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;
@ -686,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--;
@ -696,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
@ -735,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++] = pFunc;
EmuInstallPatch(pFunc, OovpaTable[a].emuPatch);
funcExclude[fcount++] = (void *)pFunc;
}
}
}
@ -816,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);
}
}
@ -913,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",
@ -921,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

@ -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
@ -224,7 +200,7 @@ const uint16_t Flag_Reserved = 4;
#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()