Add DSound 4242 Database File
- Add CMcpxStream_Flush to 4242 - Improved CMcpxStream_GetStatus 4134 to support 4242 titles. Both 4242 titles does not have full library compiled. Moved all DSound's 4242 signatures in respective file, nothing has change. Verified with - [4134] Blood Omen 2 - [4242] Gauntlet Dark Legacy - [4242] Smashing Drive
This commit is contained in:
parent
8a7756c2bb
commit
a1b21112f8
|
@ -353,6 +353,7 @@ $(SOLUTIONDIR)Export.bat</Command>
|
|||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.3936.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4039.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4134.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4242.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4361.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4432.inl" />
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4627.inl" />
|
||||
|
|
|
@ -710,6 +710,9 @@
|
|||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4134.inl">
|
||||
<Filter>HLEDatabase\DSound</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4242.inl">
|
||||
<Filter>HLEDatabase\DSound</Filter>
|
||||
</None>
|
||||
<None Include="..\..\src\CxbxKrnl\HLEDataBase\DSound.1.0.4361.inl">
|
||||
<Filter>HLEDatabase\DSound</Filter>
|
||||
</None>
|
||||
|
|
|
@ -2899,31 +2899,6 @@ OOVPA_XREF(CMcpxBuffer_Stop, 4134, 9,
|
|||
{ 0x20, 0x02 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CMcpxBuffer_Stop
|
||||
// ******************************************************************
|
||||
//Generic OOVPA as of 4242 and newer.
|
||||
OOVPA_XREF(CMcpxBuffer_Stop, 4242, 9,
|
||||
|
||||
XREF_CMcpxBuffer_Stop,
|
||||
XRefZero)
|
||||
|
||||
// CMcpxBuffer_Stop+0x0E : cmp al, 3
|
||||
{ 0x0E, 0x3C },
|
||||
{ 0x0F, 0x03 },
|
||||
|
||||
// CMcpxBuffer_Stop+0x17 : jne +0x2A
|
||||
{ 0x17, 0x74 },
|
||||
{ 0x18, 0x2A },
|
||||
|
||||
// CMcpxBuffer_Stop+0x19 : test [esp+10h], 2
|
||||
{ 0x19, 0xF6 },
|
||||
{ 0x1A, 0x44 },
|
||||
{ 0x1B, 0x24 },
|
||||
{ 0x1C, 0x10 },
|
||||
{ 0x1D, 0x02 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSoundBuffer_Stop
|
||||
// ******************************************************************
|
||||
|
@ -3396,6 +3371,11 @@ OOVPA_XREF(CMcpxStream_GetStatus, 4134, 14,
|
|||
{ 0x00, 0x55 },
|
||||
{ 0x01, 0x8B },
|
||||
|
||||
// Added 2 OVs to enable support 4242 titles and later (if any has occurred).
|
||||
{ 0x2F, 0x03 },
|
||||
{ 0x32, 0x03 },
|
||||
|
||||
// Just a note, this asm code is unique
|
||||
{ 0x3D, 0x80 },
|
||||
{ 0x3E, 0x48 },
|
||||
{ 0x3F, 0x02 },
|
||||
|
@ -3408,8 +3388,9 @@ OOVPA_XREF(CMcpxStream_GetStatus, 4134, 14,
|
|||
{ 0x4F, 0x04 },
|
||||
{ 0x50, 0x00 },
|
||||
|
||||
{ 0x65, 0xC2 },
|
||||
{ 0x66, 0x04 },
|
||||
// Removed due to 4242 has a return asm code at offset 0x75.
|
||||
//{ 0x65, 0xC2 },
|
||||
//{ 0x66, 0x04 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -0,0 +1,234 @@
|
|||
// ******************************************************************
|
||||
// *
|
||||
// * .,-::::: .,:: .::::::::. .,:: .:
|
||||
// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;;
|
||||
// * [[[ '[[,,[[' [[[__[[\. '[[,,[['
|
||||
// * $$$ Y$$$P $$""""Y$$ Y$$$P
|
||||
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
|
||||
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
|
||||
// *
|
||||
// * Cxbx->Win32->CxbxKrnl->HLEDataBase->DSound.1.0.4242.inl
|
||||
// *
|
||||
// * This file is part of the Cxbx project.
|
||||
// *
|
||||
// * Cxbx and Cxbe are free software; you can redistribute them
|
||||
// * and/or modify them under the terms of the GNU General Public
|
||||
// * License as published by the Free Software Foundation; either
|
||||
// * version 2 of the license, or (at your option) any later version.
|
||||
// *
|
||||
// * This program is distributed in the hope that it will be useful,
|
||||
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// * GNU General Public License for more details.
|
||||
// *
|
||||
// * You should have recieved a copy of the GNU General Public License
|
||||
// * along with this program; see the file COPYING.
|
||||
// * If not, write to the Free Software Foundation, Inc.,
|
||||
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
|
||||
// *
|
||||
// * (c) 2017 RadWolfie
|
||||
// *
|
||||
// * All rights reserved
|
||||
// *
|
||||
// ******************************************************************
|
||||
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundVoice::SetFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSoundVoice_SetFormat, 4242, 8,
|
||||
|
||||
XREF_CDirectSoundVoice_SetFormat,
|
||||
XRefZero)
|
||||
|
||||
{ 0x07, 0x4E },
|
||||
{ 0x10, 0xE8 },
|
||||
{ 0x19, 0xD8 },
|
||||
{ 0x22, 0xFF },
|
||||
{ 0x2B, 0x0C },
|
||||
{ 0x34, 0xFF },
|
||||
{ 0x3F, 0x8B },
|
||||
{ 0x46, 0x00 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundBuffer::SetFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSoundBuffer_SetFormat, 4242, 8,
|
||||
|
||||
XREF_CDirectSoundBuffer_SetFormat,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x32, XREF_CDirectSoundVoice_SetFormat ),
|
||||
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x12, 0x85 },
|
||||
{ 0x1C, 0x15 },
|
||||
{ 0x26, 0xEB },
|
||||
{ 0x30, 0x10 },
|
||||
{ 0x3A, 0x74 },
|
||||
{ 0x47, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * IDirectSoundBuffer_SetFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(IDirectSoundBuffer_SetFormat, 4242, 8,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x15, XREF_CDirectSoundBuffer_SetFormat ),
|
||||
|
||||
{ 0x02, 0x24 },
|
||||
{ 0x06, 0x24 },
|
||||
{ 0x0A, 0x83 },
|
||||
{ 0x0E, 0xD9 },
|
||||
{ 0x12, 0xC8 },
|
||||
{ 0x19, 0xC2 },
|
||||
{ 0x1A, 0x08 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * DirectSound::CDirectSoundStream::SetFormat
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSoundStream_SetFormat, 4242, 9,
|
||||
|
||||
XRefNoSaveIndex,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x36, XREF_CDirectSoundVoice_SetFormat ),
|
||||
|
||||
{ 0x00, 0x56 },
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x14, 0x74 },
|
||||
{ 0x21, 0xB8 },
|
||||
{ 0x2A, 0x24 },
|
||||
{ 0x35, 0xE8 },
|
||||
{ 0x40, 0x68 },
|
||||
{ 0x4B, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CMcpxVoiceClient::SetLFO
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CMcpxVoiceClient_SetLFO, 4242, 8,
|
||||
|
||||
XREF_CMcpxVoiceClient_SetLFO,
|
||||
XRefZero)
|
||||
|
||||
{ 0x1E, 0x48 },
|
||||
{ 0x3E, 0x31 },
|
||||
{ 0x5E, 0x35 },
|
||||
{ 0x7E, 0xE1 },
|
||||
{ 0x9E, 0x8B },
|
||||
{ 0xBE, 0x8B },
|
||||
{ 0xDE, 0x05 },
|
||||
{ 0xFE, 0x6C },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSoundBuffer::SetLFO
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSoundBuffer_SetLFO, 4242, 8,
|
||||
|
||||
XREF_CDirectSoundBuffer_SetLFO,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x32, XREF_CDirectSoundVoice_SetLFO ),
|
||||
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x12, 0x85 },
|
||||
{ 0x1C, 0x15 },
|
||||
{ 0x26, 0xEB },
|
||||
{ 0x30, 0x10 },
|
||||
{ 0x3A, 0x74 },
|
||||
{ 0x47, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CMcpxVoiceClient::SetEG
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CMcpxVoiceClient_SetEG, 4242, 8,
|
||||
|
||||
XREF_CMcpxVoiceClient_SetEG,
|
||||
XRefZero)
|
||||
|
||||
{ 0x1E, 0x75 },
|
||||
{ 0x3E, 0x0F },
|
||||
{ 0x5E, 0xE3 },
|
||||
{ 0x7E, 0x4E },
|
||||
{ 0x9E, 0x40 },
|
||||
{ 0xBE, 0x50 },
|
||||
{ 0xDE, 0x1C },
|
||||
{ 0xFE, 0x1C },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CDirectSoundBuffer::SetEG
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CDirectSoundBuffer_SetEG, 4242, 8,
|
||||
|
||||
XREF_CDirectSoundBuffer_SetEG,
|
||||
XRefOne)
|
||||
|
||||
XREF_ENTRY( 0x32, XREF_CDirectSoundVoice_SetEG ),
|
||||
|
||||
{ 0x0C, 0x00 },
|
||||
{ 0x12, 0x85 },
|
||||
{ 0x1C, 0x15 },
|
||||
{ 0x26, 0xEB },
|
||||
{ 0x30, 0x10 },
|
||||
{ 0x3A, 0x74 },
|
||||
{ 0x47, 0x8B },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CMcpxBuffer_Stop
|
||||
// ******************************************************************
|
||||
//Generic OOVPA as of 4242 and newer.
|
||||
OOVPA_XREF(CMcpxBuffer_Stop, 4242, 9,
|
||||
|
||||
XREF_CMcpxBuffer_Stop,
|
||||
XRefZero)
|
||||
|
||||
// CMcpxBuffer_Stop+0x0E : cmp al, 3
|
||||
{ 0x0E, 0x3C },
|
||||
{ 0x0F, 0x03 },
|
||||
|
||||
// CMcpxBuffer_Stop+0x17 : jne +0x2A
|
||||
{ 0x17, 0x74 },
|
||||
{ 0x18, 0x2A },
|
||||
|
||||
// CMcpxBuffer_Stop+0x19 : test [esp+10h], 2
|
||||
{ 0x19, 0xF6 },
|
||||
{ 0x1A, 0x44 },
|
||||
{ 0x1B, 0x24 },
|
||||
{ 0x1C, 0x10 },
|
||||
{ 0x1D, 0x02 },
|
||||
OOVPA_END;
|
||||
|
||||
// ******************************************************************
|
||||
// * CMcpxStream_Flush
|
||||
// ******************************************************************
|
||||
OOVPA_XREF(CMcpxStream_Flush, 4242, 10,
|
||||
XREF_CMcpxStream_Flush,
|
||||
XRefZero)
|
||||
|
||||
{ 0x00, 0x55 },
|
||||
{ 0x01, 0x8B },
|
||||
|
||||
{ 0x12, 0x33 },
|
||||
|
||||
{ 0x3D, 0x83 },
|
||||
{ 0x3E, 0xFE },
|
||||
{ 0x3F, 0x05 },
|
||||
|
||||
{ 0x56, 0xE8 },
|
||||
|
||||
{ 0x67, 0xE8 },
|
||||
|
||||
// Might not be a requirement? Aka comment this out might will enable support detection later XDK revisions.
|
||||
{ 0xD1, 0xC9 },
|
||||
{ 0xD2, 0xC3 },
|
||||
OOVPA_END;
|
|
@ -159,6 +159,7 @@
|
|||
#include "DSound.1.0.3936.inl"
|
||||
#include "DSound.1.0.4039.inl"
|
||||
#include "DSound.1.0.4134.inl"
|
||||
#include "DSound.1.0.4242.inl"
|
||||
#include "DSound.1.0.4361.inl"
|
||||
#include "DSound.1.0.4432.inl"
|
||||
#include "DSound.1.0.4627.inl"
|
||||
|
@ -198,7 +199,7 @@ OOVPATable DSound_OOVPAV2[] = {
|
|||
REGISTER_OOVPAS(CMcpxBuffer_Stop, XREF, 3911, 4134, 4242), // NOTE: ?Stop@CMcpxBuffer@DirectSound@@QAEJK@Z
|
||||
REGISTER_OOVPAS(CMcpxBuffer_Stop2, XREF, 4361), // NOTE: ?Stop@CMcpxBuffer@DirectSound@@QAEJ_JK@Z
|
||||
REGISTER_OOVPAS(CMcpxStream_Discontinuity, XREF, 3911, 4039, 4134),
|
||||
REGISTER_OOVPAS(CMcpxStream_Flush, XREF, 3911, 3936, 4039, 4134),
|
||||
REGISTER_OOVPAS(CMcpxStream_Flush, XREF, 3911, 3936, 4039, 4134, 4242),
|
||||
REGISTER_OOVPAS(CMcpxStream_GetStatus, XREF, 4134),
|
||||
REGISTER_OOVPAS(CMcpxStream_Pause, XREF, 3911, 4039, 4134, /*4361,*/ 4831, 5788),
|
||||
REGISTER_OOVPAS(CSensaura3d_GetFullHRTFFilterPair, XREF, 3911, 3936),
|
||||
|
|
Loading…
Reference in New Issue