Add DSound OOVPAs

- Add CMcpxVoiceClient_GetVoiceProperties to 5344
- Add CDirectSoundVoice_GetVoiceProperties to 5344
- Add CDirectSoundBuffer_GetVoiceProperties to 5344
- Add IDirectSoundBuffer_GetVoiceProperties to 5344
- Add CDirectSoundStream_GetVoiceProperties to 5344
- Add IDirectSoundStream_GetVoiceProperties to 5344
- Add CDirectSound3DCalculator_GetVoiceData to 5344
- Add IDirectSound3DCalculator_GetVoiceData to 5344
- Add CDirectSound3DCalculator_GetPanData to 5344
- Add IDirectSound3DCalculator_GetPanData to 5344
- Add CDirectSound3DCalculator_GetMixBinVolumes to 5344
- Add IDirectSound3DCalculator_GetMixBinVolumes to 5344
- Add CDirectSound3DCalculator_Calculate3D to 5344
- Add IDirectSound3DCalculator_Calculate3D to 5344

NOTE: There are no stubs for these APIs.
This commit is contained in:
RadWolfie 2017-11-01 20:55:24 -05:00
parent 3586332346
commit 6d5c82862b
4 changed files with 397 additions and 1 deletions

View File

@ -298,6 +298,16 @@ enum XRefDataBaseOffset
XREF_CDirectSoundStream_Pause,
XREF_CMcpxStream_Pause_Ex,
XREF_CDirectSoundStream_PauseEx,
XREF_CDirectSoundVoice_GetVoiceProperties,
XREF_CMcpxVoiceClient_GetVoiceProperties,
XREF_CDirectSoundBuffer_GetVoiceProperties,
XREF_CDirectSoundStream_GetVoiceProperties,
XREF_CDirectSoundStream_Set3DVoiceData,
XREF_CDirectSoundStream_Use3DVoiceData,
XREF_CDirectSound3DCalculator_GetVoiceData,
XREF_CDirectSound3DCalculator_GetPanData,
XREF_CDirectSound3DCalculator_GetMixBinVolumes,
XREF_CDirectSound3DCalculator_Calculate3D,
// XACT
// +s
XREF_XACT_CEngine_RegisterWaveBank,

View File

@ -1392,6 +1392,344 @@ OOVPA_NO_XREF(XFileCreateMediaObjectAsync, 5344, 8)
{ 0x5E, 0x0C },
OOVPA_END;
// ******************************************************************
// * CMcpxVoiceClient_GetVoiceProperties
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(CMcpxVoiceClient_GetVoiceProperties, 5344, 14,
XREF_CMcpxVoiceClient_GetVoiceProperties,
XRefZero)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x03, 0x83 },
{ 0x06, 0x83 },
{ 0x0A, 0xF6 },
// CMcpxVoiceClient_GetVoiceProperties+0xB5 : shr esi,6
{ 0xB5, 0xC1 },
{ 0xB6, 0xEE },
{ 0xB7, 0x06 },
// CMcpxVoiceClient_GetVoiceProperties+0x102 : mov dword ptr [edi],0FFFFD8F0h
{ 0x102, 0xC7 },
{ 0x103, 0x07 },
{ 0x104, 0xF0 },
{ 0x105, 0xD8 },
{ 0x106, 0xFF },
{ 0x107, 0xFF },
// After offset 0x11C, lots of changes has occurred.
OOVPA_END;
// ******************************************************************
// * CDirectSoundVoice_GetVoiceProperties
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(CDirectSoundVoice_GetVoiceProperties, 5344, 1+7,
XREF_CDirectSoundVoice_GetVoiceProperties,
XRefOne)
XREF_ENTRY( 0x0C, XREF_CMcpxVoiceClient_GetVoiceProperties),
{ 0x00, 0x8B },
{ 0x02, 0x24 },
{ 0x06, 0x24 },
{ 0x08, 0x8B },
{ 0x0B, 0xE8 },
{ 0x10, 0xC2 },
{ 0x11, 0x08 },
OOVPA_END;
// ******************************************************************
// * CDirectSoundBuffer_GetVoiceProperties
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(CDirectSoundBuffer_GetVoiceProperties, 5344, 1+7,
XREF_CDirectSoundBuffer_GetVoiceProperties,
XRefOne)
XREF_ENTRY( 0x32, XREF_CDirectSoundVoice_GetVoiceProperties ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
{ 0x2C, 0x10 },
{ 0x30, 0x10 },
{ 0x31, 0xE8 },
{ 0x4B, 0xC2 },
{ 0x4C, 0x08 },
OOVPA_END;
// ******************************************************************
// * IDirectSoundBuffer_GetVoiceProperties
// ******************************************************************
// Generic OOVPA as of ____? and newer
// ******************************************************************
OOVPA_XREF(IDirectSoundBuffer_GetVoiceProperties, 5344, 1+7,
XRefNoSaveIndex,
XRefOne)
XREF_ENTRY( 0x15, XREF_CDirectSoundBuffer_GetVoiceProperties),
{ 0x02, 0x24 },
{ 0x06, 0x24 },
{ 0x0A, 0x83 },
{ 0x0E, 0xD9 },
{ 0x12, 0xC8 },
{ 0x19, 0xC2 },
{ 0x1A, 0x08 },
OOVPA_END;
// ******************************************************************
// * CDirectSoundStream_GetVoiceProperties
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(CDirectSoundStream_GetVoiceProperties, 5344, 1+7,
XREF_CDirectSoundStream_GetVoiceProperties,
XRefOne)
XREF_ENTRY( 0x36, XREF_CDirectSoundVoice_GetVoiceProperties ),
{ 0x00, 0x56 },
{ 0x0C, 0x00 },
{ 0x2B, 0x08 },
{ 0x30, 0x10 },
{ 0x35, 0xE8 },
{ 0x4F, 0xC2 },
{ 0x50, 0x08 },
OOVPA_END;
// ******************************************************************
// * IDirectSoundStream_GetVoiceProperties
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(IDirectSoundStream_GetVoiceProperties, 5344, 1+1,
XRefNoSaveIndex,
XRefOne)
// IDirectSoundStream_GetVoiceProperties+0x00 : jmp [CDirectSoundStream_GetVoiceProperties]
XREF_ENTRY(0x01, XREF_CDirectSoundStream_GetVoiceProperties),
// IDirectSoundStream_GetVoiceProperties+0x00 : jmp 0x........
{ 0x00, 0xE9 },
OOVPA_END;
// ******************************************************************
// * CDirectSound3DCalculator_GetVoiceData
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(CDirectSound3DCalculator_GetVoiceData, 5344, 14,
XREF_CDirectSound3DCalculator_GetVoiceData,
XRefZero)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x03, 0x83 },
// CDirectSound3DCalculator_GetVoiceData+0x2D : test eax,15200010h
{ 0x2D, 0xA9 },
{ 0x2E, 0x10 },
{ 0x2F, 0x00 },
{ 0x30, 0x20 },
{ 0x31, 0x15 },
// CDirectSound3DCalculator_GetVoiceData+0x8C : test word ptr [ebp+0Ah],4014h
{ 0x8C, 0x66 },
{ 0x8D, 0xF7 },
{ 0x8E, 0x45 },
{ 0x8F, 0x0A },
{ 0x90, 0x14 },
{ 0x91, 0x40 },
// After offset 0x131, major changes has occur.
OOVPA_END;
// ******************************************************************
// * IDirectSound3DCalculator_GetVoiceData
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(IDirectSound3DCalculator_GetVoiceData, 5344, 1+3,
XRefNoSaveIndex,
XRefOne)
// IDirectSound3DCalculator_GetVoiceData+0x04 : jmp [CDirectSound3DCalculator_GetVoiceData]
XREF_ENTRY(0x05, XREF_CDirectSound3DCalculator_GetVoiceData),
// IDirectSound3DCalculator_GetVoiceData+0x00 : push ebp
{ 0x00, 0x55 },
// IDirectSound3DCalculator_GetVoiceData+0x03 : pop ebp
{ 0x03, 0x5D },
// IDirectSound3DCalculator_GetVoiceData+0x04 : jmp 0x........
{ 0x04, 0xE9 },
OOVPA_END;
// ******************************************************************
// * CDirectSound3DCalculator_GetPanData
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(CDirectSound3DCalculator_GetPanData, 5344, 15,
XREF_CDirectSound3DCalculator_GetPanData,
XRefZero)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x03, 0x83 },
// CDirectSound3DCalculator_GetPanData+0x52 : or dword ptr [esi],4
{ 0x52, 0x83 },
{ 0x53, 0x0E },
{ 0x54, 0x04 },
// CDirectSound3DCalculator_GetPanData+0x65 : push eax; push ecx; push ecx
{ 0x65, 0x50 },
{ 0x66, 0x51 },
{ 0x67, 0x51 },
// CDirectSound3DCalculator_GetPanData+0x87 : or dword ptr [esi],8
{ 0x87, 0x83 },
{ 0x88, 0x0E },
{ 0x89, 0x08 },
// CDirectSound3DCalculator_GetPanData+0x8D : mov dword ptr [esi+18h],ecx
{ 0x8D, 0x89 },
{ 0x8E, 0x4E },
{ 0x8F, 0x18 },
// After offset 0x93, major changes has occur.
OOVPA_END;
// ******************************************************************
// * IDirectSound3DCalculator_GetPanData
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(IDirectSound3DCalculator_GetPanData, 5344, 1+7,
XRefNoSaveIndex,
XRefOne)
// IDirectSound3DCalculator_GetPanData+0x19 : call [CDirectSound3DCalculator_GetVoiceData]
XREF_ENTRY(0x1A, XREF_CDirectSound3DCalculator_GetPanData),
{ 0x00, 0xFF },
{ 0x02, 0x24 },
{ 0x06, 0x24 },
{ 0x0A, 0x24 },
{ 0x19, 0xE8 },
// IDirectSound3DCalculator_GetPanData+0x1E : retn 0x10
{ 0x1E, 0xC2 },
{ 0x1F, 0x10 },
OOVPA_END;
// ******************************************************************
// * CDirectSound3DCalculator_GetMixBinVolumes
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(CDirectSound3DCalculator_GetMixBinVolumes, 5344, 14,
XREF_CDirectSound3DCalculator_GetMixBinVolumes,
XRefZero)
{ 0x00, 0x55 },
{ 0x01, 0x8B },
{ 0x03, 0x8B },
// CDirectSound3DCalculator_GetMixBinVolumes+0x0F : mov eax,0FFFFD8F0h
{ 0x0F, 0xB8 },
{ 0x10, 0xF0 },
{ 0x11, 0xD8 },
{ 0x12, 0xFF },
{ 0x13, 0xFF },
{ 0x92, 0x04 },
{ 0x9B, 0x02 },
{ 0xA0, 0x05 },
{ 0xA5, 0x07 },
{ 0xAA, 0x09 },
{ 0xAF, 0x0A },
OOVPA_END;
// ******************************************************************
// * IDirectSound3DCalculator_GetMixBinVolumes
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(IDirectSound3DCalculator_GetMixBinVolumes, 5344, 1+1,
XRefNoSaveIndex,
XRefOne)
// IDirectSound3DCalculator_GetMixBinVolumes+0x00 : jmp [CDirectSound3DCalculator_GetMixBinVolumes]
XREF_ENTRY(0x01, XREF_CDirectSound3DCalculator_GetMixBinVolumes),
// IDirectSound3DCalculator_GetMixBinVolumes+0x00 : jmp 0x........
{ 0x00, 0xE9 },
OOVPA_END;
// ******************************************************************
// * CDirectSound3DCalculator_Calculate3D
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(CDirectSound3DCalculator_Calculate3D, 5344, 15,
XREF_CDirectSound3DCalculator_Calculate3D,
XRefZero)
{ 0x00, 0x55 },
{ 0x01, 0x8D },
{ 0x05, 0x81 },
// CDirectSound3DCalculator_Calculate3D+0x3A : test cl,40h
{ 0x3A, 0xF6 },
{ 0x3B, 0xC1 },
{ 0x3C, 0x40 },
// CDirectSound3DCalculator_Calculate3D+0xA3 : test dword ptr [ebp+6Ch],410001h
{ 0xA3, 0xF7 },
{ 0xA4, 0x45 },
{ 0xA5, 0x6C },
{ 0xA6, 0x01 },
{ 0xA7, 0x00 },
{ 0xA8, 0x41 },
{ 0xA9, 0x00 },
{ 0xD4, 0x6A },
{ 0xD5, 0x03 },
// After offset 0xEE, major changes has occur.
OOVPA_END;
// ******************************************************************
// * IDirectSound3DCalculator_Calculate3D
// ******************************************************************
// Generic OOVPA as of ____? and newer
OOVPA_XREF(IDirectSound3DCalculator_Calculate3D, 5344, 1+1,
XRefNoSaveIndex,
XRefOne)
// IDirectSound3DCalculator_Calculate3D+0x00 : jmp [CDirectSound3DCalculator_Calculate3D]
XREF_ENTRY(0x01, XREF_CDirectSound3DCalculator_Calculate3D),
// IDirectSound3DCalculator_Calculate3D+0x00 : jmp 0x........
{ 0x00, 0xE9 },
OOVPA_END;
// ******************************************************************
// * Rollback support signature(s)

View File

@ -625,7 +625,7 @@ OOVPA_END;
// ******************************************************************
OOVPA_XREF(CDirectSoundStream_Use3DVoiceData, 5558, 1+8,
XRefNoSaveIndex,
XREF_CDirectSoundStream_Use3DVoiceData,
XRefOne)
XREF_ENTRY( 0x35, XREF_CDirectSoundVoice_Use3DVoiceData ),
@ -639,3 +639,35 @@ OOVPA_XREF(CDirectSoundStream_Use3DVoiceData, 5558, 1+8,
{ 0x4D, 0xC2 },
{ 0x4E, 0x08 },
OOVPA_END;
// ******************************************************************
// * IDirectSoundStream_Set3DVoiceData
// ******************************************************************
// Generic OOVPA as of ____? and newer (note: is not introduced in 5344)
OOVPA_XREF(IDirectSoundStream_Set3DVoiceData, 5558, 1+1,
XRefNoSaveIndex,
XRefOne)
// IDirectSoundStream_Set3DVoiceData+0x00 : jmp [CDirectSoundStream_Set3DVoiceData]
XREF_ENTRY(0x01, XREF_CDirectSoundStream_Set3DVoiceData),
// IDirectSoundStream_Set3DVoiceData+0x00 : jmp 0x........
{ 0x00, 0xE9 },
OOVPA_END;
// ******************************************************************
// * IDirectSoundStream_Use3DVoiceData
// ******************************************************************
// Generic OOVPA as of ____? and newer (note: is not introduced in 5344)
OOVPA_XREF(IDirectSoundStream_Use3DVoiceData, 5558, 1+1,
XRefNoSaveIndex,
XRefOne)
// IDirectSoundStream_Use3DVoiceData+0x00 : jmp [CDirectSoundStream_Use3DVoiceData]
XREF_ENTRY(0x01, XREF_CDirectSoundStream_Use3DVoiceData),
// IDirectSoundStream_Use3DVoiceData+0x00 : jmp 0x........
{ 0x00, 0xE9 },
OOVPA_END;

View File

@ -241,6 +241,7 @@ OOVPATable DSound_OOVPAV2[] = {
REGISTER_OOVPAS(CSensaura3d_GetFullHRTFFilterPair, XREF, 3911, 3936),
REGISTER_OOVPAS(CSensaura3d_GetLiteHRTFFilterPair, XREF, 3911, 3936),
REGISTER_OOVPAS(CMcpxVoiceClient_Commit3dSettings, XREF, 3911),
REGISTER_OOVPAS(CMcpxVoiceClient_GetVoiceProperties, XREF, 5344),
REGISTER_OOVPAS(CMcpxVoiceClient_Set3dConeOrientation, XREF, 3911),
REGISTER_OOVPAS(CMcpxVoiceClient_Set3dConeOutsideVolume, XREF, 3911),
REGISTER_OOVPAS(CMcpxVoiceClient_Set3dMaxDistance, XREF, 3911),
@ -261,6 +262,7 @@ OOVPATable DSound_OOVPAV2[] = {
REGISTER_OOVPAS(CDirectSoundVoiceSettings_SetMixBins, XREF, 4039, 4134, 5344, 5455),
REGISTER_OOVPAS(CDirectSoundVoiceSettings_SetMixBinVolumes, XREF, 4039, 4134),
REGISTER_OOVPAS(CDirectSoundVoice_CommitDeferredSettings, XREF, 5455),
REGISTER_OOVPAS(CDirectSoundVoice_GetVoiceProperties, XREF, 5344),
REGISTER_OOVPAS(CDirectSoundVoice_SetAllParameters, XREF, 3911, 4039, 4134, 5344, 5558),
REGISTER_OOVPAS(CDirectSoundVoice_SetConeAngles, XREF, 3911, 4039, 4134, 5344),
REGISTER_OOVPAS(CDirectSoundVoice_SetConeOrientation, XREF, 3911, 4039, 4134, 5344),
@ -287,8 +289,13 @@ OOVPATable DSound_OOVPAV2[] = {
REGISTER_OOVPAS(CDirectSoundVoice_SetVelocity, XREF, 3911, 4039, 4134, 5344),
REGISTER_OOVPAS(CDirectSoundVoice_SetVolume, XREF, 3911, 4039, 4134),
REGISTER_OOVPAS(CDirectSoundVoice_Use3DVoiceData, XREF, 5558),
REGISTER_OOVPAS(CDirectSound3DCalculator_Calculate3D, XREF, 5344),
REGISTER_OOVPAS(CDirectSound3DCalculator_GetMixBinVolumes, XREF, 5344),
REGISTER_OOVPAS(CDirectSound3DCalculator_GetPanData, XREF, 5344),
REGISTER_OOVPAS(CDirectSound3DCalculator_GetVoiceData, XREF, 5344),
REGISTER_OOVPAS(CDirectSoundBuffer_GetCurrentPosition, XREF, 3911, 4039, 4134),
REGISTER_OOVPAS(CDirectSoundBuffer_GetStatus, XREF, 3911, 4039, 4134),
REGISTER_OOVPAS(CDirectSoundBuffer_GetVoiceProperties, PATCH, 5344),
REGISTER_OOVPAS(CDirectSoundBuffer_Lock, XREF, 3911, 4039, 4134),
REGISTER_OOVPAS(CDirectSoundBuffer_Pause, XREF, 4928),
REGISTER_OOVPAS(CDirectSoundBuffer_PauseEx, XREF, 5344),
@ -333,6 +340,7 @@ OOVPATable DSound_OOVPAV2[] = {
REGISTER_OOVPAS(CDirectSoundStream_FlushEx, XREF, 4627, 5233),
REGISTER_OOVPAS(CDirectSoundStream_GetInfo, PATCH, 3911, 4039, 4134),
REGISTER_OOVPAS(CDirectSoundStream_GetStatus, PATCH, 3911, 4039, 4134),
REGISTER_OOVPAS(CDirectSoundStream_GetVoiceProperties, PATCH, 5344),
REGISTER_OOVPAS(CDirectSoundStream_Pause, PATCH, 3911, 4039, 4134 /*, 4361, 5558*/),
REGISTER_OOVPAS(CDirectSoundStream_PauseEx, PATCH, 5344),
REGISTER_OOVPAS(CDirectSoundStream_Process, PATCH, 3911, 4039, 4134),
@ -388,9 +396,14 @@ OOVPATable DSound_OOVPAV2[] = {
REGISTER_OOVPAS(CDirectSound_SetRolloffFactor, XREF, 3911, 4039, 4134, 5344),
REGISTER_OOVPAS(CDirectSound_SetVelocity, XREF, 3911, 4039, 4134, 4627, 5344),
REGISTER_OOVPAS(CDirectSound_SynchPlayback, XREF, 5233, 5344),
REGISTER_OOVPAS(IDirectSound3DCalculator_Calculate3D, UNPATCHED, 5344), // jmp only
REGISTER_OOVPAS(IDirectSound3DCalculator_GetMixBinVolumes, UNPATCHED, 5344), // jmp only
REGISTER_OOVPAS(IDirectSound3DCalculator_GetPanData, PATCH, 5344),
REGISTER_OOVPAS(IDirectSound3DCalculator_GetVoiceData, PATCH, 5344),
REGISTER_OOVPAS(IDirectSoundBuffer_AddRef, PATCH, 3911),
REGISTER_OOVPAS(IDirectSoundBuffer_GetCurrentPosition, PATCH, 3911),
REGISTER_OOVPAS(IDirectSoundBuffer_GetStatus, PATCH, 3911),
REGISTER_OOVPAS(IDirectSoundBuffer_GetVoiceProperties, PATCH, 5344),
REGISTER_OOVPAS(IDirectSoundBuffer_Lock, PATCH, 3911),
REGISTER_OOVPAS(IDirectSoundBuffer_Pause, PATCH, 4928),
REGISTER_OOVPAS(IDirectSoundBuffer_PauseEx, PATCH, 5344),
@ -432,9 +445,11 @@ OOVPATable DSound_OOVPAV2[] = {
REGISTER_OOVPAS(IDirectSoundBuffer_StopEx, PATCH, 3911),
REGISTER_OOVPAS(IDirectSoundBuffer_Unlock, PATCH, 3911),
REGISTER_OOVPAS(IDirectSoundBuffer_Use3DVoiceData, PATCH, 5558),
REGISTER_OOVPAS(IDirectSoundStream_GetVoiceProperties, UNPATCHED, 5344), // jmp only
REGISTER_OOVPAS(IDirectSoundStream_FlushEx, PATCH, 4627),
REGISTER_OOVPAS(IDirectSoundStream_Pause, UNPATCHED, 3911), //NOTE: 3911 only perform a jmp, later XDK revision may need a patch?
REGISTER_OOVPAS(IDirectSoundStream_PauseEx, PATCH, 5344),
REGISTER_OOVPAS(IDirectSoundStream_Set3DVoiceData, UNPATCHED, 5558), // jmp only
REGISTER_OOVPAS(IDirectSoundStream_SetAllParameters, UNPATCHED, 3911), //NOTE: 3911 only perform a jmp, later XDK revision may need a patch?
REGISTER_OOVPAS(IDirectSoundStream_SetConeAngles, UNPATCHED, 3911), //NOTE: 3911 only perform a jmp, later XDK revision may need a patch?
REGISTER_OOVPAS(IDirectSoundStream_SetConeOrientation, UNPATCHED, 3911),
@ -460,6 +475,7 @@ OOVPATable DSound_OOVPAV2[] = {
REGISTER_OOVPAS(IDirectSoundStream_SetRolloffFactor, UNPATCHED, 4134),
REGISTER_OOVPAS(IDirectSoundStream_SetVelocity, UNPATCHED, 3911),
REGISTER_OOVPAS(IDirectSoundStream_SetVolume, PATCH, 3911, 4039),
REGISTER_OOVPAS(IDirectSoundStream_Use3DVoiceData, UNPATCHED, 5558), // jmp only
REGISTER_OOVPAS(IDirectSound_AddRef, PATCH, 3911),
REGISTER_OOVPAS(IDirectSound_CommitDeferredSettings, PATCH, 3911),
REGISTER_OOVPAS(IDirectSound_CommitEffectData, PATCH, 3911),