- Moved DirectSoundEnterCriticalSection to 3911
- Moved IDirectSoundBuffer_AddRef to 3911
- Moved IDirectSoundBuffer_Release to 3911
- Moved IDirectSoundBuffer_Unlock to 3911
- Moved IDirectSound_SetCooperativeLevel to 3911
- Moved IDirectSoundBuffer_StopEx to 3911
- Moved IDirectSoundBuffer_PlayEx to 3911
- Add CMcpxBuffer_Stop to 3911
- Add CDirectSoundBuffer_StopEx to 3911
- Add CDirectSoundBuffer_PlayEx to 3911
Generic OOVPA functions are...
- DirectSoundEnterCriticalSection
- IDirectSoundBuffer_AddRef
- IDirectSoundBuffer_Release
- IDirectSoundBuffer_Unlock
- IDirectSound_SetCooperativeLevel
Tested with
- [3925] Cel Damage
- [3936] Simpsons - Road Rage
- [4039] 007: Agent Under Fire
- [4134] Jet Set Radio Future
- [5558] Dino Crisis 3
- Moved CMcpxBuffer_GetCurrentPosition to 3911
- Moved CDirectSoundBuffer_GetCurrentPosition to 3911
- Moved IDirectSoundBuffer_GetCurrentPosition to 3911
- Moved CMcpxBuffer_GetStatus to 3911
- Moved CDirectSoundBuffer_GetStatus to 3911
- Moved IDirectSoundBuffer_GetStatus to 3911
- Add CMcpxBuffer_GetCurrentPosition to 4039
- Add CDirectSoundBuffer_GetCurrentPosition to 4039
- Add CMcpxBuffer_GetStatus to 4039
- Add CDirectSoundBuffer_GetStatus to 4039
- Removed duplicate CMcpxBuffer_GetCurrentPosition OOVPAs.
IDirectSoundBuffer_GetCurrentPosition and IDirectSoundBuffer_GetStatus
are generic functions.
Tested with
- [3925] Cel Damage
- [3936] Simpsons - Road Rage
- [4039] 007: Agent Under Fire
- [4134] Jet Set Radio Future
- [5558] Dino Crisis 3
Now it has multi sections array support up to 2 (can be change by
increasing LINKSCANSEC_MAX
In fact, we can finally support other than DSound in v2 database now!
🎉
- CMcpxBuffer_Stop has not changed as of 4242 and newer.
- CDirectSoundBuffer_Stop has not changed as of 4134 and newer.
- IDirectSoundBuffer_Stop has not changed since 3911.
- IDirectSoundBuffer_SetLoopRegion does match against 3911.
TODO: Need to re-locate versions in correct version file.
Verified with:
- [3936] Simpsons - Road Rage
- [4039] 007: Agent Under Fire
- [4134] Jet Set Radio Future
- [4242] Smashing Drive & Gauntlet Dark Legacy
- [4361] Burnout
- [4627] Turok Evolution
- [5233] Futurama
- [5558] Dino Crisis 3
- [5849] Lego Star Wars
The following functions support 4134 to 5849
- CDirectSoundVoice_SetPitch
- CDirectSoundBuffer_SetPitch
- IDirectSoundBuffer_SetPitch
- CDirectSoundStream_SetPitch
The workaround will fix DSound 4039 build. It will also fix any other
missing DSound library section as well. In HLEDB v2, the scan method
will check for DSOUND header section. If it doesn't have it, then DSound
DB will be skip.
Verified Unlock does exist in xbe file and is in used. Even though xbox
doesn't handle it directly. It will allow fix audio issue especially
Turok Evolution's XADPCM backgrounc music. Yet is not fully fixed...
On side note... Xbox dashboard is calling Unlock function?!?!
Since EmuLocateFunction force to add into XRefDataBase array table. It
will only add inside EmuRegisterSymbol function while
EmuLocateFunctionV2 does not.
This method changed numberous false positive to a lot fewer false
positive depending on OOVPA using rollback sig or not.
Add 2 New OOVPA 3936 for...
- CDirectSoundBuffer_SetConeOrientation
- CDirectSoundBuffer_SetConeOutsideVolume
Moved 2 4134 to 3936 compatible
- IDirectSoundBuffer_SetConeOrientation
- IDirectSoundBuffer_SetConeOutsideVolume
Tested against Blood Wake and Simpson - Road Rage titles. However Halo
Combat Evolved do return false positive for 2 new signatures (I think).
Dashupdate.xbe progresses further with this, now it attempts to format the partitions but fails due to incomplete implementation of DeviceIoControlFile (Specifically IOCTL_DISK_GET_DRIVE_GEOMETRY and IOCTL_DISK_GET_PARTITION_INFO