DSound 3039 Database Update (small)
- Add XAudioCalculatePitch to 4039 - Add DS_CRefCount_AddRef to 4039 - Add DS_CRefCount_Release to 4039 - Add CDirectSoundStream_Release to 4039 and 4134 - Add CDirectSound_EnableHeadphones to 4039 - Add DirectSoundUseFullHRTF to 4039 - Add CFullHRTFSource_GetCenterVolume to 4039 - Add CHRTFSource_SetFullHRTF5Channel to 4039 Added some notes as well. Verified with - [3925] Cel Damage - [3936] Silent Hill 2 - [4039] Nightcaster - [4134] Blood Omen 2
This commit is contained in:
parent
e36513de0a
commit
657a3615a7
|
@ -4309,6 +4309,38 @@ OOVPA_XREF(IDirectSound_CommitEffectData, 3911, 8,
|
|||
{ 0x16, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::EnableHeadphones
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSound_EnableHeadphones, 3911, 18,
|
||||
|
||||
XREF_CDirectSound_EnableHeadphones,
|
||||
XRefZero)
|
||||
|
||||
{ 0x00, 0x55 },
|
||||
|
||||
{ 0x25, 0x0F },
|
||||
{ 0x26, 0x95 },
|
||||
{ 0x27, 0xC2 },
|
||||
|
||||
{ 0x38, 0x81 },
|
||||
{ 0x39, 0xCB },
|
||||
{ 0x3A, 0x00 },
|
||||
{ 0x3B, 0x00 },
|
||||
{ 0x3C, 0x00 },
|
||||
{ 0x3D, 0x80 },
|
||||
|
||||
{ 0x40, 0x81 },
|
||||
{ 0x41, 0xE3 },
|
||||
{ 0x42, 0xFF },
|
||||
{ 0x43, 0xFF },
|
||||
{ 0x44, 0xFF },
|
||||
{ 0x45, 0x7F },
|
||||
|
||||
{ 0xCB, 0xC2 },
|
||||
{ 0xCC, 0x08 },
|
||||
OOVPA_END;
|
||||
#if 0 // Replaced with better OOVPA 3911 (See above)
|
||||
// ******************************************************************
|
||||
// * CDirectSound::EnableHeadphones
|
||||
// ******************************************************************
|
||||
|
@ -4324,7 +4356,7 @@ OOVPA_XREF(CDirectSound_EnableHeadphones, 3911, 7,
|
|||
{ 0x9A, 0x76 },
|
||||
{ 0xB4, 0x5B },
|
||||
OOVPA_END;
|
||||
|
||||
#endif
|
||||
// ******************************************************************
|
||||
// * IDirectSound_EnableHeadphones
|
||||
// ******************************************************************
|
||||
|
@ -5504,6 +5536,7 @@ OOVPA_END;
|
|||
// ******************************************************************
|
||||
// * IDirectSoundStream_SetI3DL2Source
|
||||
// ******************************************************************
|
||||
// Generic OOVPA as of 3911 and newer
|
||||
OOVPA_XREF(IDirectSoundStream_SetI3DL2Source, 3911, 2,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
|
|
|
@ -3110,3 +3110,209 @@ OOVPA_XREF(CDirectSoundStream_Pause, 4039, 11,
|
|||
{ 0x4D, 0xC2 },
|
||||
{ 0x4E, 0x08 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DS_CRefCount_AddRef
|
||||
// ******************************************************************
|
||||
// Generic OOVPA as of 4039 and newer
|
||||
OOVPA_XREF(DS_CRefCount_AddRef, 4039, 12,
|
||||
|
||||
XREF_DS_CRefCount_AddRef,
|
||||
XRefZero)
|
||||
|
||||
// DS_CRefCount_AddRef+0x00 : mov eax,dword ptr [esp+4]
|
||||
{ 0x00, 0x8B },
|
||||
{ 0x01, 0x44 },
|
||||
{ 0x02, 0x24 },
|
||||
{ 0x03, 0x04 },
|
||||
|
||||
|
||||
// DS_CRefCount_AddRef+0x04 : inc dword ptr [eax+4]
|
||||
{ 0x04, 0xFF },
|
||||
{ 0x05, 0x40 },
|
||||
{ 0x06, 0x04 },
|
||||
|
||||
// DS_CRefCount_AddRef+0x07 : mov eax, dword ptr [eax+4]
|
||||
{ 0x07, 0x8B },
|
||||
{ 0x08, 0x40 },
|
||||
{ 0x09, 0x04 },
|
||||
|
||||
// DS_CRefCount_AddRef+0x0A : retn 0x04
|
||||
{ 0x0A, 0xC2 },
|
||||
{ 0x0B, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DS_CRefCount_Release
|
||||
// ******************************************************************
|
||||
// Generic OOVPA as of 4039 and newer
|
||||
OOVPA_XREF(DS_CRefCount_Release, 4039, 10,
|
||||
|
||||
XREF_DS_CRefCount_Release,
|
||||
XRefZero)
|
||||
|
||||
{ 0x00, 0x8B },
|
||||
|
||||
// DS_CRefCount_Release+0x0B : dec eax
|
||||
{ 0x0B, 0x48 },
|
||||
|
||||
// DS_CRefCount_Release+0x0E : mov dword ptr [ecx+4], eax
|
||||
{ 0x0E, 0x89 },
|
||||
{ 0x0F, 0x41 },
|
||||
{ 0x10, 0x04 },
|
||||
|
||||
// DS_CRefCount_Release+0x1D : mov, dword ptr [ecx+4]
|
||||
{ 0x1D, 0x8B },
|
||||
{ 0x1E, 0x41 },
|
||||
{ 0x1F, 0x04 },
|
||||
|
||||
// DS_CRefCount_Release+0x20 : retn 0x04
|
||||
{ 0x20, 0xC2 },
|
||||
{ 0x21, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSoundStream::Release
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSoundStream_Release, 4039, 12,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x31, XREF_DS_CRefCount_Release ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x13, 0x74 },
|
||||
{ 0x20, 0xB8 },
|
||||
|
||||
{ 0x2C, 0x83 },
|
||||
{ 0x2D, 0xC0 },
|
||||
{ 0x2E, 0x04 },
|
||||
|
||||
{ 0x46, 0x8B },
|
||||
|
||||
{ 0x4A, 0xC2 },
|
||||
{ 0x4B, 0x04 },
|
||||
{ 0x4C, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CFullHRTFSource::GetCenterVolume
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CFullHRTFSource_GetCenterVolume, 4039, 9,
|
||||
|
||||
XREF_CFullHRTFSource_GetCenterVolume,
|
||||
XRefZero)
|
||||
|
||||
{ 0x00, 0x55 },
|
||||
|
||||
{ 0x22, 0xD9 },
|
||||
{ 0x63, 0xDF },
|
||||
|
||||
{ 0xCB, 0xF0 },
|
||||
{ 0xCC, 0xD8 },
|
||||
{ 0xCD, 0xFF },
|
||||
{ 0xCE, 0xFF },
|
||||
|
||||
{ 0xD1, 0xC2 },
|
||||
{ 0xD2, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CHRTFSource::SetFullHRTF5Channel
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CHRTFSource_SetFullHRTF5Channel, 4039, 9,
|
||||
|
||||
XREF_CHRTFSource_SetFullHRTF5Channel,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x38, XREF_CFullHRTFSource_GetCenterVolume ),
|
||||
|
||||
{ 0x00, 0xC7 },
|
||||
|
||||
{ 0x14, 0xC7 },
|
||||
{ 0x1E, 0xC7 },
|
||||
{ 0x28, 0xC7 },
|
||||
{ 0x32, 0xC7 },
|
||||
{ 0x3C, 0xC7 },
|
||||
{ 0x46, 0xC7 },
|
||||
{ 0x50, 0xC3 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSoundUseFullHRTF
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(DirectSoundUseFullHRTF, 4039, 8,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x09, XREF_CHRTFSource_SetFullHRTF5Channel ),
|
||||
|
||||
{ 0x06, 0x8B },
|
||||
{ 0x07, 0xF0 },
|
||||
{ 0x0D, 0x85 },
|
||||
{ 0x0E, 0xF6 },
|
||||
{ 0x11, 0x0B },
|
||||
{ 0x17, 0xFF },
|
||||
{ 0x1D, 0xC3 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * XAudioCalculatePitch
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(XAudioCalculatePitch, 4039, 11,
|
||||
|
||||
XREF_XAudioCalculatePitch,
|
||||
XRefZero)
|
||||
|
||||
// XAudioCalculatePitch+0x10 : cmp eax, 0xBB80
|
||||
{ 0x10, 0x3D },
|
||||
{ 0x11, 0x80 },
|
||||
{ 0x12, 0xBB },
|
||||
{ 0x13, 0x00 },
|
||||
|
||||
// XAudioCalculatePitch+0x19 : jmp +0x21
|
||||
{ 0x19, 0xEB },
|
||||
{ 0x1A, 0x21 },
|
||||
|
||||
// XAudioCalculatePitch+0x3C : lea ecx, [ebp-04]
|
||||
{ 0x3C, 0x8D },
|
||||
{ 0x3D, 0x4D },
|
||||
{ 0x3E, 0xFC },
|
||||
|
||||
// XAudioCalculatePitch+0x48 : retn 0x08
|
||||
{ 0x48, 0xC2 },
|
||||
{ 0x49, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSound::EnableHeadphones
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSound_EnableHeadphones, 4039, 16,
|
||||
|
||||
XREF_CDirectSound_EnableHeadphones,
|
||||
XRefZero)
|
||||
|
||||
{ 0x00, 0x55 },
|
||||
|
||||
{ 0x42, 0x0f },
|
||||
{ 0x43, 0x95 },
|
||||
{ 0x44, 0xC3 },
|
||||
|
||||
{ 0x4F, 0x0D },
|
||||
{ 0x50, 0x00 },
|
||||
{ 0x51, 0x00 },
|
||||
{ 0x52, 0x00 },
|
||||
{ 0x53, 0x80 },
|
||||
|
||||
{ 0x56, 0x25 },
|
||||
{ 0x57, 0xFF },
|
||||
{ 0x58, 0xFF },
|
||||
{ 0x59, 0xFF },
|
||||
{ 0x5A, 0x7F },
|
||||
|
||||
{ 0x7F, 0xC2 },
|
||||
{ 0x80, 0x08 },
|
||||
OOVPA_END;
|
||||
|
|
|
@ -3048,6 +3048,32 @@ OOVPA_XREF(CDirectSound_DownloadEffectsImage, 4134, 18,
|
|||
{ 0x62, 0x14 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSoundStream::Release
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSoundStream_Release, 4134, 12,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x32, XREF_DS_CRefCount_Release ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
|
||||
{ 0x2D, 0x83 },
|
||||
{ 0x2E, 0xC0 },
|
||||
{ 0x2F, 0x04 },
|
||||
|
||||
{ 0x47, 0x8B },
|
||||
|
||||
{ 0x4B, 0xC2 },
|
||||
{ 0x4C, 0x04 },
|
||||
{ 0x4D, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DSound_4134
|
||||
// ******************************************************************
|
||||
|
|
|
@ -36,15 +36,17 @@
|
|||
// Titles which did compiled with full libary
|
||||
// [revi] Title Name | Verify | Comments
|
||||
//-------------------------------------------------------------------
|
||||
// * [3925] Cel Damage | 100% | None
|
||||
// * [3925] Cel Damage | 100% | Need to add 3 missing OOVPAs, see TODO issue list.
|
||||
// * [3936] Silent Hill 2 | 100% | Need verify non-exist function is there or not
|
||||
// * [4039] Nightcaster | ??% | Need to create bunch of OOVPAs...
|
||||
// * [4134] RaceX (Demo) | 1% | Does not have full library? Need to create bunch of OOVPAs...
|
||||
// * [4134] Blood Omen 2 | 1% | Does not have full library? Need to create bunch of OOVPAs...
|
||||
|
||||
// TODO: Known DSound OOVPA issue list
|
||||
// * 3911 to 5933: Cannot make OOVPAs
|
||||
// * IDirectSound_SetCooperativeLevel (Xbox doesn't use it)
|
||||
// * IDirectSound_Compact (Xbox doesn't use it)
|
||||
// * IDirectSoundBuffer_Restore (Xbox doesn't use it)
|
||||
// * IDirectSound_SetCooperativeLevel (Xbox doesn't use it, can't make OOVPA for it)
|
||||
// * IDirectSound_Compact (Xbox doesn't use it, can't make OOVPA for it)
|
||||
// * IDirectSoundBuffer_Restore (Xbox doesn't use it, can't make OOVPA for it)
|
||||
// * IDirectSoundBuffer_Unlock (Xbox doesn't use it, however can make OOVPA; NOTE: OOVPA is registered for it)
|
||||
// * IDirectSoundStream_AddRef (Using IUnknown_AddRef)
|
||||
// * IDirectSoundStream_Release (Using IUnknown_Release)
|
||||
|
@ -74,6 +76,8 @@
|
|||
// * XAudioDownloadEffectsImage
|
||||
// * XAudioGetSpeakerConfig
|
||||
// * XAudioSetEffectData
|
||||
// * DirectSoundUseFullHRTF4Channel
|
||||
// * DirectSoundUseLightHRTF4Channel
|
||||
// * 3911 to 3936: Following separater functions has exact asm codes as whole function are...
|
||||
// * IDirectSoundStream_SetVolume & CDirectSoundStream_SetVolume
|
||||
// * IDirectSoundStream_SetPitch & CDirectSoundStream_SetPitch
|
||||
|
@ -87,6 +91,23 @@
|
|||
// * 4039 OOVPA messed up?
|
||||
// * IDirectSoundStream_SetMixBins should be IDirectSoundStream_SetHeadroom?
|
||||
// * Need to dig deeper...
|
||||
// * 3911 - Need to add:
|
||||
// * XAudioCreateAdpcmFormat
|
||||
// * XAudioCreatePcmFormat
|
||||
// * IsValidFormat
|
||||
// Not part of API, yet is a non-member function : (might be useful)
|
||||
// * GetFormatSize
|
||||
// * CopyFormat
|
||||
// * CompareFormats
|
||||
// * CalculateXboxAdpcmAlignment
|
||||
// * IsValidPcmFormat
|
||||
// * IsValidXboxAdpcmFormat
|
||||
// * CopyFormatAlloc
|
||||
// * List of internal functions are not register:
|
||||
// * CDirectSoundBuffer_Release (Is unique, however need multiple OOVPAs to register all revisions)
|
||||
// * Using XREF_DS_CRefCount_Release
|
||||
// * CDirectSound_Release (Is unique, however need multiple OOVPAs to register all revisions)
|
||||
// * Using XREF_DS_CRefCount_Release
|
||||
|
||||
|
||||
#ifndef DSOUND_OOVPA_INL
|
||||
|
@ -114,7 +135,7 @@
|
|||
// ******************************************************************
|
||||
OOVPATable DSound_OOVPAV2[] = {
|
||||
|
||||
REGISTER_OOVPAS(XAudioCalculatePitch, XREF, 3911),
|
||||
REGISTER_OOVPAS(XAudioCalculatePitch, XREF, 3911, 4039),
|
||||
REGISTER_OOVPAS(DirectSoundEnterCriticalSection, XREF, 3911),
|
||||
REGISTER_OOVPAS(CMcpxAPU_Commit3dSettings, XREF, 3911),
|
||||
REGISTER_OOVPAS(CMcpxAPU_ServiceDeferredCommandsLow, XREF, 3911),
|
||||
|
@ -157,8 +178,8 @@ OOVPATable DSound_OOVPAV2[] = {
|
|||
REGISTER_OOVPAS(CMcpxVoiceClient_SetMixBins, XREF, 3911),
|
||||
REGISTER_OOVPAS(CMcpxVoiceClient_SetPitch, XREF, 3911),
|
||||
REGISTER_OOVPAS(CMcpxVoiceClient_SetVolume, XREF, 3911, 4039, 4134),
|
||||
REGISTER_OOVPAS(DS_CRefCount_AddRef, XREF, 3911),
|
||||
REGISTER_OOVPAS(DS_CRefCount_Release, XREF, 3911),
|
||||
REGISTER_OOVPAS(DS_CRefCount_AddRef, XREF, 3911, 4039),
|
||||
REGISTER_OOVPAS(DS_CRefCount_Release, XREF, 3911, 4039),
|
||||
REGISTER_OOVPAS(CDirectSoundVoiceSettings_SetMixBins, XREF, 4039, 4134, 5344, 5558),
|
||||
REGISTER_OOVPAS(CDirectSoundVoiceSettings_SetMixBinVolumes, XREF, 4039, 4134),
|
||||
REGISTER_OOVPAS(CDirectSoundVoice_CommitDeferredSettings, XREF, 5558),
|
||||
|
@ -235,7 +256,7 @@ OOVPATable DSound_OOVPAV2[] = {
|
|||
REGISTER_OOVPAS(CDirectSoundStream_GetStatus, PATCH, 3911, 4039),
|
||||
REGISTER_OOVPAS(CDirectSoundStream_Pause, PATCH, 3911, 4039, 4361, 5558),
|
||||
REGISTER_OOVPAS(CDirectSoundStream_Process, PATCH, 3911),
|
||||
REGISTER_OOVPAS(CDirectSoundStream_Release, PATCH, 3911),
|
||||
REGISTER_OOVPAS(CDirectSoundStream_Release, PATCH, 3911, 4039, 4134),
|
||||
REGISTER_OOVPAS(CDirectSoundStream_SetAllParameters, PATCH, 3911, 4039, 4134),
|
||||
REGISTER_OOVPAS(CDirectSoundStream_SetConeAngles, PATCH, 3911, 4039),
|
||||
REGISTER_OOVPAS(CDirectSoundStream_SetConeOrientation, PATCH, 3911, 4039, 4134),
|
||||
|
@ -267,7 +288,7 @@ OOVPATable DSound_OOVPAV2[] = {
|
|||
REGISTER_OOVPAS(CDirectSound_CreateSoundStream, XREF, 3911, 4039, 4134, 5558),
|
||||
REGISTER_OOVPAS(CDirectSound_DownloadEffectsImage, XREF, 3911, 4039, 4134),
|
||||
REGISTER_OOVPAS(CDirectSound_DoWork, XREF, 3911, 4039),
|
||||
REGISTER_OOVPAS(CDirectSound_EnableHeadphones, XREF, 3911, 4627, 5233, 5344, 5558),
|
||||
REGISTER_OOVPAS(CDirectSound_EnableHeadphones, XREF, 3911, 4039, 4627, 5233, 5344, 5558),
|
||||
REGISTER_OOVPAS(CDirectSound_GetCaps, XREF, 3911, 4361),
|
||||
REGISTER_OOVPAS(CDirectSound_GetEffectData, XREF, 3911),
|
||||
REGISTER_OOVPAS(CDirectSound_GetOutputLevels, XREF, 4627, 5558),
|
||||
|
@ -380,13 +401,13 @@ OOVPATable DSound_OOVPAV2[] = {
|
|||
REGISTER_OOVPAS(DirectSoundCreateStream, PATCH, 3911, 4134, 5788),
|
||||
REGISTER_OOVPAS(DirectSoundDoWork, PATCH, 3911, 4134, 5558),
|
||||
REGISTER_OOVPAS(DirectSoundGetSampleTime, PATCH, 3911, 4361),
|
||||
REGISTER_OOVPAS(DirectSoundUseFullHRTF, PATCH, 3911, 5558),
|
||||
REGISTER_OOVPAS(DirectSoundUseFullHRTF, PATCH, 3911, 4039, 5558),
|
||||
REGISTER_OOVPAS(DirectSoundUseLightHRTF, PATCH, 3911),
|
||||
|
||||
|
||||
|
||||
REGISTER_OOVPAS(CFullHRTFSource_GetCenterVolume, XREF, 5558),
|
||||
REGISTER_OOVPAS(CHRTFSource_SetFullHRTF5Channel, XREF, 5558),
|
||||
REGISTER_OOVPAS(CFullHRTFSource_GetCenterVolume, XREF, 4039, 5558),
|
||||
REGISTER_OOVPAS(CHRTFSource_SetFullHRTF5Channel, XREF, 4039, 5558),
|
||||
|
||||
|
||||
REGISTER_OOVPAS(WaveFormat_CreateXboxAdpcmFormat, XREF, 5344),
|
||||
|
|
Loading…
Reference in New Issue