From 8bc426be7b6480af69b8c83cdbf75cb79f75afea Mon Sep 17 00:00:00 2001 From: jarupxx Date: Sun, 3 Sep 2017 21:32:59 +0900 Subject: [PATCH] Added SetPitch (4134-5849) The following functions support 4134 to 5849 - CDirectSoundVoice_SetPitch - CDirectSoundBuffer_SetPitch - IDirectSoundBuffer_SetPitch - CDirectSoundStream_SetPitch --- src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl | 45 ++++++++++++++++++++ src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl | 4 ++ src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl | 4 ++ src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl | 13 ++++-- src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl | 6 +-- src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl | 4 ++ src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl | 5 ++- src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl | 4 ++ src/CxbxKrnl/HLEDataBase/DSound.1.0.5788.inl | 6 +-- src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl | 6 +-- src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl | 6 +-- 11 files changed, 85 insertions(+), 18 deletions(-) diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl index 6c87616ae..cdc53f98a 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl @@ -2429,6 +2429,48 @@ OOVPA_XREF(CDirectSoundVoice_SetPitch, 4134, 6, OOVPA_END; #endif +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetPitch +// ****************************************************************** +OOVPA_XREF(CDirectSoundBuffer_SetPitch, 4134, 8, + + XREF_DSBUFFERSETPITCHA, + XRefOne) + + XREF_ENTRY( 0x32, XREF_DSBUFFERSETPITCHB ), + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, +OOVPA_END; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetPitch +// ****************************************************************** +OOVPA_XREF(CDirectSoundStream_SetPitch, 4134, 12, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x36, XREF_DSBUFFERSETPITCHB ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + { 0x4F, 0xC2 }, + { 0x50, 0x08 }, + { 0x51, 0x00 }, +OOVPA_END; + // ****************************************************************** // * CDirectSoundBuffer::SetVolume // ****************************************************************** @@ -2866,6 +2908,9 @@ OOVPATable DSound_4134[] = { REGISTER_OOVPA(IDirectSoundBuffer_SetFilter, 4134, PATCH), REGISTER_OOVPA(CDirectSound_SetVelocity, 4134, XREF), REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), REGISTER_OOVPA(CDirectSoundVoiceSettings_SetMixBinVolumes, 4134, XREF), REGISTER_OOVPA(CDirectSoundVoice_SetMixBinVolumes, 4134, XREF), REGISTER_OOVPA(CDirectSoundBuffer_SetMixBinVolumes, 4134, XREF), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl index a49e0a327..73e6beb44 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl @@ -792,6 +792,10 @@ OOVPATable DSound_4361[] = { REGISTER_OOVPA(IDirectSoundBuffer_SetFormat, 4242, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetFormat, 4242, PATCH), REGISTER_OOVPA(IDirectSoundBuffer_Unlock, 3936, PATCH), + REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl index 33b03af68..64c9598c9 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl @@ -162,6 +162,10 @@ OOVPATable DSound_4432[] = { REGISTER_OOVPA(IDirectSoundBuffer_Unlock, 3936, PATCH), REGISTER_OOVPA(CDirectSound_GetCaps, 4361, XREF), REGISTER_OOVPA(IDirectSound_GetCaps, 3936, PATCH), + REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl index 6dda1c2e0..58143cb3c 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl @@ -961,6 +961,7 @@ OOVPA_XREF(CDirectSoundStream_SetFilter, 4627, 8, { 0x4B, 0x8B }, OOVPA_END; +#if 0 // Moved to 4134 // ****************************************************************** // * DirectSound::CDirectSoundBuffer::SetPitch // ****************************************************************** @@ -979,7 +980,8 @@ OOVPA_XREF(CDirectSoundBuffer_SetPitch, 4627, 8, { 0x3A, 0x74 }, { 0x47, 0x8B }, OOVPA_END; - +#endif +#if 0 // No longer used, replaced by generic 3936 version // ****************************************************************** // * IDirectSoundBuffer_SetPitch // ****************************************************************** @@ -998,6 +1000,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetPitch, 4627, 8, { 0x19, 0xC2 }, { 0x1A, 0x08 }, OOVPA_END; +#endif // ****************************************************************** // * DirectSound::CDirectSoundVoice::SetHeadroom @@ -1375,6 +1378,7 @@ OOVPA_XREF(CDirectSoundStream_SetLFO, 4627, 10, { 0x50, 0x08 }, OOVPA_END; +#if 0 // Moved to 4134 // ****************************************************************** // * DirectSound::CDirectSoundStream::SetPitch // ****************************************************************** @@ -1397,6 +1401,7 @@ OOVPA_XREF(CDirectSoundStream_SetPitch, 4627, 12, { 0x50, 0x08 }, { 0x51, 0x00 }, OOVPA_END; +#endif // ****************************************************************** // * CDirectSoundVoice::SetDistanceFactor @@ -1622,8 +1627,9 @@ OOVPATable DSound_4627[] = { REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 4361, PATCH), REGISTER_OOVPA(CDirectSound_SetVelocity, 4134, XREF), REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), - REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4627, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), REGISTER_OOVPA(CDirectSoundVoice_SetHeadroom, 4627, XREF), REGISTER_OOVPA(CDirectSoundStream_SetHeadroom, 4627, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetOutputBuffer, 4627, XREF), @@ -1643,7 +1649,6 @@ OOVPATable DSound_4627[] = { REGISTER_OOVPA(CDirectSoundBuffer_SetLFO, 4627, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetLFO, 4627, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetLFO, 4627, PATCH), - REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4627, PATCH), REGISTER_OOVPA(IDirectSoundBuffer_Unlock, 3936, PATCH), REGISTER_OOVPA(CDirectSound_GetCaps, 4361, XREF), REGISTER_OOVPA(IDirectSound_GetCaps, 3936, PATCH), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl index 5b3b93e7a..c59e1bb1d 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl @@ -223,8 +223,9 @@ OOVPATable DSound_5028[] = { REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 4361, PATCH), REGISTER_OOVPA(CDirectSound_SetVelocity, 4134, XREF), REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), - REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4627, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), REGISTER_OOVPA(CDirectSoundVoice_SetHeadroom, 4627, XREF), REGISTER_OOVPA(CDirectSoundStream_SetHeadroom, 4627, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetOutputBuffer, 4627, XREF), @@ -244,7 +245,6 @@ OOVPATable DSound_5028[] = { REGISTER_OOVPA(CDirectSoundBuffer_SetLFO, 4627, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetLFO, 4627, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetLFO, 4627, PATCH), - REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4627, PATCH), REGISTER_OOVPA(IDirectSoundBuffer_Unlock, 3936, PATCH), REGISTER_OOVPA(CDirectSound_GetCaps, 4361, XREF), REGISTER_OOVPA(IDirectSound_GetCaps, 3936, PATCH), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl index 0760178e5..075c3f886 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl @@ -529,6 +529,10 @@ OOVPATable DSound_5233[] = { REGISTER_OOVPA(IDirectSoundBuffer_Unlock, 3936, PATCH), REGISTER_OOVPA(CDirectSound_GetCaps, 4361, XREF), REGISTER_OOVPA(IDirectSound_GetCaps, 3936, PATCH), + REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl index 4934f5ce1..c6110af04 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl @@ -984,8 +984,9 @@ OOVPATable DSound_5344[] = { REGISTER_OOVPA(CDirectSoundBuffer_SetCurrentPosition, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetCurrentPosition, 4134, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), - REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4627, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), REGISTER_OOVPA(CDirectSound_SetMixBinHeadroom, 4627, XREF), REGISTER_OOVPA(IDirectSound_SetMixBinHeadroom, 4627, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetHeadroom, 4627, XREF), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl index 10461d775..42ddaf560 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl @@ -1783,6 +1783,10 @@ OOVPATable DSound_5558[] = { REGISTER_OOVPA(IDirectSoundBuffer_SetNotificationPositions, 4627, PATCH), REGISTER_OOVPA(CDirectSound_GetCaps, 4361, XREF), REGISTER_OOVPA(IDirectSound_GetCaps, 3936, PATCH), + REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5788.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5788.inl index 0bd2b7271..86ada79ec 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5788.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5788.inl @@ -645,8 +645,9 @@ OOVPATable DSound_5788[] = { REGISTER_OOVPA(CDirectSound_SetDopplerFactor, 5788, XREF), REGISTER_OOVPA(IDirectSound_SetDopplerFactor, 4134, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), - REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4627, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4134, XREF), REGISTER_OOVPA(CDirectSoundVoice_SetVolume, 5233, XREF), REGISTER_OOVPA(CDirectSoundBuffer_SetVolume, 5233, XREF), @@ -691,7 +692,6 @@ OOVPATable DSound_5788[] = { REGISTER_OOVPA(WaveFormat_CreateXboxAdpcmFormat, 5344, XREF), REGISTER_OOVPA(XAudioCreateAdpcmFormat, 5344, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetFormat, 4242, PATCH), - REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4627, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetHeadroom, 5558, PATCH), REGISTER_OOVPA(CDirectSound_CreateSoundStream, 5558, XREF), REGISTER_OOVPA(IDirectSound_CreateSoundStream, 5558, PATCH), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl index 308f48536..aed8f7dce 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl @@ -166,8 +166,9 @@ OOVPATable DSound_5849[] = { REGISTER_OOVPA(CDirectSound_SetDopplerFactor, 5788, XREF), REGISTER_OOVPA(IDirectSound_SetDopplerFactor, 4134, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetPitch, 4039, XREF), - REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4627, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH), + REGISTER_OOVPA(CDirectSoundBuffer_SetPitch, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 3936, XREF), + REGISTER_OOVPA(CDirectSoundStream_SetPitch, 4134, XREF), REGISTER_OOVPA(CMcpxBuffer_Play2, 4361, XREF), REGISTER_OOVPA(CDirectSoundBuffer_PlayEx, 5788, XREF), REGISTER_OOVPA(IDirectSoundBuffer_PlayEx, 3936, PATCH), @@ -201,7 +202,6 @@ OOVPATable DSound_5849[] = { REGISTER_OOVPA(CMemoryManager_PoolAlloc, 5788, XREF), REGISTER_OOVPA(XFileCreateMediaObjectAsync, 5788, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetFormat, 4242, PATCH), - REGISTER_OOVPA(CDirectSoundStream_SetPitch, 5849, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetHeadroom, 5558, PATCH), REGISTER_OOVPA(CMcpxBuffer_Play2, 4361, XREF), REGISTER_OOVPA(CDirectSoundBuffer_Play, 5788, XREF), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl b/src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl index d52f74045..067eb62d8 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl @@ -82,7 +82,7 @@ OOVPATable DSound_OOVPAV2[] = { REGISTER_OOVPAS(CDirectSoundBuffer_SetMode, XREF, 4134, 5233), REGISTER_OOVPAS(CDirectSoundBuffer_SetNotificationPositions, XREF, 3936, 4627), // Uncommenting these fixes dashboard 4920 (from 4627 comment) REGISTER_OOVPAS(CDirectSoundBuffer_SetOutputBuffer, XREF, 4627), - REGISTER_OOVPAS(CDirectSoundBuffer_SetPitch, XREF, 4039, 4627), + REGISTER_OOVPAS(CDirectSoundBuffer_SetPitch, XREF, 4039, 4134), REGISTER_OOVPAS(CDirectSoundBuffer_SetPlayRegion, XREF, 4361, 5558), REGISTER_OOVPAS(CDirectSoundBuffer_SetPosition, XREF, 3936, 4134, 5558), REGISTER_OOVPAS(CDirectSoundBuffer_SetRolloffCurve, XREF, 4627), @@ -127,7 +127,7 @@ OOVPATable DSound_OOVPAV2[] = { REGISTER_OOVPAS(CDirectSoundStream_SetMixBinVolumes2, PATCH, 4134, 5788), //TODO: What's the difference from this and above? REGISTER_OOVPAS(CDirectSoundStream_SetMode, PATCH, 3936, 4134), REGISTER_OOVPAS(CDirectSoundStream_SetOutputBuffer, PATCH, 4627), - REGISTER_OOVPAS(CDirectSoundStream_SetPitch, PATCH, 4627, 5849), + REGISTER_OOVPAS(CDirectSoundStream_SetPitch, PATCH, 4134), REGISTER_OOVPAS(CDirectSoundStream_SetPosition, PATCH, 3936, 4134), REGISTER_OOVPAS(CDirectSoundStream_SetPositionA, XREF, 3936), REGISTER_OOVPAS(CDirectSoundStream_SetPositionB, XREF, 3936), @@ -270,7 +270,7 @@ OOVPATable DSound_OOVPAV2[] = { REGISTER_OOVPAS(IDirectSoundBuffer_SetMode, PATCH, 3936, 4134, 5233), REGISTER_OOVPAS(IDirectSoundBuffer_SetNotificationPositions, PATCH, 3936, 4627), REGISTER_OOVPAS(IDirectSoundBuffer_SetOutputBuffer, PATCH, 4627), - REGISTER_OOVPAS(IDirectSoundBuffer_SetPitch, PATCH, 3936, 4627), + REGISTER_OOVPAS(IDirectSoundBuffer_SetPitch, PATCH, 3936), REGISTER_OOVPAS(IDirectSoundBuffer_SetPitchA, XREF, 3936), REGISTER_OOVPAS(IDirectSoundBuffer_SetPitchB, XREF, 3936), REGISTER_OOVPAS(IDirectSoundBuffer_SetPlayRegion, PATCH, 3936, 4361),