progressing antz

This commit is contained in:
Aaron Robinson 2004-02-19 06:49:54 +00:00
parent 7f1799f6a0
commit a33719afa4
7 changed files with 387 additions and 162 deletions

BIN
Cxbx.opt

Binary file not shown.

View File

@ -1138,6 +1138,18 @@ VOID WINAPI EmuIDirect3DDevice8_DrawIndexedVertices
CONST PWORD pIndexData CONST PWORD pIndexData
); );
// ******************************************************************
// * func: EmuIDirect3DDevice8_DrawIndexedVerticesUP
// ******************************************************************
VOID WINAPI EmuIDirect3DDevice8_DrawIndexedVerticesUP
(
X_D3DPRIMITIVETYPE PrimitiveType,
UINT VertexCount,
CONST PVOID pIndexData,
CONST PVOID pVertexStreamZeroData,
UINT VertexStreamZeroStride
);
// ****************************************************************** // ******************************************************************
// * func: EmuIDirect3DDevice8_SetLight // * func: EmuIDirect3DDevice8_SetLight
// ****************************************************************** // ******************************************************************

View File

@ -4840,7 +4840,7 @@ VOID WINAPI XTL::EmuIDirect3DDevice8_UpdateOverlay
int h = g_dwOverlayH; int h = g_dwOverlayH;
// TODO: sucker the game into rendering directly to the overlay (speed boost) // TODO: sucker the game into rendering directly to the overlay (speed boost)
if(ddsd2.lPitch == w*2 && g_dwOverlayP == w*2) if( (ddsd2.lPitch == w*2) && ((int)g_dwOverlayP == w*2) )
memcpy(pDest, pSour, h*w*2); memcpy(pDest, pSour, h*w*2);
else else
{ {
@ -6587,6 +6587,75 @@ VOID WINAPI XTL::EmuIDirect3DDevice8_DrawIndexedVertices
return; return;
} }
// ******************************************************************
// * func: EmuIDirect3DDevice8_DrawIndexedVerticesUP
// ******************************************************************
VOID WINAPI XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP
(
X_D3DPRIMITIVETYPE PrimitiveType,
UINT VertexCount,
CONST PVOID pIndexData,
CONST PVOID pVertexStreamZeroData,
UINT VertexStreamZeroStride
)
{
EmuSwapFS(); // Win2k/XP FS
// debug trace
#ifdef _DEBUG_TRACE
{
printf("EmuD3D8 (0x%X): EmuIDirect3DDevice8_DrawIndexedVerticesUP\n"
"(\n"
" PrimitiveType : 0x%.08X\n"
" VertexCount : 0x%.08X\n"
" pIndexData : 0x%.08X\n"
" pVertexStreamZeroData : 0x%.08X\n"
" VertexStreamZeroStride : 0x%.08X\n"
");\n",
GetCurrentThreadId(), PrimitiveType, VertexCount, pIndexData, pVertexStreamZeroData, VertexStreamZeroStride);
}
#endif
// update index buffer, if necessary
if(g_pIndexBuffer != 0 && g_pIndexBuffer->Lock == X_D3DRESOURCE_LOCK_FLAG_NOSIZE)
EmuCleanup("g_pIndexBuffer != 0");
EmuUpdateDeferredStates();
if((DWORD)PrimitiveType == 0x08 || (DWORD)PrimitiveType == 0x09 || (DWORD)PrimitiveType == 0x10)
EmuWarning("Unsupported PrimitiveType! (%d)", (DWORD)PrimitiveType);
UINT PrimitiveCount = EmuD3DVertex2PrimitiveCount(PrimitiveType, VertexCount);
// Convert from Xbox to PC enumeration
D3DPRIMITIVETYPE PCPrimitiveType = EmuPrimitiveType(PrimitiveType);
IDirect3DVertexBuffer8 *pOrigVertexBuffer8 = 0;
IDirect3DVertexBuffer8 *pHackVertexBuffer8 = 0;
PVOID pNewVertexStreamZeroData = pVertexStreamZeroData;
uint32 nStride = EmuFixupVerticesA(PrimitiveType, PrimitiveCount, pOrigVertexBuffer8, pHackVertexBuffer8, 0, pVertexStreamZeroData, VertexStreamZeroStride, &pNewVertexStreamZeroData);
g_pD3DDevice8->DrawIndexedPrimitiveUP
(
PCPrimitiveType, 0, VertexCount, PrimitiveCount, pIndexData, D3DFMT_INDEX16, pNewVertexStreamZeroData, VertexStreamZeroStride
);
if(nStride != -1)
{
EmuFixupVerticesB(nStride, pOrigVertexBuffer8, pHackVertexBuffer8);
if(pNewVertexStreamZeroData != 0)
free(pNewVertexStreamZeroData);
}
EmuSwapFS(); // XBox FS
return;
}
// ****************************************************************** // ******************************************************************
// * func: EmuIDirect3DDevice8_SetLight // * func: EmuIDirect3DDevice8_SetLight
// ****************************************************************** // ******************************************************************

View File

@ -145,7 +145,7 @@ static void HackUpdateSoundStreams()
// resize an emulated directsound buffer, if necessary // resize an emulated directsound buffer, if necessary
static void EmuResizeIDirectSoundBuffer8(XTL::X_CDirectSoundBuffer *pThis, DWORD dwBytes) static void EmuResizeIDirectSoundBuffer8(XTL::X_CDirectSoundBuffer *pThis, DWORD dwBytes)
{ {
if(dwBytes == pThis->EmuBufferDesc->dwBufferBytes) if(dwBytes == pThis->EmuBufferDesc->dwBufferBytes || dwBytes == 0)
return; return;
#ifdef _DEBUG_TRACE #ifdef _DEBUG_TRACE

View File

@ -1060,6 +1060,70 @@ SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4432 =
} }
}; };
// ******************************************************************
// * IDirect3DDevice8_SetVerticalBlankCallback
// ******************************************************************
SOOVPA<12> IDirect3DDevice8_SetVerticalBlankCallback_1_0_4432 =
{
0, // Large == 0
12, // Count == 12
-1, // XRef Not Saved
0, // XRef Not Used
{
// IDirect3DDevice8_SetVerticalBlankCallback+0x00 : mov eax, [esp+0x04]
{ 0x00, 0x8B }, // (Offset,Value)-Pair #1
{ 0x01, 0x44 }, // (Offset,Value)-Pair #2
{ 0x02, 0x24 }, // (Offset,Value)-Pair #3
{ 0x03, 0x04 }, // (Offset,Value)-Pair #4
// IDirect3DDevice8_SetVerticalBlankCallback+0x04 : mov ecx, [addr]
{ 0x04, 0x8B }, // (Offset,Value)-Pair #5
{ 0x05, 0x0D }, // (Offset,Value)-Pair #6
// IDirect3DDevice8_SetVerticalBlankCallback+0x0A : mov [ecx+0x2444], eax
{ 0x0A, 0x89 }, // (Offset,Value)-Pair #7
{ 0x0B, 0x81 }, // (Offset,Value)-Pair #8
{ 0x0C, 0x44 }, // (Offset,Value)-Pair #9
{ 0x0D, 0x24 }, // (Offset,Value)-Pair #10
// IDirect3DDevice8_SetVerticalBlankCallback+0x10 : retn 0x04
{ 0x10, 0xC2 }, // (Offset,Value)-Pair #11
{ 0x11, 0x04 }, // (Offset,Value)-Pair #12
}
};
// ******************************************************************
// * IDirect3DDevice8_DrawIndexedVerticesUP
// ******************************************************************
SOOVPA<10> IDirect3DDevice8_DrawIndexedVerticesUP_1_0_4432 =
{
0, // Large == 0
10, // Count == 10
-1, // XRef Not Saved
0, // XRef Not Used
{
// IDirect3DDevice8_DrawIndexedVerticesUP+0x4A : or edx, 0x800
{ 0x4A, 0x81 }, // (Offset,Value)-Pair #1
{ 0x4B, 0xCA }, // (Offset,Value)-Pair #2
{ 0x4C, 0x00 }, // (Offset,Value)-Pair #3
{ 0x4D, 0x08 }, // (Offset,Value)-Pair #4
// IDirect3DDevice8_DrawIndexedVerticesUP+0x5C : lea edx, [edi+0x6C4]
{ 0x5C, 0x8D }, // (Offset,Value)-Pair #5
{ 0x5D, 0x97 }, // (Offset,Value)-Pair #6
{ 0x5E, 0xC4 }, // (Offset,Value)-Pair #7
{ 0x5F, 0x06 }, // (Offset,Value)-Pair #8
// IDirect3DDevice8_DrawIndexedVerticesUP+0x6A : mov eax, 0x10
{ 0x6A, 0xB8 }, // (Offset,Value)-Pair #9
{ 0x6B, 0x10 }, // (Offset,Value)-Pair #10
}
};
// ****************************************************************** // ******************************************************************
// * IDirect3DTexture8_GetSurfaceLevel // * IDirect3DTexture8_GetSurfaceLevel
// ****************************************************************** // ******************************************************************
@ -1677,6 +1741,26 @@ OOVPATable D3D8_1_0_4432[] =
"EmuIDirect3DDevice8_BlockUntilVerticalBlank" "EmuIDirect3DDevice8_BlockUntilVerticalBlank"
#endif #endif
}, },
// IDirect3DDevice8::SetVerticalBlankCallback
{
(OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_4432,
XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_SetVerticalBlankCallback"
#endif
},
// IDirect3DDevice8::DrawIndexedVerticesUP
{
(OOVPA*)&IDirect3DDevice8_DrawIndexedVerticesUP_1_0_4432,
XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP,
#ifdef _DEBUG_TRACE
"EmuIDirect3DDevice8_DrawIndexedVerticesUP"
#endif
},
// IDirect3DDevice8::SetStreamSource (* unchanged since 4361 *) // IDirect3DDevice8::SetStreamSource (* unchanged since 4361 *)
{ {
(OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361, (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361,

View File

@ -321,6 +321,158 @@ SOOVPA<12> IDirectSound8_SetI3DL2Listener_1_0_4432 =
} }
}; };
// ******************************************************************
// * CDirectSoundVoiceSettings::SetMixBins
// ******************************************************************
SOOVPA<10> CDirectSoundVoiceSettings_SetMixBins_1_0_4432 =
{
0, // Large == 0
10, // Count == 10
XREF_DSSETMIXBINSC, // XRef Is Saved
0, // XRef Not Used
{
// CDirectSoundVoiceSettings_SetMixBins+0x06 : jnz +0x1A
{ 0x06, 0x75 }, // (Offset,Value)-Pair #1
{ 0x07, 0x1A }, // (Offset,Value)-Pair #2
// CDirectSoundVoiceSettings_SetMixBins+0x08 : test byte ptr [ecx+8], 0x10
{ 0x08, 0xF6 }, // (Offset,Value)-Pair #3
{ 0x09, 0x41 }, // (Offset,Value)-Pair #4
{ 0x0A, 0x08 }, // (Offset,Value)-Pair #5
{ 0x0B, 0x10 }, // (Offset,Value)-Pair #6
// CDirectSoundVoiceSettings_SetMixBins+0x2B : jbe +0x2B
{ 0x2B, 0x76 }, // (Offset,Value)-Pair #7
{ 0x2C, 0x2B }, // (Offset,Value)-Pair #8
// CDirectSoundVoiceSettings_SetMixBins+0xB2 : retn 0x04
{ 0xB2, 0xC2 }, // (Offset,Value)-Pair #9
{ 0xB3, 0x04 }, // (Offset,Value)-Pair #10
}
};
// ******************************************************************
// * CDirectSoundVoice::SetMixBins
// ******************************************************************
SOOVPA<17> CDirectSoundVoice_SetMixBins_1_0_4432 =
{
0, // Large == 0
17, // Count == 17
XREF_DSSETMIXBINSB, // XRef Is Saved
1, // XRef Is Used
{
// CDirectSoundVoice_SetMixBins+0x0D : call [CDirectSoundVoiceSettings::SetMixBins]
{ 0x0D, XREF_DSSETMIXBINSC }, // (Offset,Value)-Pair #1
// CDirectSoundVoice_SetMixBins+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_SetMixBins+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_SetMixBins+0x09 : mov ecx, [esi+0x10]
{ 0x09, 0x8B }, // (Offset,Value)-Pair #10
{ 0x0A, 0x4E }, // (Offset,Value)-Pair #11
{ 0x0B, 0x10 }, // (Offset,Value)-Pair #12
// CDirectSoundVoice_SetMixBins+0x11 : mov ecx, [esi+0x0C]
{ 0x11, 0x8B }, // (Offset,Value)-Pair #13
{ 0x12, 0x4E }, // (Offset,Value)-Pair #14
{ 0x13, 0x0C }, // (Offset,Value)-Pair #15
// CDirectSoundVoice_SetMixBins+0x1A : retn 0x08
{ 0x1A, 0xC2 }, // (Offset,Value)-Pair #16
{ 0x1B, 0x08 }, // (Offset,Value)-Pair #17
}
};
// ******************************************************************
// * CDirectSoundBuffer::SetMixBins
// ******************************************************************
SOOVPA<17> CDirectSoundBuffer_SetMixBins_1_0_4432 =
{
0, // Large == 0
17, // Count == 17
XREF_DSSETMIXBINSA, // XRef Is Saved
1, // XRef Not Used
{
// CDirectSoundBuffer_SetMixBins+0x32 : call [CDirectSoundVoice::SetMixBins]
{ 0x32, XREF_DSSETMIXBINSB }, // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetMixBins+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_SetMixBins+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_SetMixBins+0x49 : pop edi
{ 0x49, 0x5F }, // (Offset,Value)-Pair #15
// CDirectSoundBuffer_SetMixBins+0x4B : retn 0x08
{ 0x4B, 0xC2 }, // (Offset,Value)-Pair #16
{ 0x4C, 0x08 }, // (Offset,Value)-Pair #17
}
};
// ******************************************************************
// * IDirectSoundBuffer8_SetMixBins
// ******************************************************************
SOOVPA<12> IDirectSoundBuffer8_SetMixBins_1_0_4432 =
{
0, // Large == 0
12, // Count == 12
-1, // XRef Not Saved
1, // XRef Is Used
{
// IDirectSoundBuffer8_SetMixBins+0x15 : call [CDirectSoundBuffer::SetMixBins]
{ 0x15, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetMixBins+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_SetMixBins+0x0A : add eax, 0xFFFFFFE4
{ 0x0A, 0x83 }, // (Offset,Value)-Pair #6
{ 0x0B, 0xC0 }, // (Offset,Value)-Pair #7
{ 0x0C, 0xE4 }, // (Offset,Value)-Pair #8
// IDirectSoundBuffer8_SetMixBins+0x0F : sbb ecx, ecx
{ 0x0F, 0x1B }, // (Offset,Value)-Pair #9
{ 0x10, 0xC9 }, // (Offset,Value)-Pair #10
// IDirectSoundBuffer8_SetMixBins+0x11 : and ecx, eax
{ 0x11, 0x23 }, // (Offset,Value)-Pair #11
{ 0x12, 0xC8 }, // (Offset,Value)-Pair #12
}
};
// ****************************************************************** // ******************************************************************
// * CDirectSound::CommitDeferredSettings // * CDirectSound::CommitDeferredSettings
// ****************************************************************** // ******************************************************************
@ -563,6 +715,32 @@ OOVPATable DSound_1_0_4432[] =
"IDirectSoundBuffer8_SetCurrentPosition" "IDirectSoundBuffer8_SetCurrentPosition"
#endif #endif
}, },
// CMcpxBuffer::Stop (* unchanged since 4361 *)
{
(OOVPA*)&CMcpxBuffer_Stop_1_0_4361, 0,
#ifdef _DEBUG_TRACE
"CMcpxBuffer_Stop (XREF)"
#endif
},
// CDirectSoundBuffer::Stop (* unchanged since 4361 *)
{
(OOVPA*)&CDirectSoundBuffer_Stop_1_0_4361, 0,
#ifdef _DEBUG_TRACE
"CDirectSoundBuffer_Stop (XREF)"
#endif
},
// IDirectSoundBuffer8::Stop (* unchanged since 4361 *)
{
(OOVPA*)&IDirectSoundBuffer8_Stop_1_0_4361,
XTL::EmuIDirectSoundBuffer8_Stop,
#ifdef _DEBUG_TRACE
"IDirectSoundBuffer8_Stop"
#endif
},
// CDirectSoundVoice::SetMaxDistance (XREF) // CDirectSoundVoice::SetMaxDistance (XREF)
{ {
(OOVPA*)&CDirectSoundVoice_SetMaxDistance_1_0_4432, 0, (OOVPA*)&CDirectSoundVoice_SetMaxDistance_1_0_4432, 0,
@ -631,6 +809,40 @@ OOVPATable DSound_1_0_4432[] =
"EmuIDirectSound8_SetI3DL2Listener" "EmuIDirectSound8_SetI3DL2Listener"
#endif #endif
}, },
// CDirectSoundVoiceSettings_SetMixBins
{
(OOVPA*)&CDirectSoundVoiceSettings_SetMixBins_1_0_4432, 0,
#ifdef _DEBUG_TRACE
"CDirectSoundVoiceSettings::SetMixBins (XREF)"
#endif
},
// CDirectSoundVoice_SetMixBins
{
(OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_4432, 0,
#ifdef _DEBUG_TRACE
"CDirectSoundVoice::SetMixBins (XREF)"
#endif
},
// CDirectSoundBuffer_SetMixBins
{
(OOVPA*)&CDirectSoundBuffer_SetMixBins_1_0_4432, 0,
#ifdef _DEBUG_TRACE
"CDirectSoundBuffer::SetMixBins (XREF)"
#endif
},
// IDirectSoundBuffer8_SetMixBins
{
(OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_4432,
XTL::EmuIDirectSoundBuffer8_SetMixBins,
#ifdef _DEBUG_TRACE
"EmuIDirectSoundBuffer8_SetMixBins"
#endif
},
// CDirectSound::CommitDeferredSettings // CDirectSound::CommitDeferredSettings
{ {
(OOVPA*)&CDirectSound_CommitDeferredSettings_1_0_4432, (OOVPA*)&CDirectSound_CommitDeferredSettings_1_0_4432,

View File

@ -179,158 +179,6 @@ SOOVPA<15> CDirectSound_SetVelocity_1_0_4627 =
} }
}; };
// ******************************************************************
// * CDirectSoundVoiceSettings::SetMixBins
// ******************************************************************
SOOVPA<10> CDirectSoundVoiceSettings_SetMixBins_1_0_4627 =
{
0, // Large == 0
10, // Count == 10
XREF_DSSETMIXBINSC, // XRef Is Saved
0, // XRef Not Used
{
// CDirectSoundVoiceSettings_SetMixBins+0x06 : jnz +0x1A
{ 0x06, 0x75 }, // (Offset,Value)-Pair #1
{ 0x07, 0x1A }, // (Offset,Value)-Pair #2
// CDirectSoundVoiceSettings_SetMixBins+0x08 : test byte ptr [ecx+8], 0x10
{ 0x08, 0xF6 }, // (Offset,Value)-Pair #3
{ 0x09, 0x41 }, // (Offset,Value)-Pair #4
{ 0x0A, 0x08 }, // (Offset,Value)-Pair #5
{ 0x0B, 0x10 }, // (Offset,Value)-Pair #6
// CDirectSoundVoiceSettings_SetMixBins+0x2B : jbe +0x2B
{ 0x2B, 0x76 }, // (Offset,Value)-Pair #7
{ 0x2C, 0x2B }, // (Offset,Value)-Pair #8
// CDirectSoundVoiceSettings_SetMixBins+0xB2 : retn 0x04
{ 0xB2, 0xC2 }, // (Offset,Value)-Pair #9
{ 0xB3, 0x04 }, // (Offset,Value)-Pair #10
}
};
// ******************************************************************
// * CDirectSoundVoice::SetMixBins
// ******************************************************************
SOOVPA<17> CDirectSoundVoice_SetMixBins_1_0_4627 =
{
0, // Large == 0
17, // Count == 17
XREF_DSSETMIXBINSB, // XRef Is Saved
1, // XRef Is Used
{
// CDirectSoundVoice_SetMixBins+0x0D : call [CDirectSoundVoiceSettings::SetMixBins]
{ 0x0D, XREF_DSSETMIXBINSC }, // (Offset,Value)-Pair #1
// CDirectSoundVoice_SetMixBins+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_SetMixBins+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_SetMixBins+0x09 : mov ecx, [esi+0x10]
{ 0x09, 0x8B }, // (Offset,Value)-Pair #10
{ 0x0A, 0x4E }, // (Offset,Value)-Pair #11
{ 0x0B, 0x10 }, // (Offset,Value)-Pair #12
// CDirectSoundVoice_SetMixBins+0x11 : mov ecx, [esi+0x0C]
{ 0x11, 0x8B }, // (Offset,Value)-Pair #13
{ 0x12, 0x4E }, // (Offset,Value)-Pair #14
{ 0x13, 0x0C }, // (Offset,Value)-Pair #15
// CDirectSoundVoice_SetMixBins+0x1A : retn 0x08
{ 0x1A, 0xC2 }, // (Offset,Value)-Pair #16
{ 0x1B, 0x08 }, // (Offset,Value)-Pair #17
}
};
// ******************************************************************
// * CDirectSoundBuffer::SetMixBins
// ******************************************************************
SOOVPA<17> CDirectSoundBuffer_SetMixBins_1_0_4627 =
{
0, // Large == 0
17, // Count == 17
XREF_DSSETMIXBINSA, // XRef Is Saved
1, // XRef Not Used
{
// CDirectSoundBuffer_SetMixBins+0x32 : call [CDirectSoundVoice::SetMixBins]
{ 0x32, XREF_DSSETMIXBINSB }, // (Offset,Value)-Pair #1
// CDirectSoundBuffer_SetMixBins+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_SetMixBins+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_SetMixBins+0x49 : pop edi
{ 0x49, 0x5F }, // (Offset,Value)-Pair #15
// CDirectSoundBuffer_SetMixBins+0x4B : retn 0x08
{ 0x4B, 0xC2 }, // (Offset,Value)-Pair #16
{ 0x4C, 0x08 }, // (Offset,Value)-Pair #17
}
};
// ******************************************************************
// * IDirectSoundBuffer8_SetMixBins
// ******************************************************************
SOOVPA<12> IDirectSoundBuffer8_SetMixBins_1_0_4627 =
{
0, // Large == 0
12, // Count == 12
-1, // XRef Not Saved
1, // XRef Is Used
{
// IDirectSoundBuffer8_SetMixBins+0x15 : call [CDirectSoundBuffer::SetMixBins]
{ 0x15, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1
// IDirectSoundBuffer8_SetMixBins+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_SetMixBins+0x0A : add eax, 0xFFFFFFE4
{ 0x0A, 0x83 }, // (Offset,Value)-Pair #6
{ 0x0B, 0xC0 }, // (Offset,Value)-Pair #7
{ 0x0C, 0xE4 }, // (Offset,Value)-Pair #8
// IDirectSoundBuffer8_SetMixBins+0x0F : sbb ecx, ecx
{ 0x0F, 0x1B }, // (Offset,Value)-Pair #9
{ 0x10, 0xC9 }, // (Offset,Value)-Pair #10
// IDirectSoundBuffer8_SetMixBins+0x11 : and ecx, eax
{ 0x11, 0x23 }, // (Offset,Value)-Pair #11
{ 0x12, 0xC8 }, // (Offset,Value)-Pair #12
}
};
// ****************************************************************** // ******************************************************************
// * CDirectSoundVoiceSettings::SetMixBinVolumes // * CDirectSoundVoiceSettings::SetMixBinVolumes
// ****************************************************************** // ******************************************************************
@ -2024,33 +1872,33 @@ OOVPATable DSound_1_0_4627[] =
"EmuIDirectSound8_SetVelocity" "EmuIDirectSound8_SetVelocity"
#endif #endif
}, },
// CDirectSoundVoiceSettings_SetMixBins // CDirectSoundVoiceSettings_SetMixBins (* unchanged since 4432 *)
{ {
(OOVPA*)&CDirectSoundVoiceSettings_SetMixBins_1_0_4627, 0, (OOVPA*)&CDirectSoundVoiceSettings_SetMixBins_1_0_4432, 0,
#ifdef _DEBUG_TRACE #ifdef _DEBUG_TRACE
"CDirectSoundVoiceSettings::SetMixBins (XREF)" "CDirectSoundVoiceSettings::SetMixBins (XREF)"
#endif #endif
}, },
// CDirectSoundVoice_SetMixBins // CDirectSoundVoice_SetMixBins (* unchanged since 4432 *)
{ {
(OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_4627, 0, (OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_4432, 0,
#ifdef _DEBUG_TRACE #ifdef _DEBUG_TRACE
"CDirectSoundVoice::SetMixBins (XREF)" "CDirectSoundVoice::SetMixBins (XREF)"
#endif #endif
}, },
// CDirectSoundBuffer_SetMixBins // CDirectSoundBuffer_SetMixBins (* unchanged since 4432 *)
{ {
(OOVPA*)&CDirectSoundBuffer_SetMixBins_1_0_4627, 0, (OOVPA*)&CDirectSoundBuffer_SetMixBins_1_0_4432, 0,
#ifdef _DEBUG_TRACE #ifdef _DEBUG_TRACE
"CDirectSoundBuffer::SetMixBins (XREF)" "CDirectSoundBuffer::SetMixBins (XREF)"
#endif #endif
}, },
// IDirectSoundBuffer8_SetMixBins // IDirectSoundBuffer8_SetMixBins (* unchanged since 4432 *)
{ {
(OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_4627, (OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_4432,
XTL::EmuIDirectSoundBuffer8_SetMixBins, XTL::EmuIDirectSoundBuffer8_SetMixBins,