diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4039.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4039.inl index 8ca5f86a4..1bcc8ae5e 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4039.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4039.inl @@ -3553,3 +3553,120 @@ OOVPA_XREF(IDirectSoundStream_SetMixBins, 4039, 2, // IDirectSoundStream_SetMixBins+0x00 : jmp 0x........ { 0x00, 0xE9 }, OOVPA_END; + +// ****************************************************************** +// * CDirectSoundVoice::SetI3DL2Source +// ****************************************************************** +OOVPA_XREF(CDirectSoundVoice_SetI3DL2Source, 4039, 18, + + XREF_DSVOICESETI3DL2SOURCE, + XRefZero) + + // CDirectSoundVoice_SetI3DL2Source+0x00 : mov edx, [esp+arg_0] + { 0x00, 0x8B }, + { 0x01, 0x54 }, + { 0x02, 0x24 }, + { 0x03, 0x04 }, + + // CDirectSoundVoice_SetI3DL2Source+0x1B : or byte ptr [eax+138h], 80h + { 0x1B, 0x80 }, + { 0x1C, 0x88 }, + { 0x1D, 0x38 }, + { 0x1E, 0x01 }, + { 0x1F, 0x00 }, + { 0x20, 0x00 }, + { 0x21, 0x80 }, + + // CDirectSoundVoice_SetI3DL2Source+0x22 : test [esp+8+arg_8], 1 + { 0x22, 0xF6 }, + { 0x23, 0x44 }, + { 0x24, 0x24 }, + { 0x25, 0x14 }, + { 0x26, 0x01 }, + + // CDirectSoundVoice_SetI3DL2Source+0x57 : retn 08h + { 0x57, 0xC2 }, + { 0x58, 0x08 }, +OOVPA_END; + +// ****************************************************************** +// * CDirectSoundBuffer::SetI3DL2Source +// ****************************************************************** +OOVPA_XREF(CDirectSoundBuffer_SetI3DL2Source, 4039, 12, + + XREF_DSBUFFERSETI3DL2SOURCE, + XRefOne) + + // CDirectSoundBuffer_SetI3DL2Source+0x35 : call [CDirectSoundVoice::SetI3DL2Source] + XREF_ENTRY( 0x35, XREF_DSVOICESETI3DL2SOURCE ), + + // CDirectSoundBuffer_SetI3DL2Source+0x00 : push esi + { 0x00, 0x56 }, + + // CDirectSoundBuffer_SetI3DL2Source+0x21 : mov eax, 80004005h + { 0x21, 0x05 }, + { 0x22, 0x40 }, + { 0x23, 0x00 }, + { 0x24, 0x80 }, + + // CDirectSoundBuffer_SetI3DL2Source+0x31 : push [esp+0Ch+arg_0] + { 0x30, 0xFF }, + { 0x31, 0x74 }, + { 0x32, 0x24 }, + { 0x33, 0x14 }, + + // CDirectSoundBuffer_SetI3DL2Source+0x4E : retn 0Ch + { 0x4E, 0xC2 }, + { 0x4F, 0x0C }, +OOVPA_END; + +// ****************************************************************** +// * IDirectSoundBuffer_SetI3DL2Source +// ****************************************************************** +OOVPA_XREF(IDirectSoundBuffer_SetI3DL2Source, 4039, 10, + + XRefNoSaveIndex, + XRefOne) + + // IDirectSoundBuffer_SetI3DL2Source+0x18 : call [CDirectSoundBuffer::SetI3DL2Source] + XREF_ENTRY( 0x19, XREF_DSBUFFERSETI3DL2SOURCE ), + + // IDirectSoundBuffer_SetI3DL2Source+0x04 : push [esp+arg_8] + { 0x04, 0xFF }, + { 0x05, 0x74 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetI3DL2Source+0x0E : add eax, 0FFFFFFE4h + { 0x0E, 0x83 }, + { 0x0F, 0xC0 }, + { 0x10, 0xE4 }, + + // IDirectSoundBuffer_SetI3DL2Source+0x1D : retn 0Ch + { 0x1E, 0x0C }, + { 0x1F, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * CDirectSound::GetCaps +// ****************************************************************** +OOVPA_XREF(CDirectSound_GetCaps, 4039, 12, + + XREF_CDirectSound_GetCaps, + XRefZero) + + { 0x00, 0x53 }, + { 0x15, 0x68 }, + + { 0x36, 0x44 }, + { 0x37, 0x24 }, + { 0x38, 0x18 }, + { 0x39, 0x8B }, + { 0x3A, 0x48 }, + { 0x3B, 0x0C }, + { 0x3C, 0x56 }, + { 0x3D, 0xE8 }, + + { 0x6C, 0xC2 }, + { 0x6D, 0x08 }, +OOVPA_END; diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl index 729d5a951..9e0c661d1 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl @@ -2059,7 +2059,7 @@ OOVPA_END; // ****************************************************************** // * CDirectSoundBuffer::SetI3DL2Source // ****************************************************************** -OOVPA_XREF(CDirectSoundBuffer_SetI3DL2Source, 4134, 11, +OOVPA_XREF(CDirectSoundBuffer_SetI3DL2Source, 4134, 12, XREF_DSBUFFERSETI3DL2SOURCE, XRefOne) @@ -2067,6 +2067,9 @@ OOVPA_XREF(CDirectSoundBuffer_SetI3DL2Source, 4134, 11, // CDirectSoundBuffer_SetI3DL2Source+0x35 : call [CDirectSoundVoice::SetI3DL2Source] XREF_ENTRY( 0x36, XREF_DSVOICESETI3DL2SOURCE ), + // CDirectSoundBuffer_SetI3DL2Source+0x00 : push esi + { 0x00, 0x56 }, + // CDirectSoundBuffer_SetI3DL2Source+0x21 : mov eax, 80004005h { 0x22, 0x05 }, { 0x23, 0x40 }, @@ -2084,6 +2087,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetI3DL2Source, 4134, 11, { 0x51, 0x00 } OOVPA_END; +#if 0 // Moved to 4039 // ****************************************************************** // * IDirectSoundBuffer_SetI3DL2Source // ****************************************************************** @@ -2110,6 +2114,7 @@ OOVPA_XREF(IDirectSoundBuffer_SetI3DL2Source, 4134, 10, { 0x1E, 0x0C }, { 0x1F, 0x00 } OOVPA_END; +#endif // ****************************************************************** // * CDirectSoundStream_SetI3DL2Source @@ -3366,7 +3371,7 @@ OOVPATable DSound_4134[] = { REGISTER_OOVPA(IDirectSoundBuffer_SetDopplerFactor, 4134, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetI3DL2Source, 4134, XREF), REGISTER_OOVPA(CDirectSoundBuffer_SetI3DL2Source, 4134, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4039, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetI3DL2Source, 4134, PATCH), REGISTER_OOVPA(CMcpxBuffer_Stop, 4134, XREF), REGISTER_OOVPA(CDirectSoundBuffer_Stop, 4134, XREF), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl index 96dc7ff86..b90c52d1b 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl @@ -1597,7 +1597,7 @@ OOVPATable DSound_4627[] = { REGISTER_OOVPA(IDirectSoundBuffer_SetDopplerFactor, 4134, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetI3DL2Source, 4134, XREF), REGISTER_OOVPA(CDirectSoundBuffer_SetI3DL2Source, 4134, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4039, PATCH), REGISTER_OOVPA(CMcpxBuffer_Stop, 4242, XREF), REGISTER_OOVPA(CDirectSoundBuffer_Stop, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_Stop, 3911, PATCH), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl index 50de2b490..fdecce023 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl @@ -177,7 +177,7 @@ OOVPATable DSound_5028[] = { REGISTER_OOVPA(IDirectSoundBuffer_SetDopplerFactor, 4134, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetI3DL2Source, 4134, XREF), REGISTER_OOVPA(CDirectSoundBuffer_SetI3DL2Source, 4134, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4039, PATCH), REGISTER_OOVPA(CDirectSoundStream_SetI3DL2Source, 4134, PATCH), REGISTER_OOVPA(CMcpxBuffer_Stop, 4242, XREF), REGISTER_OOVPA(CDirectSoundBuffer_Stop, 4134, XREF), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl index f9b879dc9..7de1389dc 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl @@ -452,7 +452,7 @@ OOVPATable DSound_5233[] = { REGISTER_OOVPA(IDirectSoundBuffer_SetVelocity, 3911, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetI3DL2Source, 4134, XREF), REGISTER_OOVPA(CDirectSoundBuffer_SetI3DL2Source, 4134, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4039, PATCH), REGISTER_OOVPA(CMcpxBuffer_Stop, 4242, XREF), REGISTER_OOVPA(CDirectSoundBuffer_Stop, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_Stop, 3911, PATCH), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl index 6ac624760..32a706545 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5344.inl @@ -965,7 +965,7 @@ OOVPATable DSound_5344[] = { REGISTER_OOVPA(IDirectSoundBuffer_SetVelocity, 3911, PATCH), REGISTER_OOVPA(CDirectSoundVoice_SetI3DL2Source, 5344, XREF), REGISTER_OOVPA(CDirectSoundBuffer_SetI3DL2Source, 4134, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4039, PATCH), REGISTER_OOVPA(CMcpxBuffer_Stop, 4242, XREF), REGISTER_OOVPA(CDirectSoundBuffer_Stop, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_Stop, 3911, PATCH), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl b/src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl index 6150a38fb..de06c9fe9 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.OOVPA.inl @@ -214,7 +214,7 @@ OOVPATable DSound_OOVPAV2[] = { REGISTER_OOVPAS(CDirectSoundVoice_SetFormat, XREF, 4242, 4721, 5558), REGISTER_OOVPAS(CDirectSoundVoice_SetFrequency, XREF, 3911, 4039, 4134), REGISTER_OOVPAS(CDirectSoundVoice_SetHeadroom, XREF, 3911, 4039, 4134, 4627, 5558), - REGISTER_OOVPAS(CDirectSoundVoice_SetI3DL2Source, XREF, 3911, 4134, 5344, 5558), + REGISTER_OOVPAS(CDirectSoundVoice_SetI3DL2Source, XREF, 3911, 4039, 4134, 5344, 5558), REGISTER_OOVPAS(CDirectSoundVoice_SetLFO, XREF, 3911, 4039), REGISTER_OOVPAS(CDirectSoundVoice_SetMaxDistance, XREF, 3911, 4039, 4134, 4361, 5344), REGISTER_OOVPAS(CDirectSoundVoice_SetMinDistance, XREF, 3911, 4039, 4134, 4361, 5344), @@ -248,7 +248,7 @@ OOVPATable DSound_OOVPAV2[] = { REGISTER_OOVPAS(CDirectSoundBuffer_SetFormat, XREF, 4242, 5558), REGISTER_OOVPAS(CDirectSoundBuffer_SetFrequency, XREF, 4039, 4134), REGISTER_OOVPAS(CDirectSoundBuffer_SetHeadroom, XREF, 4039, 4134, 5344, 5558), - REGISTER_OOVPAS(CDirectSoundBuffer_SetI3DL2Source, XREF, 4134, 5558), + REGISTER_OOVPAS(CDirectSoundBuffer_SetI3DL2Source, XREF, 4039, 4134, 5558), REGISTER_OOVPAS(CDirectSoundBuffer_SetLFO, XREF, 4039, 4242), REGISTER_OOVPAS(CDirectSoundBuffer_SetLoopRegion, XREF, 3911, 4039, 4134, 5558), REGISTER_OOVPAS(CDirectSoundBuffer_SetMaxDistance, XREF, 3911, 4039, 4134, 5344, 5788), @@ -309,7 +309,7 @@ OOVPATable DSound_OOVPAV2[] = { REGISTER_OOVPAS(CDirectSound_DownloadEffectsImage, XREF, 3911, 4039, 4134), REGISTER_OOVPAS(CDirectSound_DoWork, XREF, 3911, 4039), REGISTER_OOVPAS(CDirectSound_EnableHeadphones, XREF, 3911, 4039, 4627, 5233, 5344, 5558), - REGISTER_OOVPAS(CDirectSound_GetCaps, XREF, 3911, 4361), + REGISTER_OOVPAS(CDirectSound_GetCaps, XREF, 3911, 4039, 4361), REGISTER_OOVPAS(CDirectSound_GetEffectData, XREF, 3911), REGISTER_OOVPAS(CDirectSound_GetOutputLevels, XREF, 4627, 5558), REGISTER_OOVPAS(CDirectSound_GetSpeakerConfig, PATCH, 3911, 4627), @@ -347,7 +347,7 @@ OOVPATable DSound_OOVPAV2[] = { REGISTER_OOVPAS(IDirectSoundBuffer_SetFormat, PATCH, 4242, 5558), REGISTER_OOVPAS(IDirectSoundBuffer_SetFrequency, PATCH, 3911, 4039), REGISTER_OOVPAS(IDirectSoundBuffer_SetHeadroom, PATCH, 3911, 4039, 5344, 5558), - REGISTER_OOVPAS(IDirectSoundBuffer_SetI3DL2Source, PATCH, 3911, 4134, 5558), + REGISTER_OOVPAS(IDirectSoundBuffer_SetI3DL2Source, PATCH, 3911, 4039, 5558), REGISTER_OOVPAS(IDirectSoundBuffer_SetLFO, PATCH, 3911, 4039), REGISTER_OOVPAS(IDirectSoundBuffer_SetLoopRegion, PATCH, 3911), REGISTER_OOVPAS(IDirectSoundBuffer_SetMaxDistance, PATCH, 3911 /*,5344, 5788*/),