halo..
This commit is contained in:
parent
93b0ea7650
commit
80e6090f74
|
@ -229,6 +229,25 @@ HRESULT WINAPI EmuIDirectSound8_DownloadEffectsImage
|
|||
PVOID *ppImageDesc // TODO: Use this param
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSoundStream_SetHeadroom
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI EmuIDirectSoundStream_SetHeadroom
|
||||
(
|
||||
PVOID pThis,
|
||||
DWORD dwHeadroom
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSoundStream_SetI3DL2Source
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI EmuIDirectSoundStream_SetI3DL2Source
|
||||
(
|
||||
PVOID pThis,
|
||||
PVOID pds3db,
|
||||
DWORD dwApply
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSound8_SetOrientation
|
||||
// ******************************************************************
|
||||
|
|
|
@ -124,6 +124,9 @@ enum XRefDataBaseOffset
|
|||
XREF_DSSETVELOCITYB,
|
||||
XREF_DSSETALLPARAMETERSA,
|
||||
XREF_DSSETALLPARAMETERSB,
|
||||
XREF_DSSETHEADROOMA,
|
||||
XREF_DSSETI3DL2SOURCE1A,
|
||||
XREF_DSSETI3DL2SOURCE2A,
|
||||
XREF_GET2DSURFACEDESCB
|
||||
};
|
||||
|
||||
|
|
|
@ -63,6 +63,213 @@ SOOVPA<9> DirectSoundCreate_1_0_3936 =
|
|||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::CreateSoundStream
|
||||
// ******************************************************************
|
||||
SOOVPA<16> CDirectSound_CreateSoundStream_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
16, // Count == 16
|
||||
|
||||
XREF_DSCREATESOUNDSTREAM, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// CDirectSound_CreateSoundStream+0x2D : and esi, 0x7FF8FFF2
|
||||
{ 0x2D, 0x81 }, // (Offset,Value)-Pair #1
|
||||
{ 0x2E, 0xE6 }, // (Offset,Value)-Pair #2
|
||||
{ 0x2F, 0xF2 }, // (Offset,Value)-Pair #3
|
||||
{ 0x30, 0xFF }, // (Offset,Value)-Pair #4
|
||||
{ 0x31, 0xF8 }, // (Offset,Value)-Pair #5
|
||||
{ 0x32, 0x7F }, // (Offset,Value)-Pair #6
|
||||
|
||||
// CDirectSound_CreateSoundStream+0x33 : add esi, 0x8007000E
|
||||
{ 0x33, 0x81 }, // (Offset,Value)-Pair #7
|
||||
{ 0x34, 0xC6 }, // (Offset,Value)-Pair #8
|
||||
{ 0x35, 0x0E }, // (Offset,Value)-Pair #9
|
||||
{ 0x36, 0x00 }, // (Offset,Value)-Pair #10
|
||||
{ 0x37, 0x07 }, // (Offset,Value)-Pair #11
|
||||
{ 0x38, 0x80 }, // (Offset,Value)-Pair #12
|
||||
|
||||
// CDirectSound_CreateSoundStream+0x3C : js +0x16
|
||||
{ 0x3C, 0x78 }, // (Offset,Value)-Pair #13
|
||||
{ 0x3D, 0x16 }, // (Offset,Value)-Pair #14
|
||||
|
||||
// CDirectSound_CreateSoundStream+0x72 : retn 0x10
|
||||
{ 0x72, 0xC2 }, // (Offset,Value)-Pair #15
|
||||
{ 0x73, 0x10 }, // (Offset,Value)-Pair #16
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSoundCreateStream
|
||||
// ******************************************************************
|
||||
SOOVPA<10> DirectSoundCreateStream_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
-1, // XRef Not Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
{
|
||||
// DirectSoundCreateStream+0x1D : call [CDirectSound::CreateSoundStream]
|
||||
{ 0x1D, XREF_DSCREATESOUNDSTREAM }, // (Offset,Value)-Pair #1
|
||||
|
||||
// DirectSoundCreateStream+0x04 : mov eax, [esp+0x08]
|
||||
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x44 }, // (Offset,Value)-Pair #3
|
||||
{ 0x06, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x08 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// DirectSoundCreateStream+0x12 : and eax, 0xFFFFFFF8
|
||||
{ 0x12, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x13, 0xC0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x14, 0xF8 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// DirectSoundCreateStream+0x21 : retn 0x10
|
||||
{ 0x21, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x22, 0x10 }, // (Offset,Value)-Pair #10
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundStream_SetI3DL2SourceA
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirectSoundStream_SetI3DL2SourceA_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
XREF_DSSETI3DL2SOURCE1A, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirectSoundStream_SetI3DL2SourceA+0x07 : call [addr]
|
||||
{ 0x07, 0xE8 }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSoundStream_SetI3DL2SourceA+0x16 : push 0x24
|
||||
{ 0x16, 0x6A }, // (Offset,Value)-Pair #2
|
||||
{ 0x17, 0x24 }, // (Offset,Value)-Pair #3
|
||||
|
||||
// IDirectSoundStream_SetI3DL2SourceA+0x23 : shl ebx, cl
|
||||
{ 0x23, 0xD3 }, // (Offset,Value)-Pair #4
|
||||
{ 0x24, 0xE3 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirectSoundStream_SetI3DL2SourceA+0x4A : cmp [ebp-0x04], 0x20
|
||||
{ 0x4A, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x4B, 0x7D }, // (Offset,Value)-Pair #7
|
||||
{ 0x4C, 0xFC }, // (Offset,Value)-Pair #8
|
||||
{ 0x4D, 0x20 }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSoundStream_SetI3DL2SourceA+0x71 : retn 0x0C
|
||||
{ 0x71, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x72, 0x0C }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundStream_SetI3DL2Source
|
||||
// ******************************************************************
|
||||
SOOVPA<10> IDirectSoundStream_SetI3DL2Source_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
-1, // XRef Not Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
// TODO: Tentative! (most likely incorrect, actually!)
|
||||
|
||||
{
|
||||
// IDirectSoundStream_SetI3DL2SourceB+0x11 : call [IDirectSoundStream_SetI3DL2SourceA]
|
||||
{ 0x11, XREF_DSSETI3DL2SOURCE1A }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSoundStream_SetI3DL2SourceB+0x04 : mov eax, [esp+0x08]
|
||||
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x44 }, // (Offset,Value)-Pair #3
|
||||
{ 0x06, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x08 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirectSoundStream_SetI3DL2SourceB+0x0C : add eax, 0x04
|
||||
{ 0x0C, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x0D, 0xC0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x0E, 0x04 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// IDirectSoundStream_SetI3DL2SourceB+0x15 : retn 0x0C
|
||||
{ 0x15, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x16, 0x0C }, // (Offset,Value)-Pair #10
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundStream_SetHeadroomA
|
||||
// ******************************************************************
|
||||
SOOVPA<11> IDirectSoundStream_SetHeadroomA_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
11, // Count == 11
|
||||
|
||||
XREF_DSSETHEADROOMA, // XRef Is Saved
|
||||
0, // XRef Not Used
|
||||
|
||||
{
|
||||
// IDirectSoundStream_SetHeadroomA+0x09 : call [addr]
|
||||
{ 0x09, 0xE8 }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSoundStream_SetHeadroomA+0x17 : cmp edi, [ecx+0x20]
|
||||
{ 0x17, 0x3B }, // (Offset,Value)-Pair #2
|
||||
{ 0x18, 0x79 }, // (Offset,Value)-Pair #3
|
||||
{ 0x19, 0x20 }, // (Offset,Value)-Pair #4
|
||||
|
||||
// IDirectSoundStream_SetHeadroomA+0x1D : jz +0x1F
|
||||
{ 0x1D, 0x74 }, // (Offset,Value)-Pair #5
|
||||
{ 0x1E, 0x1F }, // (Offset,Value)-Pair #6
|
||||
|
||||
// IDirectSoundStream_SetHeadroomA+0x3E : cmp [ebp-0x04], 0
|
||||
{ 0x3E, 0x83 }, // (Offset,Value)-Pair #7
|
||||
{ 0x3F, 0x7D }, // (Offset,Value)-Pair #8
|
||||
{ 0x40, 0xFC }, // (Offset,Value)-Pair #9
|
||||
|
||||
// IDirectSoundStream_SetHeadroomA+0x55 : retn 0x08
|
||||
{ 0x55, 0xC2 }, // (Offset,Value)-Pair #10
|
||||
{ 0x56, 0x08 }, // (Offset,Value)-Pair #11
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundStream_SetHeadroom
|
||||
// ******************************************************************
|
||||
SOOVPA<10> IDirectSoundStream_SetHeadroom_1_0_3936 =
|
||||
{
|
||||
0, // Large == 0
|
||||
10, // Count == 10
|
||||
|
||||
-1, // XRef Not Saved
|
||||
1, // XRef Is Used
|
||||
|
||||
// TODO: Tentative! (most likely incorrect, actually!)
|
||||
{
|
||||
// IDirectSoundStream_SetHeadroomB+0x0D : call [IDirectSoundStream_SetHeadroomA]
|
||||
{ 0x0D, XREF_DSSETHEADROOMA }, // (Offset,Value)-Pair #1
|
||||
|
||||
// IDirectSoundStream_SetHeadroomB+0x04 : mov eax, [esp+0x08]
|
||||
{ 0x04, 0x8B }, // (Offset,Value)-Pair #2
|
||||
{ 0x05, 0x44 }, // (Offset,Value)-Pair #3
|
||||
{ 0x06, 0x24 }, // (Offset,Value)-Pair #4
|
||||
{ 0x07, 0x08 }, // (Offset,Value)-Pair #5
|
||||
|
||||
// IDirectSoundStream_SetHeadroomB+0x08 : add eax, 0x04
|
||||
{ 0x08, 0x83 }, // (Offset,Value)-Pair #6
|
||||
{ 0x09, 0xC0 }, // (Offset,Value)-Pair #7
|
||||
{ 0x0A, 0x04 }, // (Offset,Value)-Pair #8
|
||||
|
||||
// IDirectSoundStream_SetHeadroomB+0x11 : retn 0x08
|
||||
{ 0x11, 0xC2 }, // (Offset,Value)-Pair #9
|
||||
{ 0x12, 0x08 }, // (Offset,Value)-Pair #10
|
||||
}
|
||||
};
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSound8_SetOrientation
|
||||
// ******************************************************************
|
||||
|
@ -754,6 +961,60 @@ OOVPATable DSound_1_0_3936[] =
|
|||
"EmuDirectSoundCreate"
|
||||
#endif
|
||||
},
|
||||
// CDirectSound_CreateSoundStream
|
||||
{
|
||||
(OOVPA*)&CDirectSound_CreateSoundStream_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"CDirectSound::CreateSoundStream (XREF)"
|
||||
#endif
|
||||
},
|
||||
// DirectSoundCreateStream
|
||||
{
|
||||
(OOVPA*)&DirectSoundCreateStream_1_0_3936,
|
||||
|
||||
XTL::EmuDirectSoundCreateStream,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuDirectSoundCreateStream"
|
||||
#endif
|
||||
},
|
||||
// IDirectSoundStream::SetI3DL2SourceA (XREF)
|
||||
{
|
||||
(OOVPA*)&IDirectSoundStream_SetI3DL2SourceA_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"IDirectSoundStream_SetI3DL2SourceA (XRef)"
|
||||
#endif
|
||||
},
|
||||
// IDirectSoundStream::SetI3DL2Source
|
||||
{
|
||||
(OOVPA*)&IDirectSoundStream_SetI3DL2Source_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSoundStream_SetI3DL2Source,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSoundStream_SetI3DL2Source"
|
||||
#endif
|
||||
},
|
||||
// IDirectSoundStream::SetHeadroomA (XREF)
|
||||
{
|
||||
(OOVPA*)&IDirectSoundStream_SetHeadroomA_1_0_3936, 0,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"IDirectSoundStream_SetHeadroomA (XRef)"
|
||||
#endif
|
||||
},
|
||||
// IDirectSoundStream::SetHeadroom
|
||||
{
|
||||
(OOVPA*)&IDirectSoundStream_SetHeadroom_1_0_3936,
|
||||
|
||||
XTL::EmuIDirectSoundStream_SetHeadroom,
|
||||
|
||||
#ifdef _DEBUG_TRACE
|
||||
"EmuIDirectSoundStream_SetHeadroom"
|
||||
#endif
|
||||
},
|
||||
// IDirectSound8::SetOrientation
|
||||
{
|
||||
(OOVPA*)&IDirectSound8_SetOrientation_1_0_3936,
|
||||
|
|
|
@ -473,7 +473,72 @@ HRESULT WINAPI XTL::EmuIDirectSound8_DownloadEffectsImage
|
|||
#endif
|
||||
|
||||
// TODO: Actually implement this
|
||||
printf("*Note* EmuIDirectSound8_DownloadEffectsImage is being ignored\n");
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSoundStream_SetHeadroom
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI XTL::EmuIDirectSoundStream_SetHeadroom
|
||||
(
|
||||
PVOID pThis,
|
||||
DWORD dwHeadroom
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuDSound (0x%X): EmuIDirectSoundStream_SetHeadroom\n"
|
||||
"(\n"
|
||||
" pThis : 0x%.08X\n"
|
||||
" dwHeadroom : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), pThis, dwHeadroom);
|
||||
}
|
||||
#endif
|
||||
|
||||
// TODO: Actually implement this
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * func: EmuIDirectSoundStream_SetI3DL2Source
|
||||
// ******************************************************************
|
||||
HRESULT WINAPI XTL::EmuIDirectSoundStream_SetI3DL2Source
|
||||
(
|
||||
PVOID pThis,
|
||||
PVOID pds3db,
|
||||
DWORD dwApply
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
// ******************************************************************
|
||||
// * debug trace
|
||||
// ******************************************************************
|
||||
#ifdef _DEBUG_TRACE
|
||||
{
|
||||
printf("EmuDSound (0x%X): EmuIDirectSoundStream_SetI3DL2Source\n"
|
||||
"(\n"
|
||||
" pThis : 0x%.08X\n"
|
||||
" pds3db : 0x%.08X\n"
|
||||
" dwApply : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), pThis, pds3db, dwApply);
|
||||
}
|
||||
#endif
|
||||
|
||||
// TODO: Actually implement this
|
||||
|
||||
EmuSwapFS(); // XBox FS
|
||||
|
||||
|
|
|
@ -228,6 +228,9 @@ extern uint32 XRefDataBase[] =
|
|||
-1, // XREF_DSSETVELOCITYB
|
||||
-1, // XREF_DSSETALLPARAMETERSA
|
||||
-1, // XREF_DSSETALLPARAMETERSB
|
||||
-1, // XREF_DSSETHEADROOMA
|
||||
-1, // XREF_DSSETI3DL2SOURCE1A (Stream)
|
||||
-1, // XREF_DSSETI3DL2SOURCE2A (Buffer)
|
||||
-1, // XREF_GET2DSURFACEDESCB
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue