- Add CDirectSoundVoice_Set3DVoiceData to 5558
- Add CDirectSoundBuffer_Set3DVoiceData to 5558
- Add CDirectSoundStream_Set3DVoiceData to 5558
- Add CDirectSound_MapBufferData to 5344
- Add CDirectSound_UnmapBufferData to 5344
- Add IDirectSoundBuffer_Set3DVoiceData to 5558
- Add IDirectSound_MapBufferData to 5344
- Add IDirectSound_UnmapBufferData to 5344
- Add XAudioSetEffectData to 5344
- Add XFileCreateMediaObject to 5344
- Add XWaveFileCreateMediaObjectEx to 5344
NOTE: Need to make some stub functions.
Verified with
- [5558] Dino Crisis 3
- 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.
- Rename DS_CMemoryManager_PoolAlloc to DSound_CMemoryManager_PoolAlloc
- Rename DS_CRefCount_AddRef to DSound_CRefCount_AddRef
- Rename DS_CRefCount_Release to DSound_CRefCount_Release
- Moved CMcpxBuffer_SetBufferData 5788 to 5455
- Moved CDirectSoundVoiceSettings_SetMixBins 5558 to 5455
- Moved CDirectSoundVoice_CommitDeferredSettings 5558 to 5455
- DSound_CMemoryManager_PoolAlloc 5788 to 5455
NOTE: Ghost Recon: Island Thunder has issue with intro. If press start
buttton on controller, it will go into main menu.
Verified with
- [5455] Ghost Recon: Island Thunder
Since so many duplicate OOVPAs has been found.
I am starting with clean up process for DSound database.
Thus narrowing down necessary of workload to research and add missing
OOVPAs.
- Add CDirectSound_CommitDeferredSettings to 5455 (Generic OOVPA)
- Add CDirectSoundBuffer_SetBufferData to 4134 (Generic OOVPA, replaced
original 4134)
- Add DS_CRefCount_Release to 5455
- Add CMcpxStream_Flush to 5344 and 5455
- Add CDirectSound_EnableHeadphones to 5455
- Add CMcpxStream_Discontinuity to 5344 and 5455
- Add CMcpxStream_GetStatus to 5344
- Add CMcpxVoiceClient_SetMixBins to 5344
- Add CDirectSound_SetI3DL2Listener to 5455
- Add CHRTFSource_SetFullHRTF5Channel to 5344
- Add CHRTFSource_SetLightHRTF5Channel to 5344
- Add CHRTFSource_SetFullHRTF4Channel to 5344
- Add CHRTFSource_SetLightHRTF4Channel to 5344
- Add DirectSoundUseLightHRTF to 5344
- Add DirectSoundUseFullHRTF4Channel to 5344
- Add DirectSoundUseLightHRTF4Channel to 5344
- Update CDirectSound_SetMixBinHeadroom 4134 (To enable support generic
OOVPA for 5455 and newer)
- Replaced CDirectSoundVoice_SetI3DL2Source in 5344
- Replaced CDirectSound_SetRolloffFactor in 5344
- Replaced CDirectSound_SetDopplerFactor in 5344
- Replaced CDirectSound_SetDistanceFactor in 5344
- Replaced CDirectSound_SetI3DL2Listener in 5344
- Fixed CDirectSound_SetPosition 5344
- Fixd CDirectSound_SetVelocity 5344
- Removed CDirectSoundBuffer_SetBufferData from 5558 (false detection)
and 5788 (alias)
- Removed IDirectSoundBuffer_SetBufferData from 5558 and 5788
(duplicates)
- Removed CDirectSound_CommitDeferredSettings from 5558 and 5788
WaveBank Sample now play audio 100% correctly, can't verify with other
sound samples.
Audio do sound a bit better to me.
Some titles are still not getting all audio outputting for some reason.
However, it did brought more audible outputs now.
NOTE: It is still "somewhat" leaving experimental stage.
This is hard as hell I ever had done. The upside is SetPitch function no
longer fail for DM3DScript sample! 🎆
Tested 12KHz, 48KHz, and 96KHz conversion to ratio and back to hertz
with success.
Any titles using SetPitch in the past should now play audio nicely.
It does fix Game Region reported by @jarupxx. It is likely other values
may have overwritten as well in the process. Using unalternated
certificate data instead.
Base on research, both DirectSoundCreateStream and
DirectSoundCreateBuffer do check if DirectSound is initialize first then
initialize it. Hopefully some titles wouldn't boot at all will now boot
a bit further.