From ece16046e6db51a035d4fead4631d7ed262f4dce Mon Sep 17 00:00:00 2001 From: jarupxx Date: Sat, 18 Nov 2017 20:50:04 +0900 Subject: [PATCH] Moved to correct database --- src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl | 22 ++-- src/CxbxKrnl/HLEDataBase/DSound.1.0.4721.inl | 49 ++++++++ src/CxbxKrnl/HLEDataBase/DSound.1.0.4831.inl | 121 +++++++++++++++++++ 3 files changed, 184 insertions(+), 8 deletions(-) diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl index 7b5a0effd..de3a10a59 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl @@ -120,6 +120,7 @@ OOVPA_XREF(CDirectSound_SetAllParametersA, 4627, 10, { 0x89, 0x08 }, OOVPA_END; +#if 0 // Moved to 4721 // ****************************************************************** // * CDirectSound::SetAllParametersA // ****************************************************************** @@ -141,7 +142,7 @@ OOVPA_XREF(CDirectSound_SetAllParametersA, 4721, 10, { 0x88, 0x50 }, { 0x89, 0x08 }, OOVPA_END; - +#endif #if 0 // No longer used, replaced by generic 4134 version // ****************************************************************** // * DirectSound::CDirectSound::SetAllParameters @@ -258,6 +259,7 @@ OOVPA_XREF(CMcpxBuffer_GetStatus, 4721, 17, OOVPA_END; #endif +#if 0 // Moved to 4831 // ****************************************************************** // * CMcpxBuffer_GetStatus // ****************************************************************** @@ -284,6 +286,7 @@ OOVPA_XREF(CMcpxBuffer_GetStatus, 4831, 13, { 0x3F, 0xC2 }, { 0x40, 0x04 }, OOVPA_END; +#endif // ****************************************************************** // * CDirectSound_GetSpeakerConfig @@ -313,7 +316,7 @@ OOVPA_XREF(CDirectSound_GetSpeakerConfig, 4627, 14, { 0x4A, 0xC2 }, { 0x4B, 0x08 }, OOVPA_END; - +#if 0 // Moved to 4721 // ****************************************************************** // * CMcpxBuffer_Play // ****************************************************************** @@ -341,7 +344,8 @@ OOVPA_XREF(CMcpxBuffer_Play, 4721, 11, { 0x52, 0x33 }, { 0x53, 0xC0 }, OOVPA_END; - +#endif +#if 0 // Moved to 4831 // ****************************************************************** // * public: long __thiscall DirectSound::CMcpxBuffer::Play(unsigned long) // ****************************************************************** @@ -370,6 +374,7 @@ OOVPA_XREF(CMcpxBuffer_Play, 4831, 11, { 0x71, 0x33 }, { 0x72, 0xC0 }, OOVPA_END; +#endif // ****************************************************************** // * CMcpxBuffer_Play2 @@ -491,6 +496,7 @@ OOVPA_XREF(CDirectSoundVoice_SetFormat, 4721, 12, { 0x42, 0x08 }, OOVPA_END; +#if 0 // Moved to 4831 // ****************************************************************** // * CMcpxStream_Pause // ****************************************************************** @@ -518,7 +524,7 @@ OOVPA_XREF(CMcpxStream_Pause, 4831, 11, { 0x8B, 0xC2 }, { 0x8C, 0x04 }, OOVPA_END; - +#endif #if 0 // No longer used, replaced by generic 4134 version // ****************************************************************** // * DirectSound::CDirectSound::EnableHeadphones (incorrect?) @@ -583,7 +589,7 @@ OOVPA_XREF(IDirectSound_EnableHeadphones, 4627, 1+8, { 0x1B, 0x00 }, OOVPA_END; #endif - +#if 0 // Moved to 4831 // ****************************************************************** // * CDirectSound::SetAllParametersA // ****************************************************************** @@ -605,7 +611,7 @@ OOVPA_XREF(CDirectSound_SetAllParametersA, 4831, 10, { 0x88, 0x50 }, { 0x89, 0x08 }, OOVPA_END; - +#endif #if 0 // No longer used, replaced by generic 4361 version // ****************************************************************** // * DirectSound::CDirectSound::GetOutputLevels @@ -645,7 +651,7 @@ OOVPA_XREF(IDirectSound_GetOutputLevels, 4627, 1+8, { 0x1E, 0x0C }, OOVPA_END; #endif - +#if 0 // Moved to 4831 // ****************************************************************** // * DirectSound::CMcpxBuffer::Pause // ****************************************************************** @@ -662,7 +668,7 @@ OOVPA_XREF(CMcpxBuffer_Pause, 4831, 7, { 0x58, 0xEB }, { 0x67, 0xE8 }, OOVPA_END; - +#endif #if 0 // Used 4134 // ****************************************************************** // * IDirectSoundBuffer_GetStatus diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4721.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4721.inl index 497364900..024076cc9 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4721.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4721.inl @@ -299,3 +299,52 @@ OOVPA_XREF(IDirectSoundBuffer_Pause, 4721, 1+7, { 0x19, 0xC2 }, { 0x1A, 0x08 }, OOVPA_END; + +// ****************************************************************** +// * CDirectSound::SetAllParametersA +// ****************************************************************** +OOVPA_XREF(CDirectSound_SetAllParametersA, 4721, 10, + + XREF_CDirectSound_SetAllParameters, + XRefZero) + + { 0x16, 0x68 }, + { 0x17, 0xD8 }, + { 0x18, 0x81 }, + { 0x19, 0x15 }, + + { 0x2F, 0xD9 }, + { 0x30, 0x41 }, + { 0x31, 0x04 }, + + { 0x87, 0x8B }, + { 0x88, 0x50 }, + { 0x89, 0x08 }, +OOVPA_END; +// ****************************************************************** +// * CMcpxBuffer_Play +// ****************************************************************** +OOVPA_XREF(CMcpxBuffer_Play, 4721, 11, + + XREF_CMcpxBuffer_Play, + XRefZero) + + // CMcpxBuffer_Play+0x00 : push ebx + { 0x00, 0x53 }, + + // CMcpxBuffer_Play+0x2E : test byte ptr [eax+9], 20h + { 0x2E, 0xF6 }, + { 0x2F, 0x40 }, + { 0x30, 0x09 }, + { 0x31, 0x20 }, + + // CMcpxBuffer_Play+0x44 : test byte ptr [esi+12h], 2h + { 0x44, 0xF6 }, + { 0x45, 0x46 }, + { 0x46, 0x12 }, + { 0x47, 0x02 }, + + // CMcpxBuffer_Play+0x52 : xor eax, eax + { 0x52, 0x33 }, + { 0x53, 0xC0 }, +OOVPA_END; diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4831.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4831.inl index b29f2c23d..7cf233796 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4831.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4831.inl @@ -108,3 +108,124 @@ OOVPA_XREF(IDirectSound_SynchPlayback, 4831, 1+7, { 0x15, 0xC2 }, { 0x16, 0x04 }, OOVPA_END; +// ****************************************************************** +// * CMcpxBuffer_GetStatus +// ****************************************************************** +OOVPA_XREF(CMcpxBuffer_GetStatus, 4831, 13, + + XREF_CMcpxBuffer_GetStatus, + XRefZero) + + { 0x00, 0x0F }, + + { 0x16, 0x6A }, + { 0x17, 0x00 }, + { 0x18, 0x5A }, + + { 0x1C, 0x42 }, + { 0x1D, 0xF6 }, + { 0x1E, 0xC4 }, + { 0x1F, 0x02 }, + + { 0x29, 0xB9 }, + { 0x2A, 0x01 }, + { 0x2B, 0x80 }, + + { 0x3F, 0xC2 }, + { 0x40, 0x04 }, +OOVPA_END; + +// ****************************************************************** +// * public: long __thiscall DirectSound::CMcpxBuffer::Play(unsigned long) +// ****************************************************************** +// Generic OOVPA as of 4831 and newer +OOVPA_XREF(CMcpxBuffer_Play, 4831, 11, + + XREF_CMcpxBuffer_Play, + XRefZero) + + // CMcpxBuffer_Play+0x00 : push ebx + { 0x00, 0x53 }, + + // CMcpxBuffer_Play+0x32 : test byte ptr [esi+12h], 42h + { 0x32, 0xF6 }, + { 0x33, 0x46 }, + { 0x34, 0x12 }, + { 0x35, 0x42 }, + + // CMcpxBuffer_Play+0x4D : test byte ptr [eax+9], 20h + { 0x4D, 0xF6 }, + { 0x4E, 0x40 }, + { 0x4F, 0x09 }, + { 0x50, 0x20 }, + + // CMcpxBuffer_Play+0x71 : xor eax, eax + { 0x71, 0x33 }, + { 0x72, 0xC0 }, +OOVPA_END; +// ****************************************************************** +// * CMcpxStream_Pause +// ****************************************************************** +OOVPA_XREF(CMcpxStream_Pause, 4831, 11, + + XREF_CMcpxStream_Pause, + XRefZero) + + // CMcpxStream_Pause+0x17 : and ax, 0xFFDF + { 0x17, 0x66 }, + { 0x18, 0x25 }, + { 0x19, 0xDF }, + + // CMcpxStream_Pause+0x32 : jmp +0x56 + { 0x32, 0xEB }, + { 0x33, 0x56 }, + + // CMcpxStream_Pause+0x39 : movzx eax, word ptr [esi+0x12] + { 0x39, 0x0F }, + { 0x3A, 0xB7 }, + { 0x3B, 0x46 }, + { 0x3C, 0x12 }, + + // CMcpxStream_Pause+0x8B : retn 0x04 + { 0x8B, 0xC2 }, + { 0x8C, 0x04 }, +OOVPA_END; + +// ****************************************************************** +// * CDirectSound::SetAllParametersA +// ****************************************************************** +OOVPA_XREF(CDirectSound_SetAllParametersA, 4831, 10, + + XREF_CDirectSound_SetAllParameters, + XRefZero) + + { 0x16, 0x68 }, + { 0x17, 0x08 }, + { 0x18, 0x6E }, + { 0x19, 0x18 }, + + { 0x2F, 0xD9 }, + { 0x30, 0x41 }, + { 0x31, 0x04 }, + + { 0x87, 0x8B }, + { 0x88, 0x50 }, + { 0x89, 0x08 }, +OOVPA_END; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::Pause +// ****************************************************************** +OOVPA_XREF(CMcpxBuffer_Pause, 4831, 7, + + XREF_CMcpxBuffer_Pause, + XRefZero) + + { 0x0D, 0x4D }, + { 0x1C, 0x44 }, + { 0x2B, 0x8B }, + { 0x3A, 0x75 }, + { 0x49, 0x7D }, + { 0x58, 0xEB }, + { 0x67, 0xE8 }, +OOVPA_END;