From 0b57f6192348205d25da0fc600ab5203f13d0a14 Mon Sep 17 00:00:00 2001 From: Aaron Robinson Date: Thu, 15 Apr 2004 02:08:30 +0000 Subject: [PATCH] monkeys --- Cxbx.opt | Bin 64000 -> 61952 bytes Include/Win32/CxbxKrnl/EmuD3D8.h | 5 + Include/Win32/CxbxKrnl/EmuD3D8Types.h | 20 +- Source/Win32/CxbxKrnl/EmuD3D8.cpp | 91 +- Source/Win32/CxbxKrnl/EmuD3D8/PushBuffer.cpp | 8 +- .../Win32/CxbxKrnl/EmuD3D8/VertexBuffer.cpp | 19 +- .../CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl | 356 +++ .../CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl | 2555 ++--------------- 8 files changed, 680 insertions(+), 2374 deletions(-) diff --git a/Cxbx.opt b/Cxbx.opt index ee3fffe2828f5d8fd0a1e0b3d6f634b3cd7aade0..93b51b99a5be4a51d1ae5f373a56d45dc3598672 100644 GIT binary patch literal 61952 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 diff --git a/Include/Win32/CxbxKrnl/EmuD3D8.h b/Include/Win32/CxbxKrnl/EmuD3D8.h index 0cca04f6c..cc1acf00d 100644 --- a/Include/Win32/CxbxKrnl/EmuD3D8.h +++ b/Include/Win32/CxbxKrnl/EmuD3D8.h @@ -116,6 +116,11 @@ HRESULT WINAPI EmuIDirect3DDevice8_GetVisibilityTestResult ULONGLONG *pTimeStamp ); +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetBackBufferScale +// ****************************************************************** +VOID WINAPI EmuIDirect3DDevice8_SetBackBufferScale(FLOAT x, FLOAT y); + // ****************************************************************** // * func: EmuIDirect3DDevice8_LoadVertexShader // ****************************************************************** diff --git a/Include/Win32/CxbxKrnl/EmuD3D8Types.h b/Include/Win32/CxbxKrnl/EmuD3D8Types.h index c04db3278..d427366e0 100644 --- a/Include/Win32/CxbxKrnl/EmuD3D8Types.h +++ b/Include/Win32/CxbxKrnl/EmuD3D8Types.h @@ -46,12 +46,30 @@ typedef DWORD X_D3DBLENDOP; typedef DWORD X_D3DBLEND; typedef DWORD X_D3DCMPFUNC; typedef DWORD X_D3DFILLMODE; -typedef DWORD X_D3DPRIMITIVETYPE; typedef DWORD X_D3DTEXTURESTAGESTATETYPE; // TODO: these enumerations are not equivalent when > 7! typedef D3DRESOURCETYPE X_D3DRESOURCETYPE; +// Primitives supported by draw-primitive API +typedef enum _X_D3DPRIMITIVETYPE +{ + X_D3DPT_POINTLIST = 1, + X_D3DPT_LINELIST = 2, + X_D3DPT_LINELOOP = 3, // Xbox only + X_D3DPT_LINESTRIP = 4, + X_D3DPT_TRIANGLELIST = 5, + X_D3DPT_TRIANGLESTRIP = 6, + X_D3DPT_TRIANGLEFAN = 7, + X_D3DPT_QUADLIST = 8, // Xbox only + X_D3DPT_QUADSTRIP = 9, // Xbox only + X_D3DPT_POLYGON = 10, // Xbox only + + X_D3DPT_MAX = 11, + X_D3DPT_INVALID = 0x7fffffff, /* force 32-bit size enum */ +} +X_D3DPRIMITIVETYPE; + typedef struct _X_D3DDISPLAYMODE { UINT Width; diff --git a/Source/Win32/CxbxKrnl/EmuD3D8.cpp b/Source/Win32/CxbxKrnl/EmuD3D8.cpp index 16d425f09..94e5b6e2d 100644 --- a/Source/Win32/CxbxKrnl/EmuD3D8.cpp +++ b/Source/Win32/CxbxKrnl/EmuD3D8.cpp @@ -1148,6 +1148,27 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_EndVisibilityTest return D3D_OK; } +// ****************************************************************** +// * func: EmuIDirect3DDevice8_SetBackBufferScale +// ****************************************************************** +VOID WINAPI XTL::EmuIDirect3DDevice8_SetBackBufferScale(FLOAT x, FLOAT y) +{ + EmuSwapFS(); // Win2k/XP FS + + DbgPrintf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_SetBackBufferScale\n" + "(\n" + " x : %f\n" + " y : %f\n" + ");\n", + GetCurrentThreadId(), x, y); + + EmuWarning("SetBackBufferScale ignored"); + + EmuSwapFS(); // XBox FS + + return; +} + // ****************************************************************** // * func: EmuIDirect3DDevice8_GetVisibilityTestResult // ****************************************************************** @@ -3108,7 +3129,7 @@ HRESULT WINAPI XTL::EmuIDirect3DDevice8_Begin ");\n", GetCurrentThreadId(), PrimitiveType); - if((PrimitiveType != 7) && (PrimitiveType != 9)) + if((PrimitiveType != X_D3DPT_TRIANGLEFAN) && (PrimitiveType != X_D3DPT_QUADSTRIP) && (PrimitiveType != X_D3DPT_QUADLIST)) EmuCleanup("EmuIDirect3DDevice8_Begin does not support primitive : %d", PrimitiveType); g_IVBPrimitiveType = PrimitiveType; @@ -3628,6 +3649,7 @@ HRESULT WINAPI XTL::EmuIDirect3DResource8_Register // Swizzled 32 Bit dwWidth = 1 << ((pPixelContainer->Format & X_D3DFORMAT_USIZE_MASK) >> X_D3DFORMAT_USIZE_SHIFT); dwHeight = 1 << ((pPixelContainer->Format & X_D3DFORMAT_VSIZE_MASK) >> X_D3DFORMAT_VSIZE_SHIFT); + dwMipMapLevels = (pPixelContainer->Format & X_D3DFORMAT_MIPMAP_MASK) >> X_D3DFORMAT_MIPMAP_SHIFT; dwDepth = 1;// HACK? 1 << ((pPixelContainer->Format & X_D3DFORMAT_PSIZE_MASK) >> X_D3DFORMAT_PSIZE_SHIFT); dwPitch = dwWidth*4; dwBPP = 4; @@ -3641,6 +3663,7 @@ HRESULT WINAPI XTL::EmuIDirect3DResource8_Register // Swizzled 16 Bit dwWidth = 1 << ((pPixelContainer->Format & X_D3DFORMAT_USIZE_MASK) >> X_D3DFORMAT_USIZE_SHIFT); dwHeight = 1 << ((pPixelContainer->Format & X_D3DFORMAT_VSIZE_MASK) >> X_D3DFORMAT_VSIZE_SHIFT); + dwMipMapLevels = (pPixelContainer->Format & X_D3DFORMAT_MIPMAP_MASK) >> X_D3DFORMAT_MIPMAP_SHIFT; dwDepth = 1;// HACK? 1 << ((pPixelContainer->Format & X_D3DFORMAT_PSIZE_MASK) >> X_D3DFORMAT_PSIZE_SHIFT); dwPitch = dwWidth*2; dwBPP = 2; @@ -3652,6 +3675,7 @@ HRESULT WINAPI XTL::EmuIDirect3DResource8_Register // Swizzled 8 Bit dwWidth = 1 << ((pPixelContainer->Format & X_D3DFORMAT_USIZE_MASK) >> X_D3DFORMAT_USIZE_SHIFT); dwHeight = 1 << ((pPixelContainer->Format & X_D3DFORMAT_VSIZE_MASK) >> X_D3DFORMAT_VSIZE_SHIFT); + dwMipMapLevels = (pPixelContainer->Format & X_D3DFORMAT_MIPMAP_MASK) >> X_D3DFORMAT_MIPMAP_SHIFT; dwDepth = 1;// HACK? 1 << ((pPixelContainer->Format & X_D3DFORMAT_PSIZE_MASK) >> X_D3DFORMAT_PSIZE_SHIFT); dwPitch = dwWidth; dwBPP = 1; @@ -3680,20 +3704,34 @@ HRESULT WINAPI XTL::EmuIDirect3DResource8_Register dwWidth = 1 << ((pPixelContainer->Format & X_D3DFORMAT_USIZE_MASK) >> X_D3DFORMAT_USIZE_SHIFT); dwHeight = 1 << ((pPixelContainer->Format & X_D3DFORMAT_VSIZE_MASK) >> X_D3DFORMAT_VSIZE_SHIFT); dwDepth = 1 << ((pPixelContainer->Format & X_D3DFORMAT_PSIZE_MASK) >> X_D3DFORMAT_PSIZE_SHIFT); + dwMipMapLevels = (pPixelContainer->Format & X_D3DFORMAT_MIPMAP_MASK) >> X_D3DFORMAT_MIPMAP_SHIFT; - // D3DFMT_DXT2->D3DFMT_DXT5 : 128bits per block/per 16 texels + // D3DFMT_DXT2...D3DFMT_DXT5 : 128bits per block/per 16 texels dwCompressedSize = dwWidth*dwHeight; if(X_Format == 0x0C) // D3DFMT_DXT1 : 64bits per block/per 16 texels dwCompressedSize /= 2; - - dwMipMapLevels = (pPixelContainer->Format & X_D3DFORMAT_MIPMAP_MASK) >> X_D3DFORMAT_MIPMAP_SHIFT; } else { EmuCleanup("0x%.08X is not a supported format!\n", X_Format); } + if(bSwizzled || bCompressed) + { + uint32 w = dwWidth; + uint32 h = dwHeight; + + for(uint32 v=0;v= w) || ((1u << v) >= h)) + { + dwMipMapLevels = v + 1; + break; + } + } + } + // create the happy little texture if(dwCommonType == X_D3DCOMMON_TYPE_SURFACE) { @@ -3766,6 +3804,11 @@ HRESULT WINAPI XTL::EmuIDirect3DResource8_Register // as we iterate through mipmap levels, we'll adjust the source resource offset DWORD dwCompressedOffset = 0; + DWORD dwMipOffs = 0; + DWORD dwMipWidth = dwWidth; + DWORD dwMipHeight = dwHeight; + DWORD dwMipPitch = dwPitch; + // iterate through the number of mipmap levels for(uint level=0;levelEmuTexture8->UnlockRect(level); } + + dwMipOffs += dwMipWidth*dwMipHeight*dwBPP; + + dwMipWidth /= 2; + dwMipHeight /= 2; + dwMipPitch /= 2; } } @@ -6184,7 +6225,7 @@ VOID WINAPI XTL::EmuIDirect3DDevice8_DrawVertices EmuUpdateDeferredStates(); - if((DWORD)PrimitiveType == 0x09 || (DWORD)PrimitiveType == 0x10) + if( (PrimitiveType == X_D3DPT_QUADSTRIP) || (PrimitiveType == X_D3DPT_POLYGON) ) EmuWarning("Unsupported PrimitiveType! (%d)", (DWORD)PrimitiveType); UINT PrimitiveCount = EmuD3DVertex2PrimitiveCount(PrimitiveType, VertexCount); @@ -6264,7 +6305,7 @@ VOID WINAPI XTL::EmuIDirect3DDevice8_DrawVerticesUP EmuUpdateDeferredStates(); - if((DWORD)PrimitiveType == 0x09 || (DWORD)PrimitiveType == 0x10) + if( (PrimitiveType == X_D3DPT_QUADSTRIP) || (PrimitiveType == X_D3DPT_POLYGON) ) EmuCleanup("Unsupported PrimitiveType! (%d)", (DWORD)PrimitiveType); /* @@ -6428,7 +6469,7 @@ VOID WINAPI XTL::EmuIDirect3DDevice8_DrawIndexedVertices EmuUpdateDeferredStates(); - if((DWORD)PrimitiveType == 0x08 || (DWORD)PrimitiveType == 0x09 || (DWORD)PrimitiveType == 0x10) + if( (PrimitiveType == X_D3DPT_QUADLIST) || (PrimitiveType == X_D3DPT_QUADSTRIP) || (PrimitiveType == X_D3DPT_POLYGON) ) EmuWarning("Unsupported PrimitiveType! (%d)", (DWORD)PrimitiveType); UINT PrimitiveCount = EmuD3DVertex2PrimitiveCount(PrimitiveType, VertexCount); @@ -6560,7 +6601,7 @@ VOID WINAPI XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP EmuUpdateDeferredStates(); - if((DWORD)PrimitiveType == 0x08 || (DWORD)PrimitiveType == 0x09 || (DWORD)PrimitiveType == 0x10) + if( (PrimitiveType == X_D3DPT_QUADLIST) || (PrimitiveType == X_D3DPT_QUADSTRIP) || (PrimitiveType == X_D3DPT_POLYGON) ) EmuWarning("Unsupported PrimitiveType! (%d)", (DWORD)PrimitiveType); UINT PrimitiveCount = EmuD3DVertex2PrimitiveCount(PrimitiveType, VertexCount); diff --git a/Source/Win32/CxbxKrnl/EmuD3D8/PushBuffer.cpp b/Source/Win32/CxbxKrnl/EmuD3D8/PushBuffer.cpp index f0298f59c..87d54ff59 100644 --- a/Source/Win32/CxbxKrnl/EmuD3D8/PushBuffer.cpp +++ b/Source/Win32/CxbxKrnl/EmuD3D8/PushBuffer.cpp @@ -60,7 +60,7 @@ void XTL::EmuExecutePushBuffer DWORD *pdwPushData = (DWORD*)pPushBuffer->Data; D3DPRIMITIVETYPE PCPrimitiveType = (D3DPRIMITIVETYPE)-1; - X_D3DPRIMITIVETYPE XBPrimitiveType = -1; + X_D3DPRIMITIVETYPE XBPrimitiveType = X_D3DPT_INVALID; // TODO: This technically should be enabled XTL::EmuUpdateDeferredStates(); @@ -125,7 +125,7 @@ void XTL::EmuExecutePushBuffer } #endif - XBPrimitiveType = *pdwPushData; + XBPrimitiveType = (X_D3DPRIMITIVETYPE)*pdwPushData; PCPrimitiveType = EmuPrimitiveType(XBPrimitiveType); } } @@ -157,7 +157,7 @@ void XTL::EmuExecutePushBuffer WORD *pwVal = (WORD*)pIndexData; - for(uint s=0;sPrimitiveType != 8) && (pPatchDesc->PrimitiveType != 3)) + if((pPatchDesc->PrimitiveType != X_D3DPT_QUADLIST) && (pPatchDesc->PrimitiveType != X_D3DPT_LINELOOP)) return false; if(pPatchDesc->pVertexStreamZeroData && uiStream > 0) @@ -716,8 +716,7 @@ bool XTL::VertexPatcher::PatchPrimitive(VertexPatchDesc *pPatchDesc, g_pD3DDevice8->GetStreamSource(0, &pStream->pOriginalStream, &pStream->uiOrigStride); pStream->uiNewStride = pStream->uiOrigStride; // The stride is still the same - // Quad - if(pPatchDesc->PrimitiveType == 8) + if(pPatchDesc->PrimitiveType == X_D3DPT_QUADLIST) { pPatchDesc->dwPrimitiveCount *= 2; @@ -726,7 +725,7 @@ bool XTL::VertexPatcher::PatchPrimitive(VertexPatchDesc *pPatchDesc, dwNewSize = pPatchDesc->dwPrimitiveCount * pStream->uiOrigStride * 3; } // LineLoop - else if(pPatchDesc->PrimitiveType == 3) + else if(pPatchDesc->PrimitiveType == X_D3DPT_LINELOOP) { pPatchDesc->dwPrimitiveCount += 1; @@ -768,7 +767,7 @@ bool XTL::VertexPatcher::PatchPrimitive(VertexPatchDesc *pPatchDesc, { pStream->uiOrigStride = pPatchDesc->uiVertexStreamZeroStride; - if(pPatchDesc->PrimitiveType == 8) // Quad + if(pPatchDesc->PrimitiveType == X_D3DPT_QUADLIST) { pPatchDesc->dwPrimitiveCount *= 2; @@ -776,7 +775,7 @@ bool XTL::VertexPatcher::PatchPrimitive(VertexPatchDesc *pPatchDesc, dwOriginalSize = pPatchDesc->dwPrimitiveCount * pStream->uiOrigStride * 2; dwNewSize = pPatchDesc->dwPrimitiveCount * pStream->uiOrigStride * 3; } - else if(pPatchDesc->PrimitiveType == 3) // LineLoop + else if(pPatchDesc->PrimitiveType == X_D3DPT_LINELOOP) // LineLoop { pPatchDesc->dwPrimitiveCount += 1; @@ -804,7 +803,7 @@ bool XTL::VertexPatcher::PatchPrimitive(VertexPatchDesc *pPatchDesc, dwOriginalSizeWR - pPatchDesc->dwOffset - dwOriginalSize); // Quad - if(pPatchDesc->PrimitiveType == 8) + if(pPatchDesc->PrimitiveType == X_D3DPT_QUADLIST) { uint08 *pPatch1 = &pPatchedVertexData[pPatchDesc->dwOffset * pStream->uiOrigStride]; uint08 *pPatch2 = &pPatchedVertexData[pPatchDesc->dwOffset + 3 * pStream->uiOrigStride]; @@ -844,7 +843,7 @@ bool XTL::VertexPatcher::PatchPrimitive(VertexPatchDesc *pPatchDesc, } } // LineLoop - else if(pPatchDesc->PrimitiveType == 3) + else if(pPatchDesc->PrimitiveType == X_D3DPT_LINELOOP) { memcpy(&pPatchedVertexData[pPatchDesc->dwOffset], &pOrigVertexData[pPatchDesc->dwOffset], dwOriginalSize); memcpy(&pPatchedVertexData[pPatchDesc->dwOffset + dwOriginalSize], &pOrigVertexData[pPatchDesc->dwOffset], pStream->uiOrigStride); @@ -938,7 +937,7 @@ bool XTL::VertexPatcher::Restore() VOID XTL::EmuFlushIVB() { - if(g_IVBPrimitiveType == 9 && g_IVBTblOffs == 4) + if((g_IVBPrimitiveType == X_D3DPT_QUADSTRIP) && (g_IVBTblOffs == 4)) { DWORD dwShader = -1; DWORD *pdwVB = g_pIVBVertexBuffer; diff --git a/Source/Win32/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl b/Source/Win32/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl index bec0b2a76..059570b63 100644 --- a/Source/Win32/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl +++ b/Source/Win32/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl @@ -32,6 +32,28 @@ // * // ****************************************************************** +// ****************************************************************** +// * IDirect3DDevice8_SetBackBufferScale +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetBackBufferScale_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + -1, // Xref Not Saved + 0, // Xref Not Used + + { + { 0x1E, 0x24 }, + { 0x3E, 0x06 }, + { 0x62, 0xD9 }, + { 0x7E, 0xC4 }, + { 0x9E, 0x81 }, + { 0xBE, 0xFF }, + { 0xDE, 0xC0 }, + } +}; + // ****************************************************************** // * IDirect3DDevice8_GetCreationParameters // ****************************************************************** @@ -54,6 +76,29 @@ SOOVPA<7> IDirect3DDevice8_GetCreationParameters_1_0_5849 = } }; +// ****************************************************************** +// * IDirect3DDevice8_Clear +// ****************************************************************** +LOOVPA<8> IDirect3DDevice8_Clear_1_0_5849 = +{ + 1, // Large == 1 + 8, // Count == 8 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x1D, 0x8A }, + { 0x3C, 0x8B }, + { 0x5B, 0x00 }, + { 0x7A, 0xFD }, + { 0x99, 0x25 }, + { 0xB8, 0x00 }, + { 0xD7, 0x75 }, + { 0xF6, 0xFF }, + } +}; + // ****************************************************************** // * IDirect3DDevice8_GetBackBuffer2 // ****************************************************************** @@ -170,6 +215,28 @@ SOOVPA<8> IDirect3DDevice8_CreatePixelShader_1_0_5849 = } }; +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetPixelShader_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x1E, 0x75 }, + { 0x3E, 0x0D }, + { 0x60, 0x8B }, + { 0x7E, 0x04 }, + { 0x9E, 0x20 }, + { 0xBE, 0x08 }, + { 0xE1, 0xF6 }, + } +}; + // ****************************************************************** // * IDirect3DDevice8_SetRenderState_CullMode // ****************************************************************** @@ -205,6 +272,28 @@ SOOVPA<13> IDirect3DDevice8_SetRenderState_CullMode_1_0_5849 = } }; +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x09, 0x84 }, + { 0x14, 0x46 }, + { 0x1F, 0x24 }, + { 0x2A, 0xBA }, + { 0x35, 0x4A }, + { 0x40, 0x5E }, + { 0x4D, 0x5E }, + } +}; + // ****************************************************************** // * IDirect3DDevice8_SetRenderState_ZEnable // ****************************************************************** @@ -228,6 +317,140 @@ SOOVPA<8> IDirect3DDevice8_SetRenderState_ZEnable_1_0_5849 = } }; +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilEnable +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_StencilEnable_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + -1, // XRef Not Saved + 0, // XRef Not Used + { + { 0x12, 0x8B }, + { 0x24, 0x33 }, + { 0x37, 0x74 }, + { 0x4A, 0x1E }, + { 0x5D, 0x74 }, + { 0x70, 0xB9 }, + { 0x83, 0x40 }, + { 0x96, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShader +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetVertexShader_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x1E, 0x89 }, + { 0x3E, 0x5F }, + { 0x61, 0x3B }, + { 0x81, 0x00 }, + { 0x9E, 0x00 }, + { 0xBE, 0x8B }, + { 0xDE, 0x04 }, + { 0xFE, 0xC1 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetIndices +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetIndices_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x0F, 0x10 }, + { 0x20, 0xC7 }, + { 0x31, 0xC0 }, + { 0x42, 0x78 }, + { 0x53, 0xBE }, + { 0x64, 0x89 }, + { 0x75, 0x10 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTexture +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetTexture_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x1E, 0x44 }, + { 0x3E, 0xE8 }, + { 0x5F, 0x8B }, + { 0x7E, 0x00 }, + { 0x9E, 0x00 }, + { 0xBE, 0x89 }, + { 0xDE, 0xFF }, + { 0xFE, 0xE2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Begin +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_Begin_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x07, 0xE8 }, + { 0x0C, 0x8B }, + { 0x13, 0xE8 }, + { 0x1A, 0x24 }, + { 0x21, 0x00 }, + { 0x28, 0x89 }, + { 0x2F, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_Swap_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x1B, 0xE8 }, + { 0x38, 0xC3 }, + { 0x55, 0xC0 }, + { 0x72, 0x3F }, + { 0x8F, 0x8E }, + { 0xAC, 0xC6 }, + { 0xC9, 0xC0 }, + } +}; + // ****************************************************************** // * IDirect3DDevice8_SetTransform // ****************************************************************** @@ -251,6 +474,29 @@ SOOVPA<8> IDirect3DDevice8_SetTransform_1_0_5849 = } }; +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVertices +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_DrawIndexedVertices_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + -1, // XRef Not Saved + 0, // XRef Not Used + + { + { 0x1E, 0x5E }, + { 0x3E, 0x17 }, + { 0x5E, 0x00 }, + { 0x7E, 0x8B }, + { 0x9E, 0x89 }, + { 0xBE, 0x2B }, + { 0xDE, 0x00 }, + { 0xFE, 0x04 }, + } +}; + // ****************************************************************** // * IDirect3DDevice8_SetMaterial // ****************************************************************** @@ -290,6 +536,16 @@ OOVPATable D3D8_1_0_5849[] = "EmuIDirect3D8_CreateDevice" #endif }, + // IDirect3DDevice8::SetBackBufferScale + { + (OOVPA*)&IDirect3DDevice8_SetBackBufferScale_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetBackBufferScale, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetBackBufferScale" + #endif + }, // IDirect3DDevice8::GetCreationParameters { (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_5849, @@ -300,6 +556,26 @@ OOVPATable D3D8_1_0_5849[] = "EmuIDirect3DDevice8_GetCreationParameters" #endif }, + // IDirect3DDevice8::Clear + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_5849, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_5849, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, // IDirect3DDevice8::GetBackBuffer2 { (OOVPA*)&IDirect3DDevice8_GetBackBuffer2_1_0_5849, @@ -340,6 +616,16 @@ OOVPATable D3D8_1_0_5849[] = "EmuIDirect3DDevice8_CreatePixelShader" #endif }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, // IDirect3DDevice8::GetDisplayMode (* unchanged since 4627 *) { (OOVPA*)&IDirect3DDevice8_GetDisplayMode_1_0_4627, @@ -410,6 +696,16 @@ OOVPATable D3D8_1_0_5849[] = "EmuIDirect3DDevice8_SetRenderState_CullMode" #endif }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, // IDirect3DDevice8::SetRenderState_NormalizeNormals (* unchanged since 4432 *) { (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4432, @@ -480,6 +776,16 @@ OOVPATable D3D8_1_0_5849[] = "EmuIDirect3DDevice8_SetRenderState_ZEnable" #endif }, + // IDirect3DDevice8::SetRenderState_StencilEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, // IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4432 *) { (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4432, @@ -520,6 +826,46 @@ OOVPATable D3D8_1_0_5849[] = "EmuIDirect3DDevice8_SetRenderState_YuvEnable" #endif }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetTexture + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::Begin + { + (OOVPA*)&IDirect3DDevice8_Begin_1_0_5849, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, // IDirect3DDevice8::GetTransform (* unchanged since 4361 *) { (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_4361, @@ -540,6 +886,16 @@ OOVPATable D3D8_1_0_5849[] = "EmuIDirect3DDevice8_SetTransform" #endif }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_5849, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, // IDirect3DDevice8::SetMaterial { (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_5849, diff --git a/Source/Win32/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl b/Source/Win32/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl index c110c9b8e..f41b2cd0c 100644 --- a/Source/Win32/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl +++ b/Source/Win32/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl @@ -32,619 +32,6 @@ // * // ****************************************************************** -// ****************************************************************** -// * CDirectSound::CreateSoundBuffer -// ****************************************************************** -SOOVPA<14> CDirectSound_CreateSoundBuffer_1_0_5849 = -{ - 0, // Large == 0 - 14, // Count == 14 - - XREF_DSCREATESOUNDBUFFER, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSound_CreateSoundBuffer+0x23 : mov eax, 0x80004005 - { 0x23, 0xB8 }, // (Offset,Value)-Pair #1 - { 0x24, 0x05 }, // (Offset,Value)-Pair #2 - { 0x25, 0x40 }, // (Offset,Value)-Pair #3 - { 0x27, 0x80 }, // (Offset,Value)-Pair #4 - - // CDirectSound_CreateSoundBuffer+0x2A : push 0x24 - { 0x2A, 0x6A }, // (Offset,Value)-Pair #5 - { 0x2B, 0x24 }, // (Offset,Value)-Pair #6 - - // CDirectSound_CreateSoundBuffer+0x4A : add esi, 0x7FF8FFF2 - { 0x4A, 0x81 }, // (Offset,Value)-Pair #7 - { 0x4B, 0xE6 }, // (Offset,Value)-Pair #8 - { 0x4C, 0xF2 }, // (Offset,Value)-Pair #9 - { 0x4D, 0xFF }, // (Offset,Value)-Pair #10 - { 0x4E, 0xF8 }, // (Offset,Value)-Pair #11 - { 0x4F, 0x7F }, // (Offset,Value)-Pair #12 - - // CDirectSound_CreateSoundBuffer+0x99 : retn 0x10 - { 0x99, 0xC2 }, // (Offset,Value)-Pair #13 - { 0x9A, 0x10 }, // (Offset,Value)-Pair #14 - } -}; - -// ****************************************************************** -// * CDirectSound::SetMixBinHeadroom -// ****************************************************************** -SOOVPA<15> CDirectSound_SetMixBinHeadroom_1_0_5849 = -{ - 0, // Large == 0 - 15, // Count == 15 - - XREF_DSSETMIXBINHEADROOMA, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSound_SetMixBinHeadroom+0x21 : mov eax, 0x80004005 - { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 - { 0x22, 0x05 }, // (Offset,Value)-Pair #2 - { 0x23, 0x40 }, // (Offset,Value)-Pair #3 - { 0x24, 0x00 }, // (Offset,Value)-Pair #4 - { 0x25, 0x80 }, // (Offset,Value)-Pair #5 - - // CDirectSound_SetMixBinHeadroom+0x34 : mov bl, [esp+0x14] - { 0x34, 0x8A }, // (Offset,Value)-Pair #6 - { 0x35, 0x5C }, // (Offset,Value)-Pair #7 - { 0x36, 0x24 }, // (Offset,Value)-Pair #8 - { 0x37, 0x14 }, // (Offset,Value)-Pair #9 - - // CDirectSound_SetMixBinHeadroom+0x39 : mov [edx+ecx+0x14], bl - { 0x39, 0x88 }, // (Offset,Value)-Pair #10 - { 0x3A, 0x5C }, // (Offset,Value)-Pair #11 - { 0x3B, 0x0A }, // (Offset,Value)-Pair #12 - { 0x3C, 0x14 }, // (Offset,Value)-Pair #13 - - // CDirectSound_SetMixBinHeadroom+0x5C : retn 0x0C - { 0x5C, 0xC2 }, // (Offset,Value)-Pair #14 - { 0x5D, 0x0C }, // (Offset,Value)-Pair #15 - } -}; - -// ****************************************************************** -// * IDirectSound8_SetMixBinHeadroom -// ****************************************************************** -SOOVPA<12> IDirectSound8_SetMixBinHeadroom_1_0_5849 = -{ - 0, // Large == 0 - 12, // Count == 12 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSound8_SetMixBinHeadroom+0x19 : call [CDirectSound::SetMixBinHeadroom] - { 0x19, XREF_DSSETMIXBINHEADROOMA }, // (Offset,Value)-Pair #1 - - // IDirectSound8_SetMixBinHeadroom+0x04 : push [esp+0x0C] - { 0x04, 0xFF }, // (Offset,Value)-Pair #2 - { 0x05, 0x74 }, // (Offset,Value)-Pair #3 - { 0x06, 0x24 }, // (Offset,Value)-Pair #4 - { 0x07, 0x0C }, // (Offset,Value)-Pair #5 - - // IDirectSound8_SetMixBinHeadroom+0x0E : add eax, 0xFFFFFFF8 - { 0x0E, 0x83 }, // (Offset,Value)-Pair #6 - { 0x0F, 0xC0 }, // (Offset,Value)-Pair #7 - { 0x10, 0xF8 }, // (Offset,Value)-Pair #8 - - // IDirectSound8_SetMixBinHeadroom+0x13 : sbb ecx, ecx - { 0x13, 0x1B }, // (Offset,Value)-Pair #9 - { 0x14, 0xC9 }, // (Offset,Value)-Pair #10 - - // IDirectSound8_SetMixBinHeadroom+0x15 : and ecx, eax - { 0x15, 0x23 }, // (Offset,Value)-Pair #11 - { 0x16, 0xC8 }, // (Offset,Value)-Pair #12 - } -}; - - -// ****************************************************************** -// * CDirectSound::SetVelocity -// ****************************************************************** -SOOVPA<15> CDirectSound_SetVelocity_1_0_5849 = -{ - 0, // Large == 0 - 15, // Count == 15 - - XREF_DSSETVELOCITYA, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSound_SetVelocity+0x24 : mov eax, 0x80004005 - { 0x24, 0xB8 }, // (Offset,Value)-Pair #1 - { 0x25, 0x05 }, // (Offset,Value)-Pair #2 - { 0x26, 0x40 }, // (Offset,Value)-Pair #3 - { 0x27, 0x00 }, // (Offset,Value)-Pair #4 - { 0x28, 0x80 }, // (Offset,Value)-Pair #5 - - // CDirectSound_SetVelocity+0x37 : mov [edx+0x44], edi - { 0x37, 0x89 }, // (Offset,Value)-Pair #6 - { 0x38, 0x7A }, // (Offset,Value)-Pair #7 - { 0x39, 0x44 }, // (Offset,Value)-Pair #8 - - // CDirectSound_SetVelocity+0x4C : or byte ptr [eax+0x0x00A4], 0x80 - { 0x4C, 0x80 }, // (Offset,Value)-Pair #9 - { 0x4D, 0x88 }, // (Offset,Value)-Pair #10 - { 0x4E, 0xA4 }, // (Offset,Value)-Pair #11 - { 0x4F, 0x00 }, // (Offset,Value)-Pair #12 - { 0x52, 0x80 }, // (Offset,Value)-Pair #13 - - // CDirectSound_SetVelocity+0x73 : retn 0x14 - { 0x73, 0xC2 }, // (Offset,Value)-Pair #14 - { 0x74, 0x14 }, // (Offset,Value)-Pair #15 - } -}; - -// ****************************************************************** -// * CDirectSoundVoiceSettings::SetMixBinVolumes -// ****************************************************************** -SOOVPA<10> CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - XREF_DSSETMIXBINVOLUMESC, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoiceSettings_SetMixBinVolumes+0x09 : jbe +0x16 - { 0x09, 0x76 }, // (Offset,Value)-Pair #1 - { 0x0A, 0x16 }, // (Offset,Value)-Pair #2 - - // CDirectSoundVoiceSettings_SetMixBinVolumes+0x18 : mov [ecx+edi*4+0x30], eax - { 0x18, 0x89 }, // (Offset,Value)-Pair #3 - { 0x19, 0x44 }, // (Offset,Value)-Pair #4 - { 0x1A, 0xB9 }, // (Offset,Value)-Pair #5 - { 0x1B, 0x30 }, // (Offset,Value)-Pair #6 - - // CDirectSoundVoiceSettings_SetMixBinVolumes+0x1E : jb +0xEC - { 0x1E, 0x72 }, // (Offset,Value)-Pair #7 - { 0x1F, 0xEC }, // (Offset,Value)-Pair #8 - - // CDirectSoundVoiceSettings_SetMixBinVolumes+0x22 : retn 0x04 - { 0x22, 0xC2 }, // (Offset,Value)-Pair #9 - { 0x23, 0x04 }, // (Offset,Value)-Pair #10 - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetMixBinVolumes -// ****************************************************************** -SOOVPA<17> CDirectSoundVoice_SetMixBinVolumes_1_0_5849 = -{ - 0, // Large == 0 - 17, // Count == 17 - - XREF_DSSETMIXBINVOLUMESB, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundVoice_SetMixBinVolumes+0x0D : call [CDirectSoundVoiceSettings::SetMixBinVolumes] - { 0x0D, XREF_DSSETMIXBINVOLUMESC }, // (Offset,Value)-Pair #1 - - // CDirectSoundVoice_SetMixBinVolumes+0x01 : mov esi, [esp+8] - { 0x01, 0x8B }, // (Offset,Value)-Pair #2 - { 0x02, 0x74 }, // (Offset,Value)-Pair #3 - { 0x03, 0x24 }, // (Offset,Value)-Pair #4 - { 0x04, 0x08 }, // (Offset,Value)-Pair #5 - - // CDirectSoundVoice_SetMixBinVolumes+0x05 : push [esp+0x0C] - { 0x05, 0xFF }, // (Offset,Value)-Pair #6 - { 0x06, 0x74 }, // (Offset,Value)-Pair #7 - { 0x07, 0x24 }, // (Offset,Value)-Pair #8 - { 0x08, 0x0C }, // (Offset,Value)-Pair #9 - - // CDirectSoundVoice_SetMixBinVolumes+0x09 : mov ecx, [esi+0x10] - { 0x09, 0x8B }, // (Offset,Value)-Pair #10 - { 0x0A, 0x4E }, // (Offset,Value)-Pair #11 - { 0x0B, 0x10 }, // (Offset,Value)-Pair #12 - - // CDirectSoundVoice_SetMixBinVolumes+0x11 : mov ecx, [esi+0x0C] - { 0x11, 0x8B }, // (Offset,Value)-Pair #13 - { 0x12, 0x4E }, // (Offset,Value)-Pair #14 - { 0x13, 0x0C }, // (Offset,Value)-Pair #15 - - // CDirectSoundVoice_SetMixBinVolumes+0x1A : retn 0x08 - { 0x1A, 0xC2 }, // (Offset,Value)-Pair #16 - { 0x1B, 0x08 }, // (Offset,Value)-Pair #17 - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetMixBinVolumes -// ****************************************************************** -SOOVPA<17> CDirectSoundBuffer_SetMixBinVolumes_1_0_5849 = -{ - 0, // Large == 0 - 17, // Count == 17 - - XREF_DSSETMIXBINVOLUMESA, // XRef Is Saved - 1, // XRef Not Used - - { - // CDirectSoundBuffer_SetMixBinVolumes+0x32 : call [CDirectSoundVoice::SetMixBinVolumes] - { 0x32, XREF_DSSETMIXBINVOLUMESB }, // (Offset,Value)-Pair #1 - - // CDirectSoundBuffer_SetMixBinVolumes+0x21 : mov eax, 0x80004005 - { 0x21, 0xB8 }, // (Offset,Value)-Pair #2 - { 0x22, 0x05 }, // (Offset,Value)-Pair #3 - { 0x23, 0x40 }, // (Offset,Value)-Pair #4 - { 0x24, 0x00 }, // (Offset,Value)-Pair #5 - { 0x25, 0x80 }, // (Offset,Value)-Pair #6 - - // CDirectSoundBuffer_SetMixBinVolumes+0x29 : push [esp+0x10]; push [esp+0x10] - { 0x29, 0xFF }, // (Offset,Value)-Pair #7 - { 0x2A, 0x74 }, // (Offset,Value)-Pair #8 - { 0x2B, 0x24 }, // (Offset,Value)-Pair #9 - { 0x2C, 0x10 }, // (Offset,Value)-Pair #10 - { 0x2D, 0xFF }, // (Offset,Value)-Pair #11 - { 0x2E, 0x74 }, // (Offset,Value)-Pair #12 - { 0x2F, 0x24 }, // (Offset,Value)-Pair #13 - { 0x30, 0x10 }, // (Offset,Value)-Pair #14 - - // CDirectSoundBuffer_SetMixBinVolumes+0x49 : pop edi - { 0x49, 0x5F }, // (Offset,Value)-Pair #15 - - // CDirectSoundBuffer_SetMixBinVolumes+0x4B : retn 0x08 - { 0x4B, 0xC2 }, // (Offset,Value)-Pair #16 - { 0x4C, 0x08 }, // (Offset,Value)-Pair #17 - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer8_SetMixBinVolumes -// ****************************************************************** -SOOVPA<12> IDirectSoundBuffer8_SetMixBinVolumes_1_0_5849 = -{ - 0, // Large == 0 - 12, // Count == 12 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer8_SetMixBinVolumes+0x15 : call [CDirectSoundBuffer::SetMixBinVolumes] - { 0x15, XREF_DSSETMIXBINVOLUMESA }, // (Offset,Value)-Pair #1 - - // IDirectSoundBuffer8_SetMixBinVolumes+0x04 : push [esp+0x08] - { 0x04, 0xFF }, // (Offset,Value)-Pair #2 - { 0x05, 0x74 }, // (Offset,Value)-Pair #3 - { 0x06, 0x24 }, // (Offset,Value)-Pair #4 - { 0x07, 0x08 }, // (Offset,Value)-Pair #5 - - // IDirectSoundBuffer8_SetMixBinVolumes+0x0A : add eax, 0xFFFFFFE4 - { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 - { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 - { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 - - // IDirectSoundBuffer8_SetMixBinVolumes+0x0F : sbb ecx, ecx - { 0x0F, 0x1B }, // (Offset,Value)-Pair #9 - { 0x10, 0xC9 }, // (Offset,Value)-Pair #10 - - // IDirectSoundBuffer8_SetMixBinVolumes+0x11 : and ecx, eax - { 0x11, 0x23 }, // (Offset,Value)-Pair #11 - { 0x12, 0xC8 }, // (Offset,Value)-Pair #12 - } -}; - -// ****************************************************************** -// * CDirectSound::SetPositionA -// ****************************************************************** -SOOVPA<11> CDirectSound_SetPositionA_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - XREF_DSSETPOSITIONA, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSound_SetPositionA+0x2B : mov ecx, [ebp+0x08] - { 0x2B, 0x8B }, // (Offset,Value)-Pair #1 - { 0x2C, 0x4D }, // (Offset,Value)-Pair #2 - { 0x2D, 0x08 }, // (Offset,Value)-Pair #3 - - // CDirectSound_SetPositionA+0x3F : mov [edx+0x3C], edi - { 0x3F, 0x89 }, // (Offset,Value)-Pair #4 - { 0x40, 0x7A }, // (Offset,Value)-Pair #5 - { 0x41, 0x3C }, // (Offset,Value)-Pair #6 - - // CDirectSound_SetPositionA+0x4C : or word ptr [eax+0xA4], 0x01FF - { 0x4C, 0x66 }, // (Offset,Value)-Pair #7 - { 0x4D, 0x81 }, // (Offset,Value)-Pair #8 - { 0x4E, 0x88 }, // (Offset,Value)-Pair #9 - { 0x4F, 0xA4 }, // (Offset,Value)-Pair #10 - { 0x53, 0xFF }, // (Offset,Value)-Pair #11 - } -}; - -// ****************************************************************** -// * DirectSoundCreateBuffer -// ****************************************************************** -SOOVPA<12> DirectSoundCreateBuffer_1_0_5849 = -{ - 0, // Large == 0 - 12, // Count == 12 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // DirectSoundCreateBuffer+0x2F : call [CDirectSound::CreateSoundBuffer] - { 0x2F, XREF_DSCREATESOUNDBUFFER }, // (Offset,Value)-Pair #1 - - // DirectSoundCreateBuffer+0x04 : and [ebp-0x04], 0 - { 0x04, 0x83 }, // (Offset,Value)-Pair #2 - { 0x05, 0x65 }, // (Offset,Value)-Pair #3 - { 0x06, 0xFC }, // (Offset,Value)-Pair #4 - - // DirectSoundCreateBuffer+0x08 : push ebx; push esi; push edi - { 0x08, 0x53 }, // (Offset,Value)-Pair #5 - { 0x09, 0x56 }, // (Offset,Value)-Pair #6 - { 0x0A, 0x57 }, // (Offset,Value)-Pair #7 - - // DirectSoundCreateBuffer+0x3C : call dword ptr [eax+8] - { 0x3C, 0xFF }, // (Offset,Value)-Pair #8 - { 0x3D, 0x50 }, // (Offset,Value)-Pair #9 - { 0x3E, 0x08 }, // (Offset,Value)-Pair #10 - - // DirectSoundCreateBuffer+0x54 : retn 0x08 - { 0x54, 0xC2 }, // (Offset,Value)-Pair #11 - { 0x55, 0x08 }, // (Offset,Value)-Pair #12 - } -}; - -// ****************************************************************** -// * IDirectSound8_CreateSoundBuffer -// ****************************************************************** -SOOVPA<12> IDirectSound8_CreateSoundBuffer_1_0_5849 = -{ - 0, // Large == 0 - 12, // Count == 12 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSound8_CreateSoundBuffer+0x1D : call [CDirectSound::CreateSoundBuffer] - { 0x1D, XREF_DSCREATESOUNDBUFFER }, // (Offset,Value)-Pair #1 - - // IDirectSound8_CreateSoundBuffer+0x04 : mov eax, [esp+8] - { 0x04, 0x8B }, // (Offset,Value)-Pair #2 - { 0x05, 0x44 }, // (Offset,Value)-Pair #3 - { 0x06, 0x24 }, // (Offset,Value)-Pair #4 - { 0x07, 0x08 }, // (Offset,Value)-Pair #5 - - // IDirectSound8_CreateSoundBuffer+0x12 : add eax, 0xFFFFFFF8 - { 0x12, 0x83 }, // (Offset,Value)-Pair #6 - { 0x13, 0xC0 }, // (Offset,Value)-Pair #7 - { 0x14, 0xF8 }, // (Offset,Value)-Pair #8 - - // IDirectSound8_CreateSoundBuffer+0x17 : sbb ecx, ecx - { 0x17, 0x1B }, // (Offset,Value)-Pair #9 - { 0x18, 0xC9 }, // (Offset,Value)-Pair #10 - - // IDirectSound8_CreateSoundBuffer+0x21 : retn 0x10 - { 0x21, 0xC2 }, // (Offset,Value)-Pair #11 - { 0x22, 0x10 }, // (Offset,Value)-Pair #12 - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetFrequency -// ****************************************************************** -SOOVPA<11> CDirectSoundVoice_SetFrequency_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - XREF_DSBUFFERSETFREQUENCYB, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetFrequency+0x0D : mov eax, [esi+0x10] - { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 - { 0x0E, 0x46 }, // (Offset,Value)-Pair #2 - { 0x0F, 0x10 }, // (Offset,Value)-Pair #3 - - // CDirectSoundVoice_SetFrequency+0x10 : mov eax, [eax+0x10] - { 0x10, 0x8B }, // (Offset,Value)-Pair #4 - { 0x11, 0x40 }, // (Offset,Value)-Pair #5 - { 0x12, 0x10 }, // (Offset,Value)-Pair #6 - - // CDirectSoundVoice_SetFrequency+0x14 : call [abs]; push eax; push esi - { 0x14, 0xE8 }, // (Offset,Value)-Pair #7 - { 0x19, 0x50 }, // (Offset,Value)-Pair #8 - { 0x1A, 0x56 }, // (Offset,Value)-Pair #9 - - // CDirectSoundVoice_SetFrequency+0x22 : retn 0x08 - { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 - { 0x22, 0x08 }, // (Offset,Value)-Pair #11 - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetFrequency -// ****************************************************************** -SOOVPA<17> CDirectSoundBuffer_SetFrequency_1_0_5849 = -{ - 0, // Large == 0 - 17, // Count == 17 - - XREF_DSBUFFERSETFREQUENCYA, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetFrequency+0x32 : call [CDirectSoundVoice::SetFrequency] - { 0x32, XREF_DSBUFFERSETFREQUENCYB }, // (Offset,Value)-Pair #1 - - // CDirectSoundBuffer_SetFrequency+0x21 : mov eax, 0x80004005 - { 0x21, 0xB8 }, // (Offset,Value)-Pair #2 - { 0x22, 0x05 }, // (Offset,Value)-Pair #3 - { 0x23, 0x40 }, // (Offset,Value)-Pair #4 - { 0x24, 0x00 }, // (Offset,Value)-Pair #5 - { 0x25, 0x80 }, // (Offset,Value)-Pair #6 - - // CDirectSoundBuffer_SetFrequency+0x29 : push [esp+0x10]; push [esp+0x10] - { 0x29, 0xFF }, // (Offset,Value)-Pair #7 - { 0x2A, 0x74 }, // (Offset,Value)-Pair #8 - { 0x2B, 0x24 }, // (Offset,Value)-Pair #9 - { 0x2C, 0x10 }, // (Offset,Value)-Pair #10 - { 0x2D, 0xFF }, // (Offset,Value)-Pair #11 - { 0x2E, 0x74 }, // (Offset,Value)-Pair #12 - { 0x2F, 0x24 }, // (Offset,Value)-Pair #13 - { 0x30, 0x10 }, // (Offset,Value)-Pair #14 - - // CDirectSoundBuffer_SetFrequency+0x49 : pop edi - { 0x49, 0x5F }, // (Offset,Value)-Pair #15 - - // CDirectSoundBuffer_SetFrequency+0x4B : retn 0x08 - { 0x4B, 0xC2 }, // (Offset,Value)-Pair #16 - { 0x4C, 0x08 }, // (Offset,Value)-Pair #17 - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer8_SetFrequency -// ****************************************************************** -SOOVPA<12> IDirectSoundBuffer8_SetFrequency_1_0_5849 = -{ - 0, // Large == 0 - 12, // Count == 12 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer8_SetFrequency+0x15 : call [CDirectSound::SetFrequency] - { 0x15, XREF_DSBUFFERSETFREQUENCYA }, // (Offset,Value)-Pair #1 - - // IDirectSoundBuffer8_SetFrequency+0x04 : push [esp+0x08] - { 0x04, 0xFF }, // (Offset,Value)-Pair #2 - { 0x05, 0x74 }, // (Offset,Value)-Pair #3 - { 0x06, 0x24 }, // (Offset,Value)-Pair #4 - { 0x07, 0x08 }, // (Offset,Value)-Pair #5 - - // IDirectSoundBuffer8_SetFrequency0x0A : add eax, 0xFFFFFFE4 - { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 - { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 - { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 - - // IDirectSoundBuffer8_SetFrequency+0x0F : sbb ecx, ecx - { 0x0F, 0x1B }, // (Offset,Value)-Pair #9 - { 0x10, 0xC9 }, // (Offset,Value)-Pair #10 - - // IDirectSoundBuffer8_SetFrequency+0x11 : and ecx, eax - { 0x11, 0x23 }, // (Offset,Value)-Pair #11 - { 0x12, 0xC8 }, // (Offset,Value)-Pair #12 - } -}; - -// ****************************************************************** -// * CMcpxVoiceClient_SetVolume -// ****************************************************************** -SOOVPA<13> CMcpxVoiceClient_SetVolume_1_0_5849 = -{ - 0, // Large == 0 - 13, // Count == 13 - - XREF_DSSTREAMSETVOLUME, // XRef Is Saved - 0, // XRef Not Used - - { - // CMcpxVoiceClient_SetVolume+0x2A : lea eax, [ecx+ecx*2] - { 0x2A, 0x8D }, // (Offset,Value)-Pair #1 - { 0x2B, 0x04 }, // (Offset,Value)-Pair #2 - { 0x2C, 0x49 }, // (Offset,Value)-Pair #3 - - // CMcpxVoiceClient_SetVolume+0x45 : movzx edx, word ptr [ecx] - { 0x45, 0x0F }, // (Offset,Value)-Pair #4 - { 0x46, 0xB7 }, // (Offset,Value)-Pair #5 - { 0x47, 0x11 }, // (Offset,Value)-Pair #6 - - // CMcpxVoiceClient_SetVolume+0x6C : mov edx, [ebp+eax*4-0x14] - { 0x6C, 0x8B }, // (Offset,Value)-Pair #7 - { 0x6D, 0x54 }, // (Offset,Value)-Pair #8 - { 0x6E, 0x85 }, // (Offset,Value)-Pair #9 - { 0x6F, 0xEC }, // (Offset,Value)-Pair #10 - - // CMcpxVoiceClient_SetVolume+0x84 : inc eax; inc ecx, inc ecx - { 0x84, 0x40 }, // (Offset,Value)-Pair #11 - { 0x85, 0x41 }, // (Offset,Value)-Pair #12 - { 0x86, 0x41 }, // (Offset,Value)-Pair #13 - } -}; - -// ****************************************************************** -// * CDirectSoundStream_SetVolume -// ****************************************************************** -SOOVPA<11> CDirectSoundStream_SetVolume_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // CDirectSoundStream_SetVolume+0x15 : call [CMcpxVoiceClient::SetVolume] - { 0x15, XREF_DSSTREAMSETVOLUME }, // (Offset,Value)-Pair #1 - - // CDirectSoundStream_SetVolume+0x00 : mov ecx, [esp+0x04] - { 0x00, 0x8B }, // (Offset,Value)-Pair #2 - { 0x01, 0x4C }, // (Offset,Value)-Pair #3 - { 0x02, 0x24 }, // (Offset,Value)-Pair #4 - { 0x03, 0x04 }, // (Offset,Value)-Pair #5 - - // CDirectSoundStream_SetVolume+0x0B : sub edx, [eax+0x20] - { 0x0B, 0x2B }, // (Offset,Value)-Pair #6 - { 0x0C, 0x50 }, // (Offset,Value)-Pair #7 - { 0x0D, 0x20 }, // (Offset,Value)-Pair #8 - - // CDirectSoundStream_SetVolume+0x11 : mov ecx, [ecx+0x0C] - { 0x11, 0x8B }, // (Offset,Value)-Pair #9 - { 0x12, 0x49 }, // (Offset,Value)-Pair #10 - { 0x13, 0x0C }, // (Offset,Value)-Pair #11 - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer8_LockA -// ****************************************************************** -SOOVPA<13> IDirectSoundBuffer8_LockA_1_0_5849 = -{ - 0, // Large == 0 - 13,// Count == 10 - - XREF_DSBUFFERLOCKA, // XRef Is Saved - 0, // XRef Not Used - - { - // IDirectSoundBuffer8_LockA+0x37 : test [ebp+0x24], 1 - { 0x37, 0xF6 }, // (Offset,Value)-Pair #1 - { 0x38, 0x45 }, // (Offset,Value)-Pair #2 - { 0x39, 0x24 }, // (Offset,Value)-Pair #3 - { 0x3A, 0x01 }, // (Offset,Value)-Pair #4 - - // IDirectSoundBuffer8_LockA+0x5C : mov eax, [eax+0xBC] - { 0x5C, 0x8B }, // (Offset,Value)-Pair #5 - { 0x5D, 0x80 }, // (Offset,Value)-Pair #6 - { 0x5E, 0xBC }, // (Offset,Value)-Pair #7 - { 0x5F, 0x00 }, // (Offset,Value)-Pair #8 - - // IDirectSoundBuffer8_LockA+0xA4 : jnb +0x11; mov esi, [esi+0x1C] - { 0xA2, 0x73 }, // (Offset,Value)-Pair #9 - { 0xA3, 0x11 }, // (Offset,Value)-Pair #10 - { 0xA4, 0x8B }, // (Offset,Value)-Pair #11 - { 0xA5, 0x76 }, // (Offset,Value)-Pair #12 - { 0xA6, 0x1C }, // (Offset,Value)-Pair #13 - } -}; - // ****************************************************************** // * CMcpxBuffer_GetStatus // ****************************************************************** @@ -657,1151 +44,132 @@ SOOVPA<11> CMcpxBuffer_GetStatus_1_0_5849 = 0, // XRef Not Used { - // CMcpxBuffer_GetStatus+0x0A : mov esi, ecx - { 0x0A, 0x8B }, // (Offset,Value)-Pair #1 - { 0x0B, 0xF1 }, // (Offset,Value)-Pair #2 + // CMcpxBuffer_GetStatus+0x04 : mov ecx, eax + { 0x04, 0x8B }, // (Offset,Value)-Pair #1 + { 0x05, 0xC8 }, // (Offset,Value)-Pair #2 - // CMcpxBuffer_GetStatus+0x20 : jz +0x18 - { 0x20, 0x74 }, // (Offset,Value)-Pair #3 - { 0x21, 0x18 }, // (Offset,Value)-Pair #4 + // CMcpxBuffer_GetStatus+0x0C : jnz +0x1B + { 0x0C, 0x75 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x1B }, // (Offset,Value)-Pair #4 - // CMcpxBuffer_GetStatus+0x22 : test word ptr [esi+0x12], 0x8002 - { 0x22, 0x66 }, // (Offset,Value)-Pair #5 - { 0x23, 0xF7 }, // (Offset,Value)-Pair #6 - { 0x24, 0x46 }, // (Offset,Value)-Pair #7 - { 0x25, 0x12 }, // (Offset,Value)-Pair #8 + // CMcpxBuffer_GetStatus+0x12 : test ax, 0x444 + { 0x12, 0x66 }, // (Offset,Value)-Pair #5 + { 0x13, 0xA9 }, // (Offset,Value)-Pair #6 + { 0x14, 0x44 }, // (Offset,Value)-Pair #7 - // CMcpxBuffer_GetStatus+0x2C : test word ptr [esi+0x12], 0x200 - { 0x2C, 0x66 }, // (Offset,Value)-Pair #9 - { 0x2D, 0xF7 }, // (Offset,Value)-Pair #10 - { 0x2E, 0x46 }, // (Offset,Value)-Pair #11 + // CMcpxBuffer_GetStatus+0x29 : mov ecx, 0x8001 + { 0x29, 0xB9 }, // (Offset,Value)-Pair #8 + { 0x2A, 0x01 }, // (Offset,Value)-Pair #9 + { 0x2B, 0x80 }, // (Offset,Value)-Pair #10 + { 0x2C, 0x00 }, // (Offset,Value)-Pair #11 } }; // ****************************************************************** -// * CDirectSoundBuffer_GetStatus +// * CDirectSound_SetI3DL2Listener // ****************************************************************** -SOOVPA<10> CDirectSoundBuffer_GetStatus_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - XREF_DSBUFFERGETSTATUSB, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_GetStatus+0x35 : call [CMcpxBuffer::GetStatus] - { 0x35, XREF_DSBUFFERGETSTATUSA }, // (Offset,Value)-Pair #1 - - // CDirectSoundBuffer_GetStatus+0x21 : mov eax, 0x80004005 - { 0x21, 0xB8 }, // (Offset,Value)-Pair #2 - { 0x22, 0x05 }, // (Offset,Value)-Pair #3 - { 0x23, 0x40 }, // (Offset,Value)-Pair #4 - { 0x24, 0x00 }, // (Offset,Value)-Pair #5 - { 0x25, 0x80 }, // (Offset,Value)-Pair #6 - - // CDirectSoundBuffer_GetStatus+0x3D : jz +0x0B - { 0x3D, 0x74 }, // (Offset,Value)-Pair #7 - { 0x3E, 0x0B }, // (Offset,Value)-Pair #8 - - // CDirectSoundBuffer_GetStatus+0x4E : retn 0x08 - { 0x4E, 0xC2 }, // (Offset,Value)-Pair #9 - { 0x4F, 0x08 }, // (Offset,Value)-Pair #10 - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer8_GetStatus -// ****************************************************************** -SOOVPA<9> IDirectSoundBuffer8_GetStatus_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer8_GetStatus+0x15 : call [CDirectSoundBuffer::GetStatus] - { 0x15, XREF_DSBUFFERGETSTATUSB }, // (Offset,Value)-Pair #1 - - // IDirectSoundBuffer8_GetStatus+0x04 : push [esp+0x08] - { 0x04, 0xFF }, // (Offset,Value)-Pair #2 - { 0x05, 0x74 }, // (Offset,Value)-Pair #3 - { 0x06, 0x24 }, // (Offset,Value)-Pair #4 - { 0x07, 0x08 }, // (Offset,Value)-Pair #5 - - // IDirectSoundBuffer8_GetStatus+0x0F : sbb ecx, ecx - { 0x0F, 0x1B }, // (Offset,Value)-Pair #6 - { 0x10, 0xC9 }, // (Offset,Value)-Pair #7 - - // IDirectSoundBuffer8_GetStatus+0x11 : and ecx, eax - { 0x11, 0x23 }, // (Offset,Value)-Pair #8 - { 0x12, 0xC8 }, // (Offset,Value)-Pair #9 - } -}; - -// ****************************************************************** -// * CDirectSound::SetDistanceFactorA -// ****************************************************************** -SOOVPA<11> CDirectSound_SetDistanceFactorA_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - XREF_SETDISTANCEFACTORA,// XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSound_SetDistanceFactorA+0x21 : mov eax, 0x80004005 - { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 - { 0x22, 0x05 }, // (Offset,Value)-Pair #2 - { 0x23, 0x40 }, // (Offset,Value)-Pair #3 - { 0x24, 0x00 }, // (Offset,Value)-Pair #4 - { 0x25, 0x80 }, // (Offset,Value)-Pair #5 - - // CDirectSound_SetDistanceFactorA+0x39 : or byte ptr[eax+0xA4], 0xE0 - { 0x39, 0x80 }, // (Offset,Value)-Pair #6 - { 0x3A, 0x88 }, // (Offset,Value)-Pair #7 - { 0x3B, 0xA4 }, // (Offset,Value)-Pair #8 - { 0x3F, 0xE0 }, // (Offset,Value)-Pair #9 - - // CDirectSound_SetDistanceFactorA+0x4F : jz +0x0B - { 0x4F, 0x74 }, // (Offset,Value)-Pair #10 - { 0x50, 0x0B }, // (Offset,Value)-Pair #11 - } -}; - -// ****************************************************************** -// * CDirectSound::SetRolloffFactor -// ****************************************************************** -SOOVPA<11> CDirectSound_SetRolloffFactor_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - XREF_SETROLLOFFFACTORA, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSound_SetRolloffFactor+0x21 : mov eax, 0x80004005 - { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 - { 0x22, 0x05 }, // (Offset,Value)-Pair #2 - { 0x23, 0x40 }, // (Offset,Value)-Pair #3 - { 0x24, 0x00 }, // (Offset,Value)-Pair #4 - { 0x25, 0x80 }, // (Offset,Value)-Pair #5 - - // CDirectSound_SetRolloffFactor+0x39 : or dword ptr[eax+0xA4], 0x04 - { 0x39, 0x83 }, // (Offset,Value)-Pair #6 - { 0x3A, 0x88 }, // (Offset,Value)-Pair #7 - { 0x3B, 0xA4 }, // (Offset,Value)-Pair #8 - { 0x3F, 0x04 }, // (Offset,Value)-Pair #9 - - // CDirectSound_SetRolloffFactor+0x4F : jz +0x0B - { 0x4F, 0x74 }, // (Offset,Value)-Pair #10 - { 0x50, 0x0B }, // (Offset,Value)-Pair #11 - } -}; - -// ****************************************************************** -// * IDirectSound8_SetRolloffFactor -// ****************************************************************** -SOOVPA<11> IDirectSound8_SetRolloffFactor_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSound8_SetRolloffFactor+0x1D : call [CDirectSound::SetRolloffFactor] - { 0x1D, XREF_SETROLLOFFFACTORA }, // (Offset,Value)-Pair #1 - - // IDirectSound8_SetRolloffFactor+0x04 : fld [esp+0x0C] - { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 - { 0x05, 0x44 }, // (Offset,Value)-Pair #3 - { 0x06, 0x24 }, // (Offset,Value)-Pair #4 - { 0x07, 0x0C }, // (Offset,Value)-Pair #5 - - // IDirectSound8_SetRolloffFactor+0x0C : push ecx - { 0x0C, 0x51 }, // (Offset,Value)-Pair #6 - - // IDirectSound8_SetRolloffFactor+0x12 : add eax, 0xFFFFFFF8 - { 0x12, 0x83 }, // (Offset,Value)-Pair #7 - { 0x13, 0xC0 }, // (Offset,Value)-Pair #8 - { 0x14, 0xF8 }, // (Offset,Value)-Pair #9 - - // IDirectSound8_SetRolloffFactor+0x21 : retn 0x0C - { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 - { 0x22, 0x0C }, // (Offset,Value)-Pair #11 - } -}; - -// ****************************************************************** -// * CDirectSound::SetDopplerFactor -// ****************************************************************** -SOOVPA<14> CDirectSound_SetDopplerFactor_1_0_5849 = -{ - 0, // Large == 0 - 14, // Count == 14 - - XREF_SETDOPPLERFACTOR, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSound_SetDopplerFactor+0x21 : mov eax, 0x80004005 - { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 - { 0x22, 0x05 }, // (Offset,Value)-Pair #2 - { 0x23, 0x40 }, // (Offset,Value)-Pair #3 - { 0x24, 0x00 }, // (Offset,Value)-Pair #4 - { 0x25, 0x80 }, // (Offset,Value)-Pair #5 - - // CDirectSound_SetDopplerFactor+0x33 : mov [eax+0x70], edx - { 0x33, 0x89 }, // (Offset,Value)-Pair #6 - { 0x34, 0x50 }, // (Offset,Value)-Pair #7 - { 0x35, 0x70 }, // (Offset,Value)-Pair #8 - - // CDirectSound_SetDopplerFactor+0x39 : or byte ptr[eax+0xA4], 0x80 - { 0x39, 0x80 }, // (Offset,Value)-Pair #9 - { 0x3A, 0x88 }, // (Offset,Value)-Pair #10 - { 0x3B, 0xA4 }, // (Offset,Value)-Pair #11 - { 0x3F, 0x80 }, // (Offset,Value)-Pair #12 - - // CDirectSound_SetDopplerFactor+0x4F : jz +0x0B - { 0x4F, 0x74 }, // (Offset,Value)-Pair #13 - { 0x50, 0x0B }, // (Offset,Value)-Pair #14 - } -}; - -// ****************************************************************** -// * IDirectSound8_SetDopplerFactor -// ****************************************************************** -SOOVPA<11> IDirectSound8_SetDopplerFactor_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSound8_SetDopplerFactor+0x1D : call [CDirectSound::SetDopplerFactor] - { 0x1D, XREF_SETDOPPLERFACTOR}, // (Offset,Value)-Pair #1 - - // IDirectSound8_SetDopplerFactor+0x04 : fld [esp+0x0C] - { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 - { 0x05, 0x44 }, // (Offset,Value)-Pair #3 - { 0x06, 0x24 }, // (Offset,Value)-Pair #4 - { 0x07, 0x0C }, // (Offset,Value)-Pair #5 - - // IDirectSound8_SetDopplerFactor+0x0C : push ecx - { 0x0C, 0x51 }, // (Offset,Value)-Pair #6 - - // IDirectSound8_SetDopplerFactor+0x12 : add eax, 0xFFFFFFF8 - { 0x12, 0x83 }, // (Offset,Value)-Pair #7 - { 0x13, 0xC0 }, // (Offset,Value)-Pair #8 - { 0x14, 0xF8 }, // (Offset,Value)-Pair #9 - - // IDirectSound8_SetDopplerFactor+0x21 : retn 0x0C - { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 - { 0x22, 0x0C }, // (Offset,Value)-Pair #11 - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetRolloffFactor -// ****************************************************************** -SOOVPA<9> CDirectSoundVoice_SetRolloffFactor_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - XREF_DSVOICESETROLLOFFFACTOR, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetRolloffFactor+0x0D : mov edx, [esp+arg_4] - { 0x0D, 0x8B }, - { 0x0E, 0x54 }, - { 0x0F, 0x24 }, - { 0x10, 0x08 }, - - // CDirectSoundVoice_SetRolloffFactor+0x11 : mov [eax+44h], edx - { 0x11, 0x89 }, - { 0x12, 0x50 }, - { 0x13, 0x44 }, - - // CDirectSoundVoice_SetRolloffFactor+0x30 : retn 0Ch - { 0x31, 0x0C }, - { 0x32, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetRolloffFactor -// ****************************************************************** -SOOVPA<10> CDirectSoundBuffer_SetRolloffFactor_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - XREF_DSBUFFERSETROLLOFFFACTOR, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetRolloffFactor+0x39 : call [CDirectSoundVoice::SetRolloffFactor] - { 0x3A, XREF_DSVOICESETROLLOFFFACTOR }, - - // CDirectSoundBuffer_SetRolloffFactor+0x21 : mov eax, 80004005h - { 0x22, 0x05 }, - { 0x23, 0x40 }, - { 0x24, 0x00 }, - { 0x25, 0x80 }, - - // CDirectSoundBuffer_SetRolloffFactor+0x32 : fstp [esp+0Ch+var_C] - { 0x32, 0xD9 }, - { 0x33, 0x1C }, - { 0x34, 0x24 }, - - // CDirectSoundBuffer_SetRolloffFactor+0x53 : retn 0Ch - { 0x54, 0x0C }, - { 0x55, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetRolloffFactor -// ****************************************************************** -SOOVPA<10> IDirectSoundBuffer_SetRolloffFactor_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer_SetRolloffFactor+0x1C : call [CDirectSoundBuffer::SetRolloffFactor] - { 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR }, - - // IDirectSoundBuffer_SetRolloffFactor+0x04 : fld [esp+4+arg_4] - { 0x04, 0xD9 }, - { 0x05, 0x44 }, - { 0x06, 0x24 }, - { 0x07, 0x0C }, - - // IDirectSoundBuffer_SetRolloffFactor+0x12 : add eax, 0FFFFFFE4 - { 0x12, 0x83 }, - { 0x13, 0xC0 }, - { 0x14, 0xE4 }, - - // IDirectSoundBuffer_SetRolloffFactor+0x21 : retn 0Ch - { 0x22, 0x0C }, - { 0x23, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetDistanceFactor -// ****************************************************************** -SOOVPA<9> CDirectSoundVoice_SetDistanceFactor_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - XREF_DSVOICESETDISTANCEFACTOR, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetDistanceFactor+0x0D : mov edx, [esp+arg_4] - { 0x0D, 0x8B }, - { 0x0E, 0x54 }, - { 0x0F, 0x24 }, - { 0x10, 0x08 }, - - // CDirectSoundVoice_SetDistanceFactor+0x11 : mov [eax+40h], edx - { 0x11, 0x89 }, - { 0x12, 0x50 }, - { 0x13, 0x40 }, - - // CDirectSoundVoice_SetDistanceFactor+0x30 : retn 0Ch - { 0x31, 0x0C }, - { 0x32, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetDistanceFactor -// ****************************************************************** -SOOVPA<10> CDirectSoundBuffer_SetDistanceFactor_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - XREF_DSBUFFERSETDISTANCEFACTOR, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetDistanceFactor+0x39 : call [CDirectSoundVoice::SetDistanceFactor] - { 0x3A, XREF_DSVOICESETDISTANCEFACTOR }, - - // CDirectSoundBuffer_SetDistanceFactor+0x21 : mov eax, 80004005h - { 0x22, 0x05 }, - { 0x23, 0x40 }, - { 0x24, 0x00 }, - { 0x25, 0x80 }, - - // CDirectSoundBuffer_SetDistanceFactor+0x32 : fstp [esp+0Ch+var_C] - { 0x32, 0xD9 }, - { 0x33, 0x1C }, - { 0x34, 0x24 }, - - // CDirectSoundBuffer_SetDistanceFactor+0x53 : retn 0Ch - { 0x54, 0x0C }, - { 0x55, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetDistanceFactor -// ****************************************************************** -SOOVPA<10> IDirectSoundBuffer_SetDistanceFactor_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer_SetDistanceFactor+0x1C : call [CDirectSoundBuffer::SetDistanceFactor] - { 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR }, - - // IDirectSoundBuffer_SetDistanceFactor+0x04 : fld [esp+4+arg_4] - { 0x04, 0xD9 }, - { 0x05, 0x44 }, - { 0x06, 0x24 }, - { 0x07, 0x0C }, - - // IDirectSoundBuffer_SetDistanceFactor+0x12 : add eax, 0FFFFFFE4 - { 0x12, 0x83 }, - { 0x13, 0xC0 }, - { 0x14, 0xE4 }, - - // IDirectSoundBuffer_SetSetDistanceFactor+0x21 : retn 0Ch - { 0x22, 0x0C }, - { 0x23, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetConeAngles -// ****************************************************************** -SOOVPA<9> CDirectSoundVoice_SetConeAngles_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - XREF_DSVOICESETCONEANGLES, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetConeAngles+0x0D : mov edx, [esp+arg_4] - { 0x0D, 0x8B }, - { 0x0E, 0x54 }, - { 0x0F, 0x24 }, - { 0x10, 0x08 }, - - // CDirectSoundVoice_SetConeAngles+0x11 : mov [ecx+1Ch], edx - { 0x11, 0x89 }, - { 0x12, 0x51 }, - { 0x13, 0x1C }, - - // CDirectSoundVoice_SetConeAngles+0x40 : retn 10h - { 0x41, 0x10 }, - { 0x42, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetConeAngles -// ****************************************************************** -SOOVPA<11> CDirectSoundBuffer_SetConeAngles_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - XREF_DSBUFFERSETCONEANGLES, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetConeAngles+0x39 : call [CDirectSoundVoice::SetConeAngles] - { 0x3A, XREF_DSVOICESETCONEANGLES }, - - // CDirectSoundBuffer_SetConeAngles+0x21 : mov eax, 80004005h - { 0x22, 0x05 }, - { 0x23, 0x40 }, - { 0x24, 0x00 }, - { 0x25, 0x80 }, - - // CDirectSoundBuffer_SetConeAngles+0x31 : push [esp+0Ch+arg_4] - { 0x31, 0xFF }, - { 0x32, 0x74 }, - { 0x33, 0x24 }, - { 0x34, 0x18 }, - - // CDirectSoundBuffer_SetConeAngles+0x53 : retn 10h - { 0x54, 0x10 }, - { 0x55, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetConeAngles -// ****************************************************************** -SOOVPA<10> IDirectSoundBuffer_SetConeAngles_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer_SetConeAngles+0x1C : call [CDirectSoundBuffer::SetConeAngles] - { 0x1D, XREF_DSBUFFERSETCONEANGLES }, - - // IDirectSoundBuffer_SetConeAngles+0x04 : mov eax, [esp+4+arg_0] - { 0x04, 0x8B }, - { 0x05, 0x44 }, - { 0x06, 0x24 }, - { 0x07, 0x08 }, - - // IDirectSoundBuffer_SetConeAngles+0x12 : add eax, 0FFFFFFE4 - { 0x12, 0x83 }, - { 0x13, 0xC0 }, - { 0x14, 0xE4 }, - - // IDirectSoundBuffer_SetConeAngles+0x21 : retn 10h - { 0x22, 0x10 }, - { 0x23, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetConeOrientation -// ****************************************************************** -SOOVPA<8> CDirectSoundVoice_SetConeOrientation_1_0_5849 = +SOOVPA<8> CDirectSound_SetI3DL2Listener_1_0_5849 = { 0, // Large == 0 8, // Count == 8 - XREF_DSVOICESETCONEORIENTATION, // XRef Is Saved - 0, // XRef Not Used + XREF_DSSETI3DL2LISTENER, // Xref Is Saved + 0, // Xref Not Used { - // CDirectSoundVoice_SetConeOrientation+0x0F : mov edx, [ebp+arg_4] - { 0x0F, 0x8B }, - { 0x10, 0x55 }, - { 0x11, 0x0C }, - - // CDirectSoundVoice_SetConeOrientation+0x12 : mov [ecx+24h], edx - { 0x12, 0x89 }, - { 0x13, 0x51 }, - { 0x14, 0x24 }, - - // CDirectSoundVoice_SetConeOrientation+0x4F : retn 14h - { 0x50, 0x14 }, - { 0x51, 0x00 } + { 0x1D, 0xFF }, + { 0x3C, 0x00 }, + { 0x5B, 0x9A }, + { 0x7A, 0x10 }, + { 0x99, 0x00 }, + { 0xB8, 0x50 }, + { 0xD7, 0x00 }, + { 0xF6, 0x68 }, } }; // ****************************************************************** -// * CDirectSoundBuffer::SetConeOrientation +// * IDirectSound8_SetI3DL2Listener // ****************************************************************** -SOOVPA<9> CDirectSoundBuffer_SetConeOrientation_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - XREF_DSBUFFERSETCONEORIENTATION, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetConeOrientation+0x49 : call [CDirectSoundVoice::SetConeOrientation] - { 0x4A, XREF_DSVOICESETCONEORIENTATION }, - - // CDirectSoundBuffer_SetConeOrientation+0x2B : fld [ebp+arg_C] - { 0x2B, 0xD9 }, - { 0x2C, 0x45 }, - { 0x2D, 0x14 }, - - // CDirectSoundBuffer_SetConeOrientation+0x43 : fstp [esp+18h+var_18] - { 0x43, 0xD9 }, - { 0x44, 0x1C }, - { 0x45, 0x24 }, - - // CDirectSoundBuffer_SetConeOrientation+0x64 : retn 14h - { 0x65, 0x14 }, - { 0x66, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetConeOrientation -// ****************************************************************** -SOOVPA<9> IDirectSoundBuffer_SetConeOrientation_1_0_5849 = +SOOVPA<9> IDirectSound8_SetI3DL2Listener_1_0_5849 = { 0, // Large == 0 9, // Count == 9 - -1, // XRef Not Saved - 1, // XRef Is Used + -1, // Xref Not Saved + 1, // Xref Is Used { - // IDirectSoundBuffer_SetConeOrientation+0x2C : call [CDirectSoundBuffer::SetConeOrientation] - { 0x2D, XREF_DSBUFFERSETCONEORIENTATION }, + { 0x19, XREF_DSSETI3DL2LISTENER }, - // IDirectSoundBuffer_SetConeOrientation+0x06 : fld [ebp+arg_C] - { 0x06, 0xD9 }, - { 0x07, 0x45 }, - { 0x08, 0x14 }, - - // IDirectSoundBuffer_SetConeOrientation+0x28 : fstp [esp+10h+var_10] - { 0x28, 0xD9 }, - { 0x29, 0x1C }, - { 0x2A, 0x24 }, - - // IDirectSoundBuffer_SetConeOrientation+0x32 : retn 14h - { 0x33, 0x14 }, - { 0x34, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetConeOutsideVolume -// ****************************************************************** -SOOVPA<9> CDirectSoundVoice_SetConeOutsideVolume_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - XREF_DSVOICESETCONEOUTSIDEVOLUME, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetConeOutsideVolume+0x0D : mov edx, [esp+arg_4] - { 0x0D, 0x8B }, - { 0x0E, 0x54 }, - { 0x0F, 0x24 }, - { 0x10, 0x08 }, - - // CDirectSoundVoice_SetConeOutsideVolume+0x11 : mov [eax+30h], edx - { 0x11, 0x89 }, - { 0x12, 0x50 }, - { 0x13, 0x30 }, - - // CDirectSoundVoice_SetConeOutsideVolume+0x30 : retn 0Ch - { 0x31, 0x0C }, - { 0x32, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetConeOutsideVolume -// ****************************************************************** -SOOVPA<11> CDirectSoundBuffer_SetConeOutsideVolume_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - XREF_DSBUFFERSETCONEOUTSIDEVOLUME, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetConeOutsideVolume+0x35 : call [CDirectSoundVoice::SetConeOutsideVolume] - { 0x36, XREF_DSVOICESETCONEOUTSIDEVOLUME }, - - // CDirectSoundBuffer_SetConeOutsideVolume+0x21 : mov eax, 80004005h - { 0x22, 0x05 }, - { 0x23, 0x40 }, - { 0x24, 0x00 }, - { 0x25, 0x80 }, - - // CDirectSoundBuffer_SetConeOutsideVolume+0x31 : push [esp+0Ch+arg_0] - { 0x31, 0xFF }, - { 0x32, 0x74 }, - { 0x33, 0x24 }, - { 0x34, 0x14 }, - - // CDirectSoundBuffer_SetConeOutsideVolume+0x4F : retn 0Ch - { 0x50, 0x0C }, - { 0x51, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetConeOutsideVolume -// ****************************************************************** -SOOVPA<9> IDirectSoundBuffer_SetConeOutsideVolume_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer_SetConeOutsideVolume+0x18 : call [CDirectSoundBuffer::SetConeOutsideVolume] - { 0x19, XREF_DSBUFFERSETCONEOUTSIDEVOLUME }, - - // IDirectSoundBuffer_SetConeOutsideVolume+0x0A : push [esp+4+arg_4] + { 0x02, 0x24 }, + { 0x06, 0x24 }, { 0x0A, 0xFF }, - { 0x0B, 0x74 }, - { 0x0C, 0x24 }, - { 0x0D, 0x0C }, - - // IDirectSoundBuffer_SetConeOutsideVolume+0x15 : and ecx, eax - { 0x15, 0x23 }, - { 0x16, 0xC8 }, - - // IDirectSoundBuffer_SetConeOutsideVolume+0x1D : retn 0Ch - { 0x1E, 0x0C }, - { 0x1F, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetPosition -// ****************************************************************** -SOOVPA<8> CDirectSoundVoice_SetPosition_1_0_5849 = -{ - 0, // Large == 0 - 8, // Count == 8 - - XREF_DSVOICESETPOSITION, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetPosition+0x0F : mov edx, [ebp+arg_4] - { 0x0F, 0x8B }, - { 0x10, 0x55 }, - { 0x11, 0x0C }, - - // CDirectSoundVoice_SetPosition+0x12 : mov [ecx+04h], edx - { 0x12, 0x89 }, - { 0x13, 0x51 }, - { 0x14, 0x04 }, - - // CDirectSoundVoice_SetPosition+0x51 : retn 14h - { 0x52, 0x14 }, - { 0x53, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetPosition -// ****************************************************************** -SOOVPA<9> CDirectSoundBuffer_SetPosition_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - XREF_DSBUFFERSETPOSITION, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetPosition+0x49 : call [CDirectSoundVoice::SetPosition] - { 0x4A, XREF_DSVOICESETPOSITION }, - - // CDirectSoundBuffer_SetPosition+0x2B : fld [ebp+arg_C] - { 0x2B, 0xD9 }, - { 0x2C, 0x45 }, - { 0x2D, 0x14 }, - - // CDirectSoundBuffer_SetPosition+0x43 : fstp [esp+18h+var_18] - { 0x43, 0xD9 }, - { 0x44, 0x1C }, - { 0x45, 0x24 }, - - // CDirectSoundBuffer_SetPosition+0x64 : retn 14h - { 0x65, 0x14 }, - { 0x66, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetPosition -// ****************************************************************** -SOOVPA<9> IDirectSoundBuffer_SetPosition_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer_SetPosition+0x2C : call [CDirectSoundBuffer::SetPosition] - { 0x2D, XREF_DSBUFFERSETPOSITION }, - - // IDirectSoundBuffer_SetPosition+0x09 : mov eax, [ebp+arg_0] - { 0x09, 0x8B }, - { 0x0A, 0x45 }, - { 0x0B, 0x08 }, - - // IDirectSoundBuffer_SetPosition+0x28 : fstp [esp+10h+var_10] - { 0x28, 0xD9 }, - { 0x29, 0x1C }, - { 0x2A, 0x24 }, - - // IDirectSoundBuffer_SetPosition+0x32 : retn 14h - { 0x33, 0x14 }, - { 0x34, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetVelocity -// ****************************************************************** -SOOVPA<8> CDirectSoundVoice_SetVelocity_1_0_5849 = -{ - 0, // Large == 0 - 8, // Count == 8 - - XREF_DSVOICESETVELOCITY, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetVelocity+0x0F : mov edx, [ebp+arg_4] - { 0x0F, 0x8B }, - { 0x10, 0x55 }, - { 0x11, 0x0C }, - - // CDirectSoundVoice_SetVelocity+0x12 : mov [ecx+10h], edx - { 0x12, 0x89 }, - { 0x13, 0x51 }, - { 0x14, 0x10 }, - - // CDirectSoundVoice_SetVelocity+0x4F : retn 14h - { 0x50, 0x14 }, - { 0x51, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetVelocity -// ****************************************************************** -SOOVPA<9> CDirectSoundBuffer_SetVelocity_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - XREF_DSBUFFERSETVELOCITY, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetVelocity+0x49 : call [CDirectSoundVoice::SetVelocity] - { 0x4A, XREF_DSVOICESETVELOCITY }, - - // CDirectSoundBuffer_SetVelocity+0x2B : fld [ebp+arg_C] - { 0x2B, 0xD9 }, - { 0x2C, 0x45 }, - { 0x2D, 0x14 }, - - // CDirectSoundBuffer_SetVelocity+0x43 : fstp [esp+18h+var_18] - { 0x43, 0xD9 }, - { 0x44, 0x1C }, - { 0x45, 0x24 }, - - // CDirectSoundBuffer_SetVelocity+0x64 : retn 14h - { 0x65, 0x14 }, - { 0x66, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetVelocity -// ****************************************************************** -SOOVPA<9> IDirectSoundBuffer_SetVelocity_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer_SetVelocity+0x2C : call [CDirectSoundBuffer::SetVelocity] - { 0x2D, XREF_DSBUFFERSETVELOCITY }, - - // IDirectSoundBuffer_SetVelocity+0x09 : mov eax, [ebp+arg_0] - { 0x09, 0x8B }, - { 0x0A, 0x45 }, - { 0x0B, 0x08 }, - - // IDirectSoundBuffer_SetVelocity+0x28 : fstp [esp+10h+var_10] - { 0x28, 0xD9 }, - { 0x29, 0x1C }, - { 0x2A, 0x24 }, - - // IDirectSoundBuffer_SetVelocity+0x32 : retn 14h - { 0x33, 0x14 }, - { 0x34, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetDopplerFactor -// ****************************************************************** -SOOVPA<9> CDirectSoundVoice_SetDopplerFactor_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - XREF_DSVOICESETDOPPLERFACTOR, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetDopplerFactor+0x0D : mov edx, [esp+arg_4] - { 0x0D, 0x8B }, - { 0x0E, 0x54 }, - { 0x0F, 0x24 }, - { 0x10, 0x08 }, - - // CDirectSoundVoice_SetDopplerFactor+0x12 : mov [eax+48h], edx - { 0x11, 0x89 }, - { 0x12, 0x50 }, - { 0x13, 0x48 }, - - // CDirectSoundVoice_SetDopplerFactor+0x31 : retn 0Ch - { 0x31, 0x0C }, - { 0x32, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetDopplerFactor -// ****************************************************************** -SOOVPA<10> CDirectSoundBuffer_SetDopplerFactor_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - XREF_DSBUFFERSETDOPPLERFACTOR, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetDopplerFactor+0x39 : call [CDirectSoundVoice::SetDopplerFactor] - { 0x3A, XREF_DSVOICESETDOPPLERFACTOR }, - - // CDirectSoundBuffer_SetDopplerFactor+0x2D : push [esp+4+arg_8] - { 0x2D, 0xFF }, - { 0x2E, 0x74 }, - { 0x2F, 0x24 }, - { 0x30, 0x14 }, - - // CDirectSoundBuffer_SetDopplerFactor+0x32 : fstp [esp+0Ch+var_C] - { 0x32, 0xD9 }, - { 0x33, 0x1C }, - { 0x34, 0x24 }, - - // CDirectSoundBuffer_SetDopplerFactor+0x53 : retn 0Ch - { 0x54, 0x0C }, - { 0x55, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetDopplerFactor -// ****************************************************************** -SOOVPA<9> IDirectSoundBuffer_SetDopplerFactor_1_0_5849 = -{ - 0, // Large == 0 - 9, // Count == 9 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer_SetDopplerFactor+0x1C : call [CDirectSoundBuffer::SetDopplerFactor] - { 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR }, - - // IDirectSoundBuffer_SetDopplerFactor+0x08 : mov eax, [esp+4+arg_0] - { 0x08, 0x8B }, - { 0x09, 0x44 }, - { 0x0A, 0x24 }, - { 0x0B, 0x08 }, - - // IDirectSoundBuffer_SetDopplerFactor+0x19 : and ecx, eax - { 0x19, 0x23 }, - { 0x1A, 0xC8 }, - - // IDirectSoundBuffer_SetDopplerFactor+0x21 : retn 0Ch - { 0x22, 0x0C }, - { 0x23, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundVoice::SetI3DL2Source -// ****************************************************************** -SOOVPA<10> CDirectSoundVoice_SetI3DL2Source_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - XREF_DSVOICESETI3DL2SOURCE, // XRef Is Saved - 0, // XRef Not Used - - { - // CDirectSoundVoice_SetI3DL2Source+0x12 : mov esi, [ecx] - { 0x12, 0x8B }, - { 0x13, 0x31 }, - - // CDirectSoundVoice_SetI3DL2Source+0x14 : mov [edx+4Ch], esi - { 0x14, 0x89 }, - { 0x15, 0x72 }, - { 0x16, 0x4C }, - - // CDirectSoundVoice_SetI3DL2Source+0x44 : fld dword ptr [ecx+10h] - { 0x44, 0xD9 }, - { 0x45, 0x41 }, - { 0x46, 0x10 }, - - // CDirectSoundVoice_SetI3DL2Source+0xAC : retn 0Ch - { 0xAD, 0x0C }, - { 0xAE, 0x00 } - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer::SetI3DL2Source -// ****************************************************************** -SOOVPA<11> CDirectSoundBuffer_SetI3DL2Source_1_0_5849 = -{ - 0, // Large == 0 - 11, // Count == 11 - - XREF_DSBUFFERSETI3DL2SOURCE, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_SetI3DL2Source+0x35 : call [CDirectSoundVoice::SetI3DL2Source] - { 0x36, XREF_DSVOICESETI3DL2SOURCE }, - - // CDirectSoundBuffer_SetI3DL2Source+0x21 : mov eax, 80004005h - { 0x22, 0x05 }, - { 0x23, 0x40 }, - { 0x24, 0x00 }, - { 0x25, 0x80 }, - - // CDirectSoundBuffer_SetI3DL2Source+0x31 : push [esp+0Ch+arg_0] - { 0x31, 0xFF }, - { 0x32, 0x74 }, - { 0x33, 0x24 }, - { 0x34, 0x14 }, - - // CDirectSoundBuffer_SetI3DL2Source+0x4F : retn 0Ch - { 0x50, 0x0C }, - { 0x51, 0x00 } - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer_SetI3DL2Source -// ****************************************************************** -SOOVPA<10> IDirectSoundBuffer_SetI3DL2Source_1_0_5849 = -{ - 0, // Large == 0 - 10, // Count == 10 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer_SetI3DL2Source+0x18 : call [CDirectSoundBuffer::SetI3DL2Source] - { 0x19, XREF_DSBUFFERSETI3DL2SOURCE }, - - // IDirectSoundBuffer_SetI3DL2Source+0x04 : push [esp+arg_8] - { 0x04, 0xFF }, - { 0x05, 0x74 }, - { 0x06, 0x24 }, - { 0x07, 0x0C }, - - // IDirectSoundBuffer_SetI3DL2Source+0x0E : add eax, 0FFFFFFE4h { 0x0E, 0x83 }, - { 0x0F, 0xC0 }, - { 0x10, 0xE4 }, - - // IDirectSoundBuffer_SetI3DL2Source+0x1D : retn 0Ch + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, { 0x1E, 0x0C }, - { 0x1F, 0x00 } } }; // ****************************************************************** -// * IDirectSoundBuffer_Stop +// * CMcpxBuffer_SetBufferData // ****************************************************************** -SOOVPA<11> IDirectSoundBuffer_Stop_1_0_5849 = +SOOVPA<9> CMcpxBuffer_SetBufferData_1_0_5849 = { 0, // Large == 0 - 11, // Count == 11 + 9, // Count == 9 - -1, // XRef Not Saved + XREF_DSSETBUFFERDATA, // XRef Is Saved 0, // XRef Not Used { - // IDirectSoundBuffer_Stop+0x00 : mov eax, [esp+arg_0] - { 0x00, 0x8B }, - { 0x01, 0x44 }, - { 0x02, 0x24 }, - { 0x03, 0x04 }, + // CMcpxBuffer_SetBufferData+0x1E : cmp eax, ebx + { 0x1E, 0x3B }, // (Offset,Value)-Pair #1 + { 0x1F, 0xC3 }, // (Offset,Value)-Pair #2 - // IDirectSoundBuffer_Stop+0x04 : mov ecx, eax - { 0x04, 0x8B }, - { 0x05, 0xC8 }, + // CMcpxBuffer_SetBufferData+0x20 : jz +0x0C + { 0x20, 0x74 }, // (Offset,Value)-Pair #3 + { 0x21, 0x0C }, // (Offset,Value)-Pair #4 - // IDirectSoundBuffer_Stop+0x06 : add eax, 0FFFFFFE4h - { 0x06, 0x83 }, - { 0x07, 0xC0 }, - { 0x08, 0xE4 }, + // CMcpxBuffer_SetBufferData+0x45 : mov [esi+0xBC], ecx + { 0x45, 0x89 }, // (Offset,Value)-Pair #5 + { 0x46, 0x8E }, // (Offset,Value)-Pair #6 + { 0x47, 0xBC }, // (Offset,Value)-Pair #7 - // IDirectSoundBuffer_Stop+0x15 : retn 4 - { 0x16, 0x04 }, - { 0x17, 0x00 } + // CMcpxBuffer_SetBufferData+0x89 : retn 0x08 + { 0x89, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x8A, 0x08 }, // (Offset,Value)-Pair #9 } }; -// +s // ****************************************************************** // * DirectSound::CDirectSoundVoice::SetFormat // ****************************************************************** -SOOVPA<8> X_DirectSound_CDirectSoundVoice_SetFormat_1_0_5849 = +SOOVPA<7> DirectSound_CDirectSoundVoice_SetFormat_1_0_5849 = { 0, // Large == 0 - 8, // Count == 8 + 7, // Count == 7 XREF_DirectSound_CDirectSoundVoice_SetFormat, // Xref Is Saved 0, // Xref Not Used { - { 0x07, 0x4E }, - { 0x10, 0xE8 }, - { 0x19, 0xD8 }, - { 0x22, 0xFF }, - { 0x2B, 0x0C }, - { 0x34, 0xFF }, - { 0x3F, 0x8B }, - { 0x46, 0x00 }, + { 0x07, 0x10 }, + { 0x13, 0x85 }, + { 0x19, 0x10 }, + { 0x22, 0x0C }, + { 0x2B, 0x14 }, + { 0x34, 0x85 }, + { 0x40, 0x5E }, } }; // ****************************************************************** // * DirectSound::CDirectSoundBuffer::SetFormat // ****************************************************************** -SOOVPA<8> X_DirectSound_CDirectSoundBuffer_SetFormat_1_0_5849 = +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetFormat_1_0_5849 = { 0, // Large == 0 8, // Count == 8 @@ -1823,9 +191,9 @@ SOOVPA<8> X_DirectSound_CDirectSoundBuffer_SetFormat_1_0_5849 = }; // ****************************************************************** -// * IDirectSoundBuffer_SetFormat +// * IDirectSoundBuffer8_SetFormat // ****************************************************************** -SOOVPA<8> X_IDirectSoundBuffer_SetFormat_1_0_5849 = +SOOVPA<8> IDirectSoundBuffer8_SetFormat_1_0_5849 = { 0, // Large == 0 8, // Count == 8 @@ -1846,6 +214,39 @@ SOOVPA<8> X_IDirectSoundBuffer_SetFormat_1_0_5849 = } }; +// ****************************************************************** +// * CMcpxBuffer_Play +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_Play_1_0_5849 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSOUNDPLAY, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_Play+0x0B : test dword ptr [eax+8], 0x182000 + { 0x0B, 0xF7 }, // (Offset,Value)-Pair #1 + { 0x0C, 0x40 }, // (Offset,Value)-Pair #2 + + // CMcpxBuffer_Play+0x13 : jz +0x09 + { 0x13, 0x74 }, // (Offset,Value)-Pair #3 + { 0x14, 0x05 }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_Play+0x32 : test byte ptr [esi+0x12], 0x42 + { 0x32, 0xF6 }, // (Offset,Value)-Pair #5 + { 0x33, 0x46 }, // (Offset,Value)-Pair #6 + { 0x34, 0x12 }, // (Offset,Value)-Pair #7 + { 0x35, 0x42 }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_Play+0xA4 : call dword ptr [eax+0x1C] + { 0xA4, 0xFF }, // (Offset,Value)-Pair #9 + { 0xA5, 0x50 }, // (Offset,Value)-Pair #10 + { 0xA6, 0x1C }, // (Offset,Value)-Pair #11 + } +}; + // ****************************************************************** // * Direct_1_0_5849 // ****************************************************************** @@ -1863,7 +264,7 @@ OOVPATable DSound_1_0_5849[] = }, // CDirectSound_CreateSoundBuffer { - (OOVPA*)&CDirectSound_CreateSoundBuffer_1_0_5849, 0, + (OOVPA*)&CDirectSound_CreateSoundBuffer_1_0_4627, 0, #ifdef _DEBUG_TRACE "CDirectSound::CreateSoundBuffer (XREF)" @@ -1872,294 +273,16 @@ OOVPATable DSound_1_0_5849[] = // IDirectSoundBuffer8::SetPlayRegion (* unchanged since 4361 *) { (OOVPA*)&IDirectSoundBuffer8_SetPlayRegion_1_0_4361, - + XTL::EmuIDirectSoundBuffer8_SetPlayRegion, #ifdef _DEBUG_TRACE "EmuIDirectSoundBuffer8_SetPlayRegion" #endif }, - // IDirectSoundBuffer8::SetLoopRegion (* unchanged since 4361 *) + // CMcpxBuffer::SetBufferData { - (OOVPA*)&IDirectSoundBuffer8_SetLoopRegion_1_0_4361, - - XTL::EmuIDirectSoundBuffer8_SetLoopRegion, - - #ifdef _DEBUG_TRACE - "EmuIDirectSoundBuffer8_SetLoopRegion" - #endif - }, - // CDirectSound_SetI3DL2Listener (* unchanged since 4432 *) - { - (OOVPA*)&CDirectSound_SetI3DL2Listener_1_0_4432, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound::SetI3DL2Listener (XREF)" - #endif - }, - // IDirectSound8_SetI3DL2Listener (* unchanged since 4432 *) - { - (OOVPA*)&IDirectSound8_SetI3DL2Listener_1_0_4432, - - XTL::EmuIDirectSound8_SetI3DL2Listener, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_SetI3DL2Listener" - #endif - }, - // CDirectSound_SetMixBinHeadroom - { - (OOVPA*)&CDirectSound_SetMixBinHeadroom_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound::SetMixBinHeadroom (XREF)" - #endif - }, - // IDirectSound8_SetMixBinHeadroom - { - (OOVPA*)&IDirectSound8_SetMixBinHeadroom_1_0_5849, - - XTL::EmuIDirectSound8_SetMixBinHeadroom, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_SetMixBinHeadroom" - #endif - }, - // CDirectSound::SetVelocity (XREF) - { - (OOVPA*)&CDirectSound_SetVelocity_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound_SetVelocityA (XRef)" - #endif - }, - // IDirectSound8::SetVelocity (* unchanged since 3936 *) - { - (OOVPA*)&IDirectSound8_SetVelocity_1_0_3936, - - XTL::EmuIDirectSound8_SetVelocity, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_SetVelocity" - #endif - }, - // CDirectSoundVoiceSettings_SetMixBins (* unchanged since 4432 *) - { - (OOVPA*)&CDirectSoundVoiceSettings_SetMixBins_1_0_4432, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoiceSettings::SetMixBins (XREF)" - #endif - }, - // CDirectSoundVoice_SetMixBins (* unchanged since 4432 *) - { - (OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_4432, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetMixBins (XREF)" - #endif - }, - // CDirectSoundBuffer_SetMixBins (* unchanged since 4432 *) - { - (OOVPA*)&CDirectSoundBuffer_SetMixBins_1_0_4432, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetMixBins (XREF)" - #endif - }, - // IDirectSoundBuffer8_SetMixBins (* unchanged since 4432 *) - { - (OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_4432, - - XTL::EmuIDirectSoundBuffer8_SetMixBins, - - #ifdef _DEBUG_TRACE - "EmuIDirectSoundBuffer8_SetMixBins" - #endif - }, - // CDirectSoundVoiceSettings_SetMixBinVolumes - { - (OOVPA*)&CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoiceSettings::SetMixBinVolumes (XREF)" - #endif - }, - // CDirectSoundVoice_SetMixBinVolumes - { - (OOVPA*)&CDirectSoundVoice_SetMixBinVolumes_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetMixBinVolumes (XREF)" - #endif - }, - // CDirectSoundBuffer_SetMixBinVolumes - { - (OOVPA*)&CDirectSoundBuffer_SetMixBinVolumes_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetMixBinVolumes (XREF)" - #endif - }, - // IDirectSoundBuffer8_SetMixBinVolumes - { - (OOVPA*)&IDirectSoundBuffer8_SetMixBinVolumes_1_0_5849, - - XTL::EmuIDirectSoundBuffer8_SetMixBinVolumes, - - #ifdef _DEBUG_TRACE - "EmuIDirectSoundBuffer8_SetMixBinVolumes" - #endif - }, - // CDirectSound::SetPositionA (XREF) - { - (OOVPA*)&CDirectSound_SetPositionA_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound_SetPositionA (XRef)" - #endif - }, - // IDirectSound8::SetPosition - { - (OOVPA*)&IDirectSound8_SetPosition_1_0_3936, - - XTL::EmuIDirectSound8_SetPosition, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_SetPosition" - #endif - }, - // DirectSoundCreateBuffer - { - (OOVPA*)&DirectSoundCreateBuffer_1_0_5849, - - XTL::EmuDirectSoundCreateBuffer, - - #ifdef _DEBUG_TRACE - "EmuDirectSoundCreateBuffer" - #endif - }, - // IDirectSound8::CreateSoundBuffer - { - (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_5849, - - XTL::EmuIDirectSound8_CreateSoundBuffer, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_CreateSoundBuffer" - #endif - }, - // IDirectSound8::AddRef (* unchanged since 4361 *) - { - (OOVPA*)&IDirectSound8_AddRef_1_0_4361, - - XTL::EmuIDirectSound8_AddRef, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_AddRef" - #endif - }, - // CDirectSoundVoice::SetFrequency (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetFrequency_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice_SetFrequency (XRef)" - #endif - }, - // CDirectSoundBuffer::SetFrequency - { - (OOVPA*)&CDirectSoundBuffer_SetFrequency_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "EmuCDirectSoundBuffer_SetFrequency (XREF)" - #endif - }, - // IDirectSoundBuffer8::SetFrequency - { - (OOVPA*)&IDirectSoundBuffer8_SetFrequency_1_0_5849, - - XTL::EmuIDirectSoundBuffer8_SetFrequency, - - #ifdef _DEBUG_TRACE - "EmuIDirectSoundBuffer8_SetFrequency" - #endif - }, - // CMcpxVoiceClient_SetVolume - { - (OOVPA*)&CMcpxVoiceClient_SetVolume_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CMcpxVoiceClient::SetVolume (XREF)" - #endif - }, - // CDirectSoundStream_SetVolume - { - (OOVPA*)&CDirectSoundStream_SetVolume_1_0_5849, - - XTL::EmuCDirectSoundStream_SetVolume, - - #ifdef _DEBUG_TRACE - "EmuCDirectSoundStream_SetVolume" - #endif - }, - // IDirectSoundBuffer8::LockA (XREF) - { - (OOVPA*)&IDirectSoundBuffer8_LockA_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_LockA (XRef)" - #endif - }, - // IDirectSoundBuffer8::Lock - { - (OOVPA*)&IDirectSoundBuffer8_Lock_1_0_3936, - - XTL::EmuIDirectSoundBuffer8_Lock, - - #ifdef _DEBUG_TRACE - "EmuIDirectSoundBuffer8_Lock" - #endif - }, - // CDirectSound_CreateSoundStream (* unchanged since 4361 *) - { - (OOVPA*)&CDirectSound_CreateSoundStream_1_0_4361, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound::CreateSoundStream (XREF)" - #endif - }, - // DirectSoundCreateStream (* unchanged since 4361 *) - { - (OOVPA*)&DirectSoundCreateStream_1_0_4361, - - XTL::EmuDirectSoundCreateStream, - - #ifdef _DEBUG_TRACE - "EmuDirectSoundCreateStream" - #endif - }, - // CMcpxStream::Pause (* unchanged since 4361 *) - { - (OOVPA*)&CMcpxStream_Pause_1_0_4361, 0, - - #ifdef _DEBUG_TRACE - "CMcpxStream_Pause (XREF)" - #endif - }, - // CDirectSoundStream::Pause (* unchanged since 4361 *) - { - (OOVPA*)&CDirectSoundStream_Pause_1_0_4361, - - XTL::EmuCDirectSoundStream_Pause, - - #ifdef _DEBUG_TRACE - "CDirectSoundStream_Pause" - #endif - }, - // CMcpxBuffer::SetBufferData (* unchanged since 4361 *) - { - (OOVPA*)&CMcpxBuffer_SetBufferData_1_0_4361, 0, + (OOVPA*)&CMcpxBuffer_SetBufferData_1_0_5849, 0, #ifdef _DEBUG_TRACE "CMcpxBuffer_SetBufferData (XREF)" @@ -2193,7 +316,7 @@ OOVPATable DSound_1_0_5849[] = }, // CDirectSoundBuffer::GetStatus { - (OOVPA*)&CDirectSoundBuffer_GetStatus_1_0_5849, 0, + (OOVPA*)&CDirectSoundBuffer_GetStatus_1_0_4627, 0, #ifdef _DEBUG_TRACE "CDirectSoundBuffer_GetStatus (XREF)" @@ -2201,7 +324,7 @@ OOVPATable DSound_1_0_5849[] = }, // IDirectSoundBuffer8::GetStatus { - (OOVPA*)&IDirectSoundBuffer8_GetStatus_1_0_5849, + (OOVPA*)&IDirectSoundBuffer8_GetStatus_1_0_4627, XTL::EmuIDirectSoundBuffer8_GetStatus, @@ -2209,56 +332,137 @@ OOVPATable DSound_1_0_5849[] = "IDirectSoundBuffer8_GetStatus" #endif }, - // CMcpxBuffer::GetCurrentPosition (* unchanged since 4361 *) + // CDirectSound_SetI3DL2Listener { - (OOVPA*)&CMcpxBuffer_GetCurrentPosition_1_0_4361, 0, + (OOVPA*)&CDirectSound_SetI3DL2Listener_1_0_5849, 0, #ifdef _DEBUG_TRACE - "CMcpxBuffer_GetCurrentPosition (XREF)" + "CDirectSound::SetI3DL2Listener (XREF)" #endif }, - // CDirectSoundBuffer::GetCurrentPosition (* unchanged since 4361 *) + // IDirectSound8_SetI3DL2Listener { - (OOVPA*)&CDirectSoundBuffer_GetCurrentPosition_1_0_4361, 0, + (OOVPA*)&IDirectSound8_SetI3DL2Listener_1_0_5849, + + XTL::EmuIDirectSound8_SetI3DL2Listener, #ifdef _DEBUG_TRACE - "CDirectSoundBuffer_GetCurrentPosition (XREF)" + "EmuIDirectSound8_SetI3DL2Listener" #endif }, - // IDirectSoundBuffer8::GetCurrentPosition (* unchanged since 3936 *) + // DirectSound::CDirectSoundVoice::SetFormat (XREF) { - (OOVPA*)&IDirectSoundBuffer8_GetCurrentPosition_1_0_3936, - - XTL::EmuIDirectSoundBuffer8_GetCurrentPosition, + (OOVPA*)&DirectSound_CDirectSoundVoice_SetFormat_1_0_5849, 0, #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_GetCurrentPosition" + "DirectSound::CDirectSoundVoice::SetFormat (XREF)" + #endif + + }, + // DirectSound::CDirectSoundBuffer::SetFormat (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetFormat_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::SetFormat (XREF)" #endif }, - // CMcpxBuffer::Play (* unchanged since 4361 *) + // IDirectSoundBuffer8_SetFormat { - (OOVPA*)&CMcpxBuffer_Play_1_0_4361, 0, + (OOVPA*)&IDirectSoundBuffer8_SetFormat_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_SetFormat, #ifdef _DEBUG_TRACE - "CMcpxBuffer_Play (XREF)" + "IDirectSoundBuffer_SetFormat@8" #endif }, - // CDirectSoundBuffer::Play (* unchanged since 4361 *) + // CDirectSoundVoiceSettings_SetMixBinVolumes { - (OOVPA*)&CDirectSoundBuffer_Play_1_0_4361, 0, + (OOVPA*)&CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_4627, 0, #ifdef _DEBUG_TRACE - "CDirectSoundBuffer_Play (XREF)" + "CDirectSoundVoiceSettings::SetMixBinVolumes (XREF)" #endif }, - // IDirectSoundBuffer8::Play (* unchanged since 4361 *) + // CDirectSoundVoice_SetMixBinVolumes { - (OOVPA*)&IDirectSoundBuffer8_Play_1_0_4361, - - XTL::EmuIDirectSoundBuffer8_Play, + (OOVPA*)&CDirectSoundVoice_SetMixBinVolumes_1_0_4627, 0, #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_Play" + "CDirectSoundVoice::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundBuffer_SetMixBinVolumes + { + (OOVPA*)&CDirectSoundBuffer_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBinVolumes (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetMixBinVolumes + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBinVolumes_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetMixBinVolumes, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBinVolumes" + #endif + }, + // IDirectSound8::CreateSoundBuffer + { + (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_4627, + + XTL::EmuIDirectSound8_CreateSoundBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateSoundBuffer" + #endif + }, + // CDirectSoundVoice::SetFrequency (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice_SetFrequency (XRef)" + #endif + }, + // CDirectSoundBuffer::SetFrequency + { + (OOVPA*)&CDirectSoundBuffer_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundBuffer_SetFrequency (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetFrequency + { + (OOVPA*)&IDirectSoundBuffer8_SetFrequency_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetFrequency" + #endif + }, + // CMcpxVoiceClient_SetVolume + { + (OOVPA*)&CMcpxVoiceClient_SetVolume_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetVolume (XREF)" + #endif + }, + // CDirectSoundStream_SetVolume + { + (OOVPA*)&CDirectSoundStream_SetVolume_1_0_4627, + + XTL::EmuCDirectSoundStream_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetVolume" #endif }, // IDirectSound8::Release (* unchanged since 3936 *) @@ -2291,70 +495,6 @@ OOVPATable DSound_1_0_5849[] = "EmuIDirectSound8_SetOrientation" #endif }, - // CDirectSound::SetDistanceFactorA (XREF) - { - (OOVPA*)&CDirectSound_SetDistanceFactorA_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound_SetDistanceFactorA (XRef)" - #endif - }, - // IDirectSound8::SetDistanceFactor (* unchanged since 4432 *) - { - (OOVPA*)&IDirectSound8_SetDistanceFactor_1_0_4432, - - XTL::EmuIDirectSound8_SetDistanceFactor, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_SetDistanceFactor" - #endif - }, - // CDirectSound::SetRolloffFactor (XREF) - { - (OOVPA*)&CDirectSound_SetRolloffFactor_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound_SetRolloffFactor (XRef)" - #endif - }, - // IDirectSound8::SetRolloffFactor - { - (OOVPA*)&IDirectSound8_SetRolloffFactor_1_0_5849, - - XTL::EmuIDirectSound8_SetRolloffFactor, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_SetRolloffFactor" - #endif - }, - // CDirectSound::SetDopplerFactor (XREF) - { - (OOVPA*)&CDirectSound_SetDopplerFactor_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound_SetDopplerFactor (XRef)" - #endif - }, - // IDirectSound8::SetDopplerFactor - { - (OOVPA*)&IDirectSound8_SetDopplerFactor_1_0_5849, - - XTL::EmuIDirectSound8_SetDopplerFactor, - - #ifdef _DEBUG_TRACE - "EmuIDirectSound8_SetDopplerFactor" - #endif - }, - // CDirectSound::CommitDeferredSettings (* unchanged since 4432 *) - { - (OOVPA*)&CDirectSound_CommitDeferredSettings_1_0_4432, - - XTL::EmuCDirectSound_CommitDeferredSettings, - - #ifdef _DEBUG_TRACE - "EmuCDirectSound_CommitDeferredSettings" - #endif - }, // CDirectSoundVoice::SetMaxDistance (XREF) (* unchanged since 4432 *) { (OOVPA*)&CDirectSoundVoice_SetMaxDistance_1_0_4432, 0, @@ -2380,260 +520,36 @@ OOVPATable DSound_1_0_5849[] = "IDirectSoundBuffer8_SetMaxDistance" #endif }, - // CDirectSoundVoice::SetMinDistance (XREF) (* unchanged since 4432 *) + // CMcpxBuffer::Play { - (OOVPA*)&CDirectSoundVoice_SetMinDistance_1_0_4432, 0, + (OOVPA*)&CMcpxBuffer_Play_1_0_5849, 0, #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetMinDistance (XRef)" + "CMcpxBuffer_Play (XREF)" #endif }, - // CDirectSoundBuffer::SetMinDistance (XREF) (* unchanged since 4432 *) + // CDirectSoundBuffer::Play (* unchanged since 4361 *) { - (OOVPA*)&CDirectSoundBuffer_SetMinDistance_1_0_4432, 0, + (OOVPA*)&CDirectSoundBuffer_Play_1_0_4361, 0, #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetMinDistance (XRef)" + "CDirectSoundBuffer_Play (XREF)" #endif }, - // IDirectSoundBuffer_SetMinDistance (* unchanged since 4432 *) + // IDirectSoundBuffer8::Play (* unchanged since 4361 *) { - (OOVPA*)&IDirectSoundBuffer_SetMinDistance_1_0_4432, - XTL::EmuIDirectSoundBuffer8_SetMinDistance, + (OOVPA*)&IDirectSoundBuffer8_Play_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_Play, #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetMinDistance" + "IDirectSoundBuffer8_Play" #endif }, - // s+ - // CDirectSoundVoice::SetRolloffFactor (XREF) + // IDirectSoundBuffer_Stop (Possibly weak, but quite OK for 4627 DSOUND) { - (OOVPA*)&CDirectSoundVoice_SetRolloffFactor_1_0_5849, 0, + (OOVPA*)&IDirectSoundBuffer_Stop_1_0_4627, - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetRolloffFactor (XRef)" - #endif - }, - // CDirectSoundBuffer::SetRolloffFactor (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetRolloffFactor_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetRolloffFactor (XRef)" - #endif - }, - // IDirectSoundBuffer_SetRolloffFactor - { - (OOVPA*)&IDirectSoundBuffer_SetRolloffFactor_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetRolloffFactor, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetRolloffFactor" - #endif - }, - // CDirectSoundVoice::SetDistanceFactor (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetDistanceFactor_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetDistanceFactor (XRef)" - #endif - }, - // CDirectSoundBuffer::SetDistanceFactor (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetDistanceFactor_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetDistanceFactor (XRef)" - #endif - }, - // IDirectSoundBuffer_SetDistanceFactor - { - (OOVPA*)&IDirectSoundBuffer_SetDistanceFactor_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetDistanceFactor, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetDistanceFactor" - #endif - }, - // CDirectSoundVoice::SetConeAngles (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetConeAngles_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetConeAngles (XRef)" - #endif - }, - // CDirectSoundBuffer::SetConeAngles (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetConeAngles_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetConeAngles (XRef)" - #endif - }, - // IDirectSoundBuffer_SetConeAngles - { - (OOVPA*)&IDirectSoundBuffer_SetConeAngles_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetConeAngles, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetConeAngles" - #endif - }, - // CDirectSoundVoice::SetConeOrientation (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetConeOrientation_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetConeOrientation (XRef)" - #endif - }, - // CDirectSoundBuffer::SetConeOrientation (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetConeOrientation_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetConeOrientation (XRef)" - #endif - }, - // IDirectSoundBuffer_SetConeOrientation - { - (OOVPA*)&IDirectSoundBuffer_SetConeOrientation_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetConeOrientation, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetConeOrientation" - #endif - }, - // CDirectSoundVoice::SetConeOutsideVolume (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetConeOutsideVolume_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetConeOutsideVolume (XRef)" - #endif - }, - // CDirectSoundBuffer::SetConeOutsideVolume (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetConeOutsideVolume_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetConeOutsideVolume (XRef)" - #endif - }, - // IDirectSoundBuffer_SetConeOutsideVolume - { - (OOVPA*)&IDirectSoundBuffer_SetConeOutsideVolume_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetConeOutsideVolume, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetConeOutsideVolume" - #endif - }, - // CDirectSoundVoice::SetPosition (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetPosition_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetPosition (XRef)" - #endif - }, - // CDirectSoundBuffer::SetPosition (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetPosition_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetPosition (XRef)" - #endif - }, - // IDirectSoundBuffer_SetPosition - { - (OOVPA*)&IDirectSoundBuffer_SetPosition_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetPosition, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetPosition" - #endif - }, - // CDirectSoundVoice::SetVelocity (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetVelocity_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetVelocity (XRef)" - #endif - }, - // CDirectSoundBuffer::SetVelocity (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetVelocity_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetVelocity (XRef)" - #endif - }, - // IDirectSoundBuffer_SetVelocity - { - (OOVPA*)&IDirectSoundBuffer_SetVelocity_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetVelocity, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetVelocity" - #endif - }, - // CDirectSoundVoice::SetDopplerFactor (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetDopplerFactor_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetDopplerFactor (XRef)" - #endif - }, - // CDirectSoundBuffer::SetDopplerFactor (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetDopplerFactor_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetDopplerFactor (XRef)" - #endif - }, - // IDirectSoundBuffer_SetDopplerFactor - { - (OOVPA*)&IDirectSoundBuffer_SetDopplerFactor_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetDopplerFactor, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetDopplerFactor" - #endif - }, - // CDirectSoundVoice::SetI3DL2Source (XREF) - { - (OOVPA*)&CDirectSoundVoice_SetI3DL2Source_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundVoice::SetI3DL2Source (XRef)" - #endif - }, - // CDirectSoundBuffer::SetI3DL2Source (XREF) - { - (OOVPA*)&CDirectSoundBuffer_SetI3DL2Source_1_0_5849, 0, - - #ifdef _DEBUG_TRACE - "CDirectSoundBuffer::SetI3DL2Source (XRef)" - #endif - }, - // IDirectSoundBuffer_SetI3DL2Source - { - (OOVPA*)&IDirectSoundBuffer_SetI3DL2Source_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetI3DL2Source, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer8_SetI3DL2Source" - #endif - }, - // IDirectSoundBuffer_Stop (Possibly weak, but quite OK for 5849 DSOUND) - { - (OOVPA*)&IDirectSoundBuffer_Stop_1_0_5849, XTL::EmuIDirectSoundBuffer8_Stop, #ifdef _DEBUG_TRACE @@ -2650,35 +566,6 @@ OOVPATable DSound_1_0_5849[] = "EmuIDirectSoundBuffer8_Release" #endif }, - // +s - // DirectSound::CDirectSoundVoice::SetFormat (XREF) - { - (OOVPA*)&X_DirectSound_CDirectSoundVoice_SetFormat_1_0_5849, - 0, - - #ifdef _DEBUG_TRACE - "DirectSound::CDirectSoundVoice::SetFormat (XREF)" - #endif - }, - // DirectSound::CDirectSoundBuffer::SetFormat (XREF) - { - (OOVPA*)&X_DirectSound_CDirectSoundBuffer_SetFormat_1_0_5849, - 0, - - #ifdef _DEBUG_TRACE - "DirectSound::CDirectSoundBuffer::SetFormat (XREF)" - #endif - }, - // IDirectSoundBuffer_SetFormat - { - (OOVPA*)&X_IDirectSoundBuffer_SetFormat_1_0_5849, - XTL::EmuIDirectSoundBuffer8_SetFormat, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer_SetFormat" - #endif - - }, }; // ******************************************************************