diff --git a/build/win32/Cxbx.vcxproj b/build/win32/Cxbx.vcxproj index 966c32613..a78b860ca 100644 --- a/build/win32/Cxbx.vcxproj +++ b/build/win32/Cxbx.vcxproj @@ -226,6 +226,7 @@ $(SOLUTIONDIR)Export.bat + @@ -237,6 +238,7 @@ $(SOLUTIONDIR)Export.bat + @@ -250,6 +252,7 @@ $(SOLUTIONDIR)Export.bat + @@ -260,6 +263,7 @@ $(SOLUTIONDIR)Export.bat + @@ -269,6 +273,7 @@ $(SOLUTIONDIR)Export.bat + @@ -306,6 +311,7 @@ $(SOLUTIONDIR)Export.bat + @@ -317,6 +323,7 @@ $(SOLUTIONDIR)Export.bat + @@ -329,6 +336,7 @@ $(SOLUTIONDIR)Export.bat + @@ -338,6 +346,7 @@ $(SOLUTIONDIR)Export.bat + @@ -346,6 +355,7 @@ $(SOLUTIONDIR)Export.bat + diff --git a/build/win32/Cxbx.vcxproj.filters b/build/win32/Cxbx.vcxproj.filters index a778f7461..98a235bb3 100644 --- a/build/win32/Cxbx.vcxproj.filters +++ b/build/win32/Cxbx.vcxproj.filters @@ -234,18 +234,12 @@ EmuD3D8 - - HLEDatabase - HLEDatabase HLEDatabase - - HLEDatabase - HLEDatabase @@ -264,9 +258,15 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + HLEDatabase @@ -294,9 +294,18 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + + + HLEDatabase + HLEDatabase @@ -324,9 +333,15 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + HLEDatabase @@ -351,9 +366,15 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + HLEDatabase @@ -372,9 +393,18 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + + + HLEDatabase + HLEDatabase @@ -507,21 +537,6 @@ Shared - - HLEDatabase - - - HLEDatabase - - - HLEDatabase - - - HLEDatabase - - - HLEDatabase - Shared @@ -554,9 +569,15 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + HLEDatabase @@ -584,9 +605,15 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + HLEDatabase @@ -617,9 +644,15 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + HLEDatabase @@ -641,9 +674,15 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + HLEDatabase @@ -662,9 +701,15 @@ HLEDatabase + + HLEDatabase + HLEDatabase + + HLEDatabase + HLEDatabase @@ -677,21 +722,6 @@ Shared - - HLEDatabase - - - HLEDatabase - - - HLEDatabase - - - HLEDatabase - - - HLEDatabase - diff --git a/src/CxbxKrnl/HLEDataBase.cpp b/src/CxbxKrnl/HLEDataBase.cpp index 25dd110a1..686fe8b2f 100644 --- a/src/CxbxKrnl/HLEDataBase.cpp +++ b/src/CxbxKrnl/HLEDataBase.cpp @@ -64,6 +64,7 @@ const char *Lib_XONLINES = "XONLINES"; #include "HLEDataBase/Xapi.1.0.4432.inl" #include "HLEDataBase/Xapi.1.0.4627.inl" #include "HLEDataBase/Xapi.1.0.4721.inl" +#include "HLEDataBase/Xapi.1.0.5028.inl" #include "HLEDataBase/Xapi.1.0.5233.inl" #include "HLEDataBase/Xapi.1.0.5344.inl" #include "HLEDataBase/Xapi.1.0.5558.inl" @@ -75,6 +76,7 @@ const char *Lib_XONLINES = "XONLINES"; #include "HLEDataBase/D3D8.1.0.4361.inl" #include "HLEDataBase/D3D8.1.0.4432.inl" #include "HLEDataBase/D3D8.1.0.4627.inl" +#include "HLEDataBase/D3D8.1.0.5028.inl" #include "HLEDataBase/D3D8.1.0.5233.inl" #include "HLEDataBase/D3D8.1.0.5344.inl" #include "HLEDataBase/D3D8.1.0.5558.inl" @@ -86,6 +88,7 @@ const char *Lib_XONLINES = "XONLINES"; #include "HLEDataBase/DSound.1.0.4361.inl" #include "HLEDataBase/DSound.1.0.4432.inl" #include "HLEDataBase/DSound.1.0.4627.inl" +#include "HLEDataBase/DSound.1.0.5028.inl" #include "HLEDataBase/DSound.1.0.5233.inl" #include "HLEDataBase/DSound.1.0.5344.inl" #include "HLEDataBase/DSound.1.0.5558.inl" @@ -96,6 +99,7 @@ const char *Lib_XONLINES = "XONLINES"; #include "HLEDataBase/XG.1.0.4361.inl" #include "HLEDataBase/XG.1.0.4432.inl" #include "HLEDataBase/XG.1.0.4627.inl" +#include "HLEDataBase/XG.1.0.5028.inl" #include "HLEDataBase/XG.1.0.5233.inl" #include "HLEDataBase/XG.1.0.5344.inl" #include "HLEDataBase/XG.1.0.5558.inl" @@ -105,6 +109,7 @@ const char *Lib_XONLINES = "XONLINES"; #include "HLEDataBase/XNet.1.0.4627.inl" #include "HLEDataBase/XOnline.1.0.4361.inl" #include "HLEDataBase/XOnline.1.0.4627.inl" +#include "HLEDataBase/XOnline.1.0.5028.inl" #include "HLEDataBase/XOnline.1.0.5233.inl" #include "HLEDataBase/XOnline.1.0.5344.inl" #include "HLEDataBase/XOnline.1.0.5558.inl" @@ -130,6 +135,7 @@ const HLEData HLEDataBase[] = HLE_ENTRY(Lib_XAPILIB, XAPI, 4432), HLE_ENTRY(Lib_XAPILIB, XAPI, 4627), HLE_ENTRY(Lib_XAPILIB, XAPI, 4721), + HLE_ENTRY(Lib_XAPILIB, XAPI, 5028), HLE_ENTRY(Lib_XAPILIB, XAPI, 5233), HLE_ENTRY(Lib_XAPILIB, XAPI, 5344), HLE_ENTRY(Lib_XAPILIB, XAPI, 5558), @@ -142,6 +148,7 @@ const HLEData HLEDataBase[] = HLE_ENTRY(Lib_D3D8, D3D8, 4361), HLE_ENTRY(Lib_D3D8, D3D8, 4432), HLE_ENTRY(Lib_D3D8, D3D8, 4627), + HLE_ENTRY(Lib_D3D8, D3D8, 5028), HLE_ENTRY(Lib_D3D8, D3D8, 5233), HLE_ENTRY(Lib_D3D8, D3D8, 5344), HLE_ENTRY(Lib_D3D8, D3D8, 5558), @@ -155,6 +162,7 @@ const HLEData HLEDataBase[] = HLE_ENTRY(Lib_DSOUND, DSound, 4361), HLE_ENTRY(Lib_DSOUND, DSound, 4432), HLE_ENTRY(Lib_DSOUND, DSound, 4627), + HLE_ENTRY(Lib_DSOUND, DSound, 5028), HLE_ENTRY(Lib_DSOUND, DSound, 5233), HLE_ENTRY(Lib_DSOUND, DSound, 5344), HLE_ENTRY(Lib_DSOUND, DSound, 5558), @@ -166,6 +174,7 @@ const HLEData HLEDataBase[] = HLE_ENTRY(Lib_XGRAPHC, XG, 4361), HLE_ENTRY(Lib_XGRAPHC, XG, 4432), HLE_ENTRY(Lib_XGRAPHC, XG, 4627), + HLE_ENTRY(Lib_XGRAPHC, XG, 5028), HLE_ENTRY(Lib_XGRAPHC, XG, 5233), HLE_ENTRY(Lib_XGRAPHC, XG, 5344), HLE_ENTRY(Lib_XGRAPHC, XG, 5558), @@ -179,6 +188,7 @@ const HLEData HLEDataBase[] = // TODO: Verify differences between XONLINE and XONLINES (if any) HLE_ENTRY(Lib_XONLINES, XOnline, 4627), + HLE_ENTRY(Lib_XONLINES, XOnline, 5028), HLE_ENTRY(Lib_XONLINES, XOnline, 5233), HLE_ENTRY(Lib_XONLINES, XOnline, 5344), HLE_ENTRY(Lib_XONLINES, XOnline, 5558), diff --git a/src/CxbxKrnl/HLEDataBase.h b/src/CxbxKrnl/HLEDataBase.h index 527a22724..abde1b357 100644 --- a/src/CxbxKrnl/HLEDataBase.h +++ b/src/CxbxKrnl/HLEDataBase.h @@ -40,6 +40,7 @@ #include "HLEDataBase/Xapi.1.0.4361.h" #include "HLEDataBase/Xapi.1.0.4432.h" #include "HLEDataBase/Xapi.1.0.4627.h" +#include "HLEDataBase/Xapi.1.0.5028.h" #include "HLEDataBase/Xapi.1.0.5233.h" #include "HLEDataBase/Xapi.1.0.5344.h" #include "HLEDataBase/Xapi.1.0.5558.h" @@ -51,6 +52,7 @@ #include "HLEDataBase/D3D8.1.0.4361.h" #include "HLEDataBase/D3D8.1.0.4432.h" #include "HLEDataBase/D3D8.1.0.4627.h" +#include "HLEDataBase/D3D8.1.0.5028.h" #include "HLEDataBase/D3D8.1.0.5233.h" #include "HLEDataBase/D3D8.1.0.5344.h" #include "HLEDataBase/D3D8.1.0.5558.h" @@ -62,6 +64,7 @@ #include "HLEDataBase/DSound.1.0.4361.h" #include "HLEDataBase/DSound.1.0.4432.h" #include "HLEDataBase/DSound.1.0.4627.h" +#include "HLEDataBase/DSound.1.0.5028.h" #include "HLEDataBase/DSound.1.0.5233.h" #include "HLEDataBase/DSound.1.0.5344.h" #include "HLEDataBase/DSound.1.0.5558.h" @@ -72,6 +75,7 @@ #include "HLEDataBase/XG.1.0.4361.h" #include "HLEDataBase/XG.1.0.4432.h" #include "HLEDataBase/XG.1.0.4627.h" +#include "HLEDataBase/XG.1.0.5028.h" #include "HLEDataBase/XG.1.0.5233.h" #include "HLEDataBase/XG.1.0.5344.h" #include "HLEDataBase/XG.1.0.5558.h" @@ -80,6 +84,7 @@ #include "HLEDataBase/XNet.1.0.3911.h" #include "HLEDataBase/XOnline.1.0.4361.h" #include "HLEDataBase/XOnline.1.0.4627.h" +#include "HLEDataBase/XOnline.1.0.5028.h" #include "HLEDataBase/XOnline.1.0.5233.h" #include "HLEDataBase/XOnline.1.0.5344.h" #include "HLEDataBase/XOnline.1.0.5558.h" diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl index 3d94f2e61..e43c4592a 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl @@ -1948,6 +1948,37 @@ OOVPA_NO_XREF(D3DDevice_UpdateOverlay, 4134, 11) { 0xA5, 0x89 }, // (Offset,Value)-Pair #11 OOVPA_END; +// ****************************************************************** +// * D3DDevice_GetModelView +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_GetModelView, 4134, 7) + + { 0x05, 0x57 }, + { 0x0A, 0x85 }, + { 0x10, 0xB0 }, + { 0x16, 0x10 }, + { 0x1C, 0x5E }, + { 0x22, 0xC1 }, + { 0x28, 0xE0 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_FlushVertexCache +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_FlushVertexCache, 4134, 10) + + { 0x00, 0x56 }, + { 0x07, 0x8B }, + { 0x08, 0x06 }, + { 0x0D, 0x05 }, + { 0x13, 0xC7 }, + { 0x15, 0x10 }, + { 0x17, 0x04 }, + { 0x1C, 0x00 }, + { 0x21, 0xC0 }, + { 0x26, 0xC3 }, +OOVPA_END; + // ****************************************************************** // * D3D8_4134 // ****************************************************************** @@ -2103,6 +2134,8 @@ OOVPATable D3D8_4134[] = { REGISTER_OOVPA(D3D_SetPushBufferSize, 4034, DISABLED), REGISTER_OOVPA(D3DDevice_EnableOverlay, 4134, PATCH), REGISTER_OOVPA(D3DDevice_UpdateOverlay, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_GetModelView, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_FlushVertexCache, 4134, PATCH), }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl index 645693d1c..706811f24 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl @@ -1767,6 +1767,37 @@ OOVPA_NO_XREF(D3DDevice_SetVertexShaderInput, 4361, 8) { 0xFE, 0x89 }, OOVPA_END; +// ****************************************************************** +// * D3DDevice_SetVertexData2s +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetVertexData2s, 4361, 8) + + { 0x08, 0x06 }, + { 0x0E, 0xE8 }, + { 0x16, 0x08 }, + { 0x17, 0x8D }, + { 0x18, 0x14 }, + { 0x19, 0x8D }, + { 0x1A, 0x00 }, + { 0x1F, 0xBF }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetVertexData4s +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetVertexData4s, 4361, 9) + + { 0x08, 0x06 }, + { 0x0E, 0xE8 }, + { 0x16, 0x08 }, + { 0x17, 0x8D }, + { 0x18, 0x14 }, + { 0x19, 0xCD }, + { 0x1A, 0x80 }, + { 0x1B, 0x19 }, + { 0x1F, 0xBF }, +OOVPA_END; + // ****************************************************************** // * D3D8_4361 // ****************************************************************** @@ -1916,6 +1947,8 @@ OOVPATable D3D8_4361[] = { REGISTER_OOVPA(D3DDevice_GetVertexShader, 4361, PATCH), REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 4361, PATCH), REGISTER_OOVPA(D3DDevice_SetVertexShaderInput, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexData2s, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexData4s, 4361, PATCH), }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl index 2dc5a2e66..c8137dc44 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl @@ -99,28 +99,6 @@ OOVPA_NO_XREF(D3DDevice_BeginVisibilityTest, 4627, 11) { 0x26, 0x0C }, // (Offset,Value)-Pair #11 OOVPA_END; -// ****************************************************************** -// * Direct3D_CreateDevice -// ****************************************************************** -OOVPA_NO_XREF(Direct3D_CreateDevice, 5028, 8) - - // Direct3D_CreateDevice+0x0A : jnz +0x0A - { 0x0A, 0x75 }, // (Offset,Value)-Pair #1 - { 0x0B, 0x0A }, // (Offset,Value)-Pair #2 - - // Direct3D_CreateDevice+0x80 : repe stosd - { 0x80, 0xF3 }, // (Offset,Value)-Pair #3 - { 0x81, 0xAB }, // (Offset,Value)-Pair #4 - - // Direct3D_CreateDevice+0x83 : mov eax, esi - { 0x83, 0x8B }, // (Offset,Value)-Pair #5 - { 0x84, 0xC6 }, // (Offset,Value)-Pair #6 - - // Direct3D_CreateDevice+0x91 : retn 0x18 - { 0x91, 0xC2 }, // (Offset,Value)-Pair #7 - { 0x92, 0x18 }, // (Offset,Value)-Pair #8 -OOVPA_END; - // ****************************************************************** // * D3DDevice_EndVisibilityTest // ****************************************************************** @@ -3121,6 +3099,21 @@ OOVPA_NO_XREF(D3DDevice_SetBackMaterial, 4627, 9) { 0x2E, 0x04 }, OOVPA_END; +// ****************************************************************** +// * D3DDevice_PrimeVertexCache +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_PrimeVertexCache, 4627, 8) + + { 0x1A, 0x8B }, + { 0x1B, 0x4D }, + { 0x1C, 0x04 }, + { 0x1D, 0xD1 }, + { 0x1E, 0xEE }, + { 0x2E, 0xC7 }, + { 0x3E, 0x00 }, + { 0x4E, 0x89 }, +OOVPA_END; + // ****************************************************************** // * D3D8_4627 // ****************************************************************** @@ -3336,6 +3329,7 @@ REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH), REGISTER_OOVPA(D3DDevice_SetBackMaterial, 4627, PATCH), // REGISTER_OOVPA(D3DCubeTexture_LockRect, 3925, PATCH), // TODO: This needs to be verified on 4361, not just 4242! REGISTER_OOVPA(D3D_SetPushBufferSize, 4034, DISABLED), + REGISTER_OOVPA(D3DDevice_PrimeVertexCache, 4627, PATCH), }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5028.h b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5028.h new file mode 100644 index 000000000..be60626ec --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5028.h @@ -0,0 +1,42 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->D3D8.1.0.5028.h +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** +#ifndef D3D8_5028_H +#define D3D8_5028_H + +#include "OOVPA.h" + +extern OOVPATable D3D8_5028[]; +extern uint32 D3D8_5028_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5028.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5028.inl new file mode 100644 index 000000000..21f964f58 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5028.inl @@ -0,0 +1,1020 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->D3D8.1.0.5028.cpp +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** + +// ****************************************************************** +// * Direct3D_CreateDevice +// ****************************************************************** +OOVPA_NO_XREF(Direct3D_CreateDevice, 5028, 8) + + // Direct3D_CreateDevice+0x0A : jnz +0x0A + { 0x0A, 0x75 }, // (Offset,Value)-Pair #1 + { 0x0B, 0x0A }, // (Offset,Value)-Pair #2 + + // Direct3D_CreateDevice+0x80 : repe stosd + { 0x80, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x81, 0xAB }, // (Offset,Value)-Pair #4 + + // Direct3D_CreateDevice+0x83 : mov eax, esi + { 0x83, 0x8B }, // (Offset,Value)-Pair #5 + { 0x84, 0xC6 }, // (Offset,Value)-Pair #6 + + // Direct3D_CreateDevice+0x91 : retn 0x18 + { 0x91, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x92, 0x18 }, // (Offset,Value)-Pair #8 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetRenderState_TextureFactor +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetRenderState_TextureFactor, 5028, 9) + + // D3DDevice_SetRenderState_TextureFactor+0x07 : mov eax, [esi+0x036C] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x86 }, // (Offset,Value)-Pair #2 + { 0x09, 0x6C }, // (Offset,Value)-Pair #3 + { 0x0A, 0x03 }, // (Offset,Value)-Pair #4 + + // D3DDevice_SetRenderState_TextureFactor+0x2F : nop + { 0x2F, 0x90 }, // (Offset,Value)-Pair #5 + + // D3DDevice_SetRenderState_TextureFactor+0x41 : retn 0x04 + { 0x41, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x42, 0x04 }, // (Offset,Value)-Pair #7 + + // D3DDevice_SetRenderState_TextureFactor+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #9 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5028, 7) + + { 0x0F, 0xB4 }, + { 0x10, 0x15 }, + { 0x16, 0x0D }, + { 0x1F, 0x3C }, + { 0x34, 0x36 }, + { 0x58, 0x05 }, + { 0x75, 0x04 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetRenderState_ZEnable +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetRenderState_ZEnable, 5028, 8) + + { 0x13, 0x8B }, + { 0x22, 0xC9 }, + { 0x34, 0x89 }, + { 0x46, 0x0C }, + { 0x5A, 0x74 }, + { 0x6D, 0x8B }, + { 0x7C, 0xCE }, + { 0x8E, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMask +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetRenderState_MultiSampleMask, 5028, 8) + + { 0x0A, 0xA3 }, + { 0x12, 0x56 }, + { 0x1C, 0x8B }, + { 0x2A, 0x85 }, + { 0x30, 0x01 }, + { 0x3D, 0xC7 }, + { 0x44, 0x78 }, + { 0x4E, 0x04 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetRenderState_SampleAlpha +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetRenderState_SampleAlpha, 5028, 7) + + { 0x0B, 0xC1 }, + { 0x15, 0x0B }, + { 0x1C, 0x8B }, + { 0x28, 0x85 }, + { 0x30, 0x07 }, + { 0x3B, 0xC7 }, + { 0x44, 0x83 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_CreateTexture2 +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_CreateTexture2, 5028, 8) + + { 0x10, 0x0F }, + { 0x14, 0x4C }, + { 0x18, 0x33 }, + { 0x1C, 0x05 }, + { 0x1F, 0x24 }, + { 0x43, 0xF8 }, + { 0x4A, 0x01 }, + { 0x4F, 0x64 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_BlockUntilVerticalBlank +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_BlockUntilVerticalBlank, 5028, 7) + + { 0x05, 0x6A }, + { 0x12, 0x00 }, + { 0x15, 0x6A }, + { 0x16, 0x06 }, + { 0x17, 0x05 }, + { 0x1C, 0x50 }, + { 0x23, 0xC3 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_GetBackBuffer2 +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_GetBackBuffer2, 5028, 12) + + // D3DDevice_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // D3DDevice_GetBackBuffer+0x0D : jnz +0x19 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x19 }, // (Offset,Value)-Pair #5 + + // D3DDevice_GetBackBuffer+0x15 : mov esi, [ecx+eax*4+0x15C0] + { 0x15, 0x8B }, // (Offset,Value)-Pair #6 + { 0x16, 0xB4 }, // (Offset,Value)-Pair #7 + { 0x17, 0x81 }, // (Offset,Value)-Pair #8 + { 0x18, 0xC0 }, // (Offset,Value)-Pair #9 + { 0x19, 0x15 }, // (Offset,Value)-Pair #10 + + // D3DDevice_GetBackBuffer+0x40 : retn 0x04 + { 0x40, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x41, 0x04 }, // (Offset,Value)-Pair #12 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_GetRenderTarget2 +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_GetRenderTarget2, 5028, 6) + + { 0x05, 0x56 }, + { 0x06, 0x8B }, + { 0x0A, 0x00 }, + { 0x0E, 0x74 }, + { 0x16, 0x8B }, + { 0x17, 0xC6 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_GetDepthStencilSurface2 +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_GetDepthStencilSurface2, 5028, 7) + + { 0x05, 0x56 }, + { 0x06, 0x8B }, + { 0x0A, 0x00 }, + { 0x0E, 0x75 }, + { 0x12, 0x5E }, + { 0x1A, 0x8B }, + { 0x1B, 0xC6 }, +OOVPA_END; + +// ****************************************************************** +// * D3D_GetDeviceCaps +// ****************************************************************** +OOVPA_NO_XREF(D3D_GetDeviceCaps, 5028, 7) + + { 0x04, 0x85 }, + { 0x0A, 0x08 }, + { 0x10, 0x83 }, + { 0x16, 0x08 }, + { 0x1C, 0xC2 }, + { 0x22, 0x0C }, + { 0x29, 0x33 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetViewport +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetViewport, 5028, 9) + + // D3DDevice_SetViewport+0x0A : mov eax, [esi+0x15B4] + { 0x0A, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0B, 0x86 }, // (Offset,Value)-Pair #2 + { 0x0C, 0xB4 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x15 }, // (Offset,Value)-Pair #4 + + // D3DDevice_SetViewport+0x63 : shl edi, cl + { 0x63, 0xD3 }, // (Offset,Value)-Pair #5 + { 0x64, 0xE7 }, // (Offset,Value)-Pair #6 + + // D3DDevice_SetViewport+0xDF : and ecx, 0x0F + { 0xDF, 0x83 }, // (Offset,Value)-Pair #7 + { 0xE0, 0xE1 }, // (Offset,Value)-Pair #8 + { 0xE1, 0x0F }, // (Offset,Value)-Pair #9 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetLight +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetLight, 5028, 12) + + // D3DDevice_SetLight+0x11 : mov edi, [ebp+0x390] + { 0x11, 0x8B }, // (Offset,Value)-Pair #1 + { 0x12, 0xBD }, // (Offset,Value)-Pair #2 + { 0x13, 0x90 }, // (Offset,Value)-Pair #3 + { 0x14, 0x03 }, // (Offset,Value)-Pair #4 + + // D3DDevice_SetLight+0x30 : shl eax, 0x04 + { 0x30, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x31, 0xE0 }, // (Offset,Value)-Pair #6 + { 0x32, 0x04 }, // (Offset,Value)-Pair #7 + + // D3DDevice_SetLight+0xBD : rep stosb + { 0xBD, 0xF3 }, // (Offset,Value)-Pair #8 + { 0xBE, 0xAB }, // (Offset,Value)-Pair #9 + + // D3DDevice_SetLight+0xFD : mov ecx, [ebx+0x68] + { 0xFD, 0x8B }, // (Offset,Value)-Pair #10 + { 0xFE, 0x4B }, // (Offset,Value)-Pair #11 + { 0xFF, 0x68 }, // (Offset,Value)-Pair #12 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_LightEnable +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_LightEnable, 5028, 13) + + // D3DDevice_LightEnable+0x0F : cmp ebx, [esi+0x0390] + { 0x0F, 0x3B }, // (Offset,Value)-Pair #1 + { 0x10, 0x9E }, // (Offset,Value)-Pair #2 + { 0x11, 0x90 }, // (Offset,Value)-Pair #3 + { 0x12, 0x03 }, // (Offset,Value)-Pair #4 + + // D3DDevice_LightEnable+0x6B : test eax, eax + { 0x6B, 0x85 }, // (Offset,Value)-Pair #5 + { 0x6C, 0xC0 }, // (Offset,Value)-Pair #6 + + // D3DDevice_LightEnable+0x9E : mov eax, [eax+0x8C] + { 0x9E, 0x8B }, // (Offset,Value)-Pair #7 + { 0x9F, 0x80 }, // (Offset,Value)-Pair #8 + { 0xA0, 0x8C }, // (Offset,Value)-Pair #9 + + // D3DDevice_LightEnable+0xBC : jz +0x12 + { 0xBC, 0x74 }, // (Offset,Value)-Pair #10 + { 0xBD, 0x12 }, // (Offset,Value)-Pair #11 + + // D3DDevice_LightEnable+0xE1 : retn 0x08 + { 0xE1, 0xC2 }, // (Offset,Value)-Pair #12 + { 0xE2, 0x08 }, // (Offset,Value)-Pair #13 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetIndices +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetIndices, 5028, 7) + + { 0x0F, 0x10 }, + { 0x20, 0xC7 }, + { 0x31, 0xC0 }, + { 0x42, 0x78 }, + { 0x53, 0xBE }, + { 0x64, 0x89 }, + { 0x75, 0x10 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetTileNoWait +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetTileNoWait, 5028, 11) + + // D3DDevice_SetTileNoWait+0x06 : sub esp, 0x18 + { 0x06, 0x83 }, // (Offset,Value)-Pair #1 + { 0x07, 0xEC }, // (Offset,Value)-Pair #2 + { 0x08, 0x18 }, // (Offset,Value)-Pair #3 + + // D3DDevice_SetTileNoWait+0x15 : cmp [esi+4], eax + { 0x15, 0x39 }, // (Offset,Value)-Pair #4 + { 0x16, 0x46 }, // (Offset,Value)-Pair #5 + { 0x17, 0x04 }, // (Offset,Value)-Pair #6 + + // D3DDevice_SetTileNoWait+0x3D : lea edi, [edx+ecx*8+0x1660] + { 0x3D, 0x8D }, // (Offset,Value)-Pair #7 + { 0x3E, 0xBC }, // (Offset,Value)-Pair #8 + { 0x3F, 0xCA }, // (Offset,Value)-Pair #9 + { 0x40, 0x60 }, // (Offset,Value)-Pair #10 + { 0x41, 0x16 }, // (Offset,Value)-Pair #11 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_Clear +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_Clear, 5028, 8) + { 0x1D, 0x8A }, + { 0x3C, 0x8B }, + { 0x5B, 0x00 }, + { 0x7A, 0xFD }, + { 0x99, 0x25 }, + { 0xB8, 0x00 }, + { 0xD7, 0x75 }, + { 0xF6, 0xFF }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_DrawVertices +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_DrawVertices, 5028, 7) + + { 0x12, 0x8B }, + { 0x26, 0x8B }, + { 0x37, 0x00 }, + { 0x4A, 0x27 }, + { 0x5D, 0x89 }, + { 0x70, 0x75 }, + { 0x83, 0x40 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_DrawIndexedVertices +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_DrawIndexedVertices, 5028, 8) + + { 0x1E, 0x5E }, + { 0x3E, 0x17 }, + { 0x5E, 0x00 }, + { 0x7E, 0x8B }, + { 0x9E, 0x89 }, + { 0xBE, 0x2B }, + { 0xDE, 0x00 }, + { 0xFE, 0x04 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetVertexData2f +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetVertexData2f, 5028, 8) + + { 0x07, 0x8B }, + { 0x0C, 0x72 }, + { 0x13, 0x8B }, + { 0x1A, 0x80 }, + { 0x21, 0x0C }, + { 0x28, 0x89 }, + { 0x2F, 0xC0 }, + { 0x36, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_Begin +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_Begin, 5028, 7) + + { 0x07, 0xE8 }, + { 0x0C, 0x8B }, + { 0x13, 0xE8 }, + { 0x1A, 0x24 }, + { 0x21, 0x00 }, + { 0x28, 0x89 }, + { 0x2F, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_LoadVertexShader +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_LoadVertexShader, 5028, 7) + + { 0x09, 0x45 }, + { 0x14, 0x75 }, + { 0x21, 0x8B }, + { 0x2D, 0x8B }, + { 0x35, 0x04 }, + { 0x40, 0x00 }, + { 0x4B, 0x5E }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetShaderConstantMode +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetShaderConstantMode, 5028, 8) + + { 0x1D, 0xFD }, + { 0x3C, 0x8B }, + { 0x5B, 0x0B }, + { 0x7A, 0x56 }, + { 0x99, 0xC0 }, + { 0xB8, 0x00 }, + { 0xD7, 0x89 }, + { 0xF6, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetVertexShader +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetVertexShader, 5028, 14) + + // D3DDevice_SetVertexShader+0x06 : test bl, 1 + { 0x06, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x08, 0x01 }, // (Offset,Value)-Pair #3 + + // D3DDevice_SetVertexShader+0x11 : mov eax, [esi+0x037C] + { 0x11, 0x8B }, // (Offset,Value)-Pair #4 + { 0x12, 0x86 }, // (Offset,Value)-Pair #5 + { 0x13, 0x7C }, // (Offset,Value)-Pair #6 + { 0x14, 0x03 }, // (Offset,Value)-Pair #7 + + // D3DDevice_SetVertexShader+0x90 : retn 0x04 + { 0x90, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x91, 0x04 }, // (Offset,Value)-Pair #9 + + // D3DDevice_SetVertexShader+0xB0 : mov dword ptr [eax], 0x4194C + { 0xB0, 0xC7 }, // (Offset,Value)-Pair #10 + { 0xB1, 0x00 }, // (Offset,Value)-Pair #11 + { 0xB2, 0x4C }, // (Offset,Value)-Pair #12 + { 0xB3, 0x19 }, // (Offset,Value)-Pair #13 + { 0xB4, 0x04 }, // (Offset,Value)-Pair #14 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_Swap +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_Swap, 5028, 7) + + { 0x1B, 0xE8 }, + { 0x38, 0xC3 }, + { 0x55, 0xC0 }, + { 0x72, 0x3F }, + { 0x8F, 0x8E }, + { 0xAC, 0xC6 }, + { 0xC9, 0xC0 }, +OOVPA_END; + +// ****************************************************************** +// * D3D::SetFence +// ****************************************************************** +OOVPA_XREF(D3D_SetFence, 5028, 7, + + XREF_D3D_SETFENCE, + XRefZero) + + { 0x0E, 0x05 }, + { 0x18, 0xC9 }, + { 0x3E, 0x3F }, + { 0x5E, 0x28 }, + { 0x86, 0x5D }, + { 0x98, 0xE8 }, + { 0xA2, 0x04 }, +OOVPA_END; + +// ****************************************************************** +// * D3D::BlockOnTime +// ****************************************************************** +OOVPA_XREF(D3D_BlockOnTime, 5028, 6, + + XREF_D3D_BLOCKONTIME, + XRefZero) + + { 0x09, 0x30 }, + { 0x27, 0x07 }, + { 0x55, 0x7E }, + { 0x7B, 0x58 }, + { 0xE3, 0x80 }, + { 0xF5, 0x2C }, +OOVPA_END; + +// ****************************************************************** +// * D3D_KickOffAndWaitForIdle +// ****************************************************************** +OOVPA_NO_XREF(D3D_KickOffAndWaitForIdle, 5028, 9) + + // D3D_KickOffAndWaitForIdle+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // D3D_KickOffAndWaitForIdle+0x05 : mov ecx, [eax+0x2C] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x48 }, // (Offset,Value)-Pair #3 + { 0x07, 0x2C }, // (Offset,Value)-Pair #4 + + // D3D_KickOffAndWaitForIdle+0x08 : push 2 + { 0x08, 0x6A }, // (Offset,Value)-Pair #5 + { 0x09, 0x02 }, // (Offset,Value)-Pair #6 + + // D3D_KickOffAndWaitForIdle+0x0A : push ecx + { 0x0A, 0x51 }, // (Offset,Value)-Pair #7 + + // D3D_KickOffAndWaitForIdle+0x0B : call [addr] + { 0x0B, 0xE8 }, // (Offset,Value)-Pair #8 + + // D3D_KickOffAndWaitForIdle+0x10 : retn + { 0x10, 0xC3 }, // (Offset,Value)-Pair #9 +OOVPA_END; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +OOVPA_NO_XREF(Get2DSurfaceDesc, 5028, 10) + + // Get2DSurfaceDesc+0x2B : movzx edx, byte ptr [edi+0x0D] + { 0x2B, 0x0F }, // (Offset,Value)-Pair #1 + { 0x2C, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x2D, 0x57 }, // (Offset,Value)-Pair #3 + { 0x2E, 0x0D }, // (Offset,Value)-Pair #4 + + // Get2DSurfaceDesc+0x52 : mov edx, [eax+0x15C0] + { 0x52, 0x8B }, // (Offset,Value)-Pair #5 + { 0x53, 0x90 }, // (Offset,Value)-Pair #6 + { 0x54, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x55, 0x15 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_SetVertexShaderConstantNotInline +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_SetVertexShaderConstantNotInline, 5028, 9) + + { 0x0B, 0x10 }, + { 0x10, 0x75 }, + { 0x11, 0x15 }, + { 0x12, 0x56 }, + { 0x13, 0x57 }, + { 0x14, 0x8B }, + { 0x1A, 0xC7 }, + { 0x31, 0xC2 }, + { 0x32, 0x04 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_AddRef +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_AddRef, 5028, 10) + + // D3DDevice_AddRef+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // D3DDevice_AddRef+0x05 : mov ecx, [eax+0x04FC] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x88 }, // (Offset,Value)-Pair #3 + { 0x07, 0xFC }, // (Offset,Value)-Pair #4 + { 0x08, 0x04 }, // (Offset,Value)-Pair #5 + + // D3DDevice_AddRef+0x0B : inc ecx + { 0x0B, 0x41 }, // (Offset,Value)-Pair #6 + + // D3DDevice_AddRef+0x0C : mov [eax+0x04FC], ecx + { 0x0C, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0D, 0x88 }, // (Offset,Value)-Pair #8 + { 0x0E, 0xFC }, // (Offset,Value)-Pair #9 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #10 +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_InsertCallback +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_InsertCallback, 5028, 7) + + { 0x0C, 0x72 }, + { 0x1A, 0x10 }, + { 0x28, 0x85 }, + { 0x36, 0xC7 }, + { 0x44, 0x0C }, + { 0x52, 0x00 }, + { 0x60, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_GetVertexShader +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_GetVertexShader, 5028, 7) + + { 0x05, 0x8B }, + { 0x06, 0x88 }, + { 0x07, 0x80 }, + { 0x0A, 0x00 }, + { 0x0D, 0x24 }, + { 0x10, 0x0A }, + { 0x13, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_GetVertexShaderConstant +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_GetVertexShaderConstant, 5028, 8) + + { 0x07, 0x24 }, + { 0x08, 0x08 }, + { 0x09, 0xC1 }, + { 0x0A, 0xE1 }, + { 0x0B, 0x04 }, + { 0x10, 0x7C }, + { 0x14, 0xE6 }, + { 0x18, 0x02 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_GetPixelShader +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_GetPixelShader, 5028, 7) + + { 0x05, 0x8B }, + { 0x06, 0x88 }, + { 0x07, 0x6C }, + { 0x0A, 0x00 }, + { 0x0D, 0x24 }, + { 0x10, 0x0A }, + { 0x13, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * D3D_CommonSetRenderTarget +// ****************************************************************** +OOVPA_XREF(D3D_CommonSetRenderTarget, 5028, 10, + + XREF_COMMONSETRENDERTARGET, + XRefZero) + + { 0x06, 0x24 }, + { 0x07, 0x24 }, + { 0x08, 0x55 }, + { 0x09, 0x56 }, + { 0x0A, 0x8B }, + { 0x35, 0x8B }, + { 0x3C, 0x96 }, + { 0x47, 0xC4 }, + { 0x57, 0x10 }, + { 0x67, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_PersistDisplay +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_PersistDisplay, 5028, 10) + + { 0x01, 0xEC }, + { 0x02, 0x08 }, + { 0x03, 0x53 }, + { 0x04, 0x8B }, + { 0x05, 0x1D }, + { 0x11, 0xC0 }, + { 0x12, 0x74 }, + { 0x13, 0x0F }, + { 0x23, 0x8B }, + { 0x24, 0x83 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_BeginPush +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_BeginPush, 5028, 6) + + { 0x06, 0x6A }, + { 0x07, 0x00 }, + { 0x0D, 0x8B }, + { 0x0E, 0x44 }, + { 0x12, 0x89 }, + { 0x16, 0xE9 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_End +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_End, 5028, 12) + + // D3DDevice_End+0x13 : mov dword ptr [eax], 0x417FC + { 0x13, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x14, 0x00 }, // (Offset,Value)-Pair #2 + { 0x15, 0xFC }, // (Offset,Value)-Pair #3 + { 0x16, 0x17 }, // (Offset,Value)-Pair #4 + { 0x17, 0x04 }, // (Offset,Value)-Pair #5 + { 0x18, 0x00 }, // (Offset,Value)-Pair #6 + + // D3DDevice_End+0x28 : test ah, 0x10 + { 0x28, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x29, 0xC4 }, // (Offset,Value)-Pair #8 + { 0x2A, 0x10 }, // (Offset,Value)-Pair #9 + + // D3DDevice_End+0x2B : jz +0x07 + { 0x2B, 0x74 }, // (Offset,Value)-Pair #10 + { 0x2C, 0x07 }, // (Offset,Value)-Pair #11 + + // D3DDevice_End+0x3C : retn + { 0x3C, 0xC3 }, // (Offset,Value)-Pair #12 +OOVPA_END; + +// ****************************************************************** +// * D3DVertexBuffer_GetDesc +// ****************************************************************** +OOVPA_NO_XREF(D3DVertexBuffer_GetDesc, 5028, 7) + + { 0x02, 0x24 }, + { 0x06, 0x74 }, + { 0x0A, 0xC7 }, + { 0x0E, 0x00 }, + { 0x15, 0x89 }, + { 0x16, 0x46 }, + { 0x1A, 0x08 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_IsFencePending +// ****************************************************************** +OOVPA_XREF(D3DDevice_IsFencePending, 5028, 6, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x01, XREF_D3DDEVICE ), + + { 0x07, 0x30 }, + { 0x0A, 0x2C }, + { 0x10, 0xD1 }, + { 0x17, 0x1B }, + { 0x1C, 0x04 }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_UpdateOverlay +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_UpdateOverlay, 5028, 8) + + { 0x0F, 0x89 }, + { 0x10, 0x88 }, + { 0x11, 0xA8 }, + { 0x12, 0x1F }, + { 0x70, 0x4F }, + { 0x78, 0x8B }, + { 0x80, 0xCA }, + { 0x88, 0x8B }, +OOVPA_END; + +// ****************************************************************** +// * D3DDevice_GetOverlayUpdateStatus +// ****************************************************************** +OOVPA_NO_XREF(D3DDevice_GetOverlayUpdateStatus, 5028, 12) + + // D3DDevice_GetOverlayUpdateStatus+0x05 : mov ecx, [eax+0x2BA8] + { 0x05, 0x8B }, // (Offset,Value)-Pair #1 + { 0x06, 0x88 }, // (Offset,Value)-Pair #2 + { 0x07, 0xA8 }, // (Offset,Value)-Pair #3 + { 0x08, 0x1F }, // (Offset,Value)-Pair #4 + + // D3DDevice_GetOverlayUpdateStatus+0x0C : mov esi, [eax+0x2580] + { 0x0C, 0x8B }, // (Offset,Value)-Pair #5 + { 0x0D, 0xB0 }, // (Offset,Value)-Pair #6 + { 0x0E, 0x80 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x19 }, // (Offset,Value)-Pair #8 + + // D3DDevice_GetOverlayUpdateStatus+0x16 : setnz dl + { 0x16, 0x0F }, // (Offset,Value)-Pair #9 + { 0x17, 0x95 }, // (Offset,Value)-Pair #10 + { 0x18, 0xC2 }, // (Offset,Value)-Pair #11 + + // D3DDevice_GetOverlayUpdateStatus+0x1C : retn + { 0x1C, 0xC3 }, // (Offset,Value)-Pair #12 +OOVPA_END; + +// ****************************************************************** +// * D3D8_5028 +// ****************************************************************** +OOVPATable D3D8_5028[] = { + + REGISTER_OOVPA(Direct3D_CreateDevice, 5028, PATCH), + REGISTER_OOVPA(D3D_CheckDeviceFormat, 4361, DISABLED), + REGISTER_OOVPA(D3DDevice_BeginVisibilityTest, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetCreationParameters, 4034, PATCH), + REGISTER_OOVPA(D3DDevice_EndVisibilityTest, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetVisibilityTestResult, 3925, PATCH), + REGISTER_OOVPA(D3D_KickOffAndWaitForIdle, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_BeginPush, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_EndPush, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_CopyRects, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetGammaRamp, 4034, PATCH), + REGISTER_OOVPA(D3DDevice_GetBackBuffer2, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetViewport, 5028, PATCH), + REGISTER_OOVPA(D3D_CommonSetRenderTarget, 5028, XREF), + REGISTER_OOVPA(D3DDevice_SetRenderTarget, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_AddRef, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetGammaRamp, 4928, PATCH), + REGISTER_OOVPA(D3DDevice_SetShaderConstantMode, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_GetRenderTarget2, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_GetDepthStencilSurface2, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_GetTile, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetTileNoWait, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_CreateIndexBuffer2, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_CreateVertexShader, 3925, PATCH), + REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant1, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexShaderConstant4, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexShaderConstantNotInline, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_DeletePixelShader, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_CreatePixelShader, 3925, PATCH), + REGISTER_OOVPA(D3DDevice_SetPixelShader, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_CreateTexture2, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetIndices, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetTexture, 4928, PATCH), + REGISTER_OOVPA(D3DDevice_GetDisplayMode, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_RunPushBuffer, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_Begin, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexData2f, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_End, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_Clear, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_Swap, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_EnableOverlay, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_CreateVertexBuffer2, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_UpdateOverlay, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_GetOverlayUpdateStatus, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_BlockUntilVerticalBlank, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetVerticalBlankCallback, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetViewport, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetTextureState_TexCoordIndex, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetTextureState_BumpEnv, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetTextureState_BorderColor, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetTextureState_ColorKeyColor, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_VertexBlend, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_CullMode, 4034, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4432, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_NormalizeNormals, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_TextureFactor, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_ZBias, 3925, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_EdgeAntiAlias, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_FillMode, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_FogColor, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_Dxt1NoiseEnable, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_Simple, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_ZEnable, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_StencilEnable, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_LineWidth, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_OcclusionCullEnable, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleAntiAlias, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_ShadowFunc, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SwitchTexture, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_YuvEnable, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetTransform, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_GetTransform, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_GetStreamSource2, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetStreamSource, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_DrawVerticesUP, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexShader, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_DrawVertices, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetLight, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_DrawIndexedVertices, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetMaterial, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_LightEnable, 5028, PATCH), + REGISTER_OOVPA(D3DVertexBuffer_Lock2, 4627, PATCH), + REGISTER_OOVPA(D3DResource_Register, 3925, PATCH), + REGISTER_OOVPA(D3DResource_AddRef, 3925, PATCH), + REGISTER_OOVPA(D3DResource_Release, 3925, PATCH), + REGISTER_OOVPA(D3DResource_IsBusy, 4361, PATCH), + // REGISTER_OOVPA(D3DResource_GetType, 4627, DISABLED), // I forget why I had this in here... + REGISTER_OOVPA(Get2DSurfaceDesc, 5028, PATCH), + REGISTER_OOVPA(D3DSurface_GetDesc, 4361, PATCH), + REGISTER_OOVPA(D3DSurface_LockRect, 3925, PATCH), + REGISTER_OOVPA(D3DBaseTexture_GetLevelCount, 4361, PATCH), + REGISTER_OOVPA(D3DTexture_GetSurfaceLevel2, 4627, PATCH), + REGISTER_OOVPA(D3DTexture_LockRect, 3925, PATCH), + REGISTER_OOVPA(D3DVolumeTexture_LockBox, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetViewportOffsetAndScale, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_DeleteVertexShader, 3925, PATCH), + REGISTER_OOVPA(D3DDevice_SelectVertexShaderDirect, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetShaderConstantMode, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetVertexShader, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_GetVertexShaderConstant, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexShaderInputDirect, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetVertexShaderInput, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_RunVertexStateShader, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_LoadVertexShader, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_LoadVertexShaderProgram, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SelectVertexShader, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetVertexShaderSize, 3925, PATCH), + REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_EndStateBlock, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_GetVertexShaderType, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetVertexShaderDeclaration, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetVertexShaderFunction, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexShaderInput, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_Release, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_StencilFail, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetPixelShader, 4721, PATCH), + REGISTER_OOVPA(D3DDevice_Reset, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetScissors, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetPalette, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetBackBufferScale, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_Reset, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetPixelShaderProgram, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetDisplayFieldStatus, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetScreenSpaceOffset, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_CreateStateBlock, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_InsertCallback, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_DrawRectPatch, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetProjectionViewportMatrix, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_BackFillMode, 4531, PATCH), + REGISTER_OOVPA(D3DDevice_GetDeviceCaps, 3925, DISABLED), + REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMask, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_LogicOp, 4627, PATCH), + REGISTER_OOVPA(D3D_SetFence, 5028, XREF), + REGISTER_OOVPA(D3DDevice_InsertFence, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_IsFencePending, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_KickOff, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetPixelShaderConstant, 4928, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_TwoSidedLighting, 4134, PATCH), // Beware of the typo... + REGISTER_OOVPA(D3DDevice_GetTexture2, 4627, PATCH), + // REGISTER_OOVPA(D3DDevice_SetStateVB, 4627, PATCH), + // REGISTER_OOVPA(D3DDevice_SetStateUP, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_DrawIndexedVerticesUP, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetStipple, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_RopZCmpAlwaysRead, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_RopZRead, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_DoNotCullUncompressed, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_PersistDisplay, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetSwapCallback, 4928, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_FrontFace, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleMode, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_MultiSampleRenderTargetMode, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_StencilCullEnable, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_BeginStateBlock, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_EndStateBlock, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_ApplyStateBlock, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_CaptureStateBlock, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_DeleteStateBlock, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexData4ub, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexData4f, 4134, PATCH), + REGISTER_OOVPA(D3D_BlockOnTime, 5028, XREF), + REGISTER_OOVPA(D3DDevice_BlockOnFence, 4627, PATCH), + REGISTER_OOVPA(Lock3DSurface, 4627, PATCH), + REGISTER_OOVPA(Lock2DSurface, 3925, PATCH), + REGISTER_OOVPA(D3DDevice_CreateImageSurface, 4627, PATCH), + REGISTER_OOVPA(D3DCubeTexture_GetCubeMapSurface2, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetSoftDisplayFilter, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetFlickerFilter, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetPixelShader, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_CreatePalette2, 4627, PATCH), + REGISTER_OOVPA(D3DPalette_Lock2, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_BeginPushBuffer, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_EndPushBuffer, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetPersistedSurface2, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetModelView, 4627, PATCH), + REGISTER_OOVPA(D3D_LazySetPointParams, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetDepthClipPlanes, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_GetMaterial, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_KickOff, 4627, ALIAS, D3DDevice_KickPushBuffer), + REGISTER_OOVPA(D3DDevice_GetBackMaterial, 4627, PATCH), + REGISTER_OOVPA(D3DDevice_SetBackMaterial, 4627, PATCH), + REGISTER_OOVPA(D3D_SetPushBufferSize, 4034, DISABLED), + REGISTER_OOVPA(D3DDevice_SetRenderState_SampleAlpha, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetRenderState_PSTextureModes, 4361, PATCH), + REGISTER_OOVPA(D3D_GetDeviceCaps, 5028, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexDataColor, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_GetModelView, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_FlushVertexCache, 4134, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexData2s, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_SetVertexData4s, 4361, PATCH), + REGISTER_OOVPA(D3DDevice_PrimeVertexCache, 4627, PATCH), + REGISTER_OOVPA(D3DVertexBuffer_GetDesc, 5028, PATCH), +}; + +// ****************************************************************** +// * D3D8_5028_SIZE +// ****************************************************************** +uint32 D3D8_5028_SIZE = sizeof(D3D8_5028); diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl index 559352bf5..f9b7f1126 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl @@ -35,24 +35,7 @@ // ****************************************************************** // * Direct3D_CreateDevice // ****************************************************************** -OOVPA_NO_XREF(Direct3D_CreateDevice, 5233, 8) - - // Direct3D_CreateDevice+0x0A : jnz +0x0A - { 0x0A, 0x75 }, // (Offset,Value)-Pair #1 - { 0x0B, 0x0A }, // (Offset,Value)-Pair #2 - - // Direct3D_CreateDevice+0x80 : repe stosd - { 0x80, 0xF3 }, // (Offset,Value)-Pair #3 - { 0x81, 0xAB }, // (Offset,Value)-Pair #4 - - // Direct3D_CreateDevice+0x83 : mov eax, esi - { 0x83, 0x8B }, // (Offset,Value)-Pair #5 - { 0x84, 0xC6 }, // (Offset,Value)-Pair #6 - - // Direct3D_CreateDevice+0x91 : retn 0x18 - { 0x91, 0xC2 }, // (Offset,Value)-Pair #7 - { 0x92, 0x18 }, // (Offset,Value)-Pair #8 -OOVPA_END; +#define Direct3D_CreateDevice_5233 Direct3D_CreateDevice_5028 // ****************************************************************** // * D3DDevice_GetDisplayFieldStatus @@ -236,40 +219,12 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_SetRenderState_TextureFactor // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_SetRenderState_TextureFactor, 5233, 9) - - // D3DDevice_SetRenderState_TextureFactor+0x07 : mov eax, [esi+0x036C] - { 0x07, 0x8B }, // (Offset,Value)-Pair #1 - { 0x08, 0x86 }, // (Offset,Value)-Pair #2 - { 0x09, 0x6C }, // (Offset,Value)-Pair #3 - { 0x0A, 0x03 }, // (Offset,Value)-Pair #4 - - // D3DDevice_SetRenderState_TextureFactor+0x2F : nop - { 0x2F, 0x90 }, // (Offset,Value)-Pair #5 - - // D3DDevice_SetRenderState_TextureFactor+0x41 : retn 0x04 - { 0x41, 0xC2 }, // (Offset,Value)-Pair #6 - { 0x42, 0x04 }, // (Offset,Value)-Pair #7 - - // D3DDevice_SetRenderState_TextureFactor+0x4E : retn 0x04 - { 0x4E, 0xC2 }, // (Offset,Value)-Pair #8 - { 0x4F, 0x04 }, // (Offset,Value)-Pair #9 -OOVPA_END; +#define D3DDevice_SetRenderState_TextureFactor_5233 D3DDevice_SetRenderState_TextureFactor_5028 // ****************************************************************** // * D3DDevice_SetRenderState_ZEnable // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_SetRenderState_ZEnable, 5233, 8) - - { 0x13, 0x8B }, - { 0x22, 0xC9 }, - { 0x34, 0x89 }, - { 0x46, 0x0C }, - { 0x5A, 0x74 }, - { 0x6D, 0x8B }, - { 0x7C, 0xCE }, - { 0x8E, 0x00 }, -OOVPA_END; +#define D3DDevice_SetRenderState_ZEnable_5233 D3DDevice_SetRenderState_ZEnable_5028 // ****************************************************************** // * D3DDevice_SetIndices @@ -375,16 +330,7 @@ OOVPA_END; // ****************************************************************** // * D3DTexture_LockRect // ****************************************************************** -OOVPA_NO_XREF(D3DTexture_LockRect, 5233, 7) - - { 0x03, 0x14 }, - { 0x08, 0x8B }, - { 0x0D, 0x8B }, - { 0x12, 0x8B }, - { 0x17, 0x50 }, - { 0x20, 0xC2 }, - { 0x21, 0x14 }, -OOVPA_END; +#define D3DTexture_LockRect_5233 D3DTexture_LockRect_3925 // ****************************************************************** // * Get2DSurfaceDesc @@ -411,28 +357,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_GetBackBuffer2 // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_GetBackBuffer2, 5233, 12) - - // D3DDevice_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF - { 0x04, 0x83 }, // (Offset,Value)-Pair #1 - { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 - { 0x06, 0xFF }, // (Offset,Value)-Pair #3 - - // D3DDevice_GetBackBuffer+0x0D : jnz +0x19 - { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 - { 0x0E, 0x19 }, // (Offset,Value)-Pair #5 - - // D3DDevice_GetBackBuffer+0x15 : mov esi, [ecx+eax*4+0x15C0] - { 0x15, 0x8B }, // (Offset,Value)-Pair #6 - { 0x16, 0xB4 }, // (Offset,Value)-Pair #7 - { 0x17, 0x81 }, // (Offset,Value)-Pair #8 - { 0x18, 0xC0 }, // (Offset,Value)-Pair #9 - { 0x19, 0x15 }, // (Offset,Value)-Pair #10 - - // D3DDevice_GetBackBuffer+0x40 : retn 0x04 - { 0x40, 0xC2 }, // (Offset,Value)-Pair #11 - { 0x41, 0x04 }, // (Offset,Value)-Pair #12 -OOVPA_END; +#define D3DDevice_GetBackBuffer2_5233 D3DDevice_GetBackBuffer2_5028 // ****************************************************************** // * D3DDevice_UpdateOverlay @@ -539,30 +464,12 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_GetDepthStencilSurface2 // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_GetDepthStencilSurface2, 5233, 7) - - { 0x05, 0x56 }, - { 0x06, 0x8B }, - { 0x0A, 0x00 }, - { 0x0E, 0x75 }, - { 0x12, 0x5E }, - { 0x1A, 0x8B }, - { 0x1B, 0xC6 }, -OOVPA_END; +#define D3DDevice_GetDepthStencilSurface2_5233 D3DDevice_GetDepthStencilSurface2_5028 // ****************************************************************** // * D3D_GetDeviceCaps // ****************************************************************** -OOVPA_NO_XREF(D3D_GetDeviceCaps, 5233, 7) - - { 0x04, 0x85 }, - { 0x0A, 0x08 }, - { 0x10, 0x83 }, - { 0x16, 0x08 }, - { 0x1C, 0xC2 }, - { 0x22, 0x0C }, - { 0x29, 0x33 }, -OOVPA_END; +#define D3D_GetDeviceCaps_5233 D3D_GetDeviceCaps_5028 // ****************************************************************** // * D3DDevice_DrawVertices @@ -581,71 +488,17 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_SetLight // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_SetLight, 5233, 12) - - // D3DDevice_SetLight+0x11 : mov edi, [ebp+0x390] - { 0x11, 0x8B }, // (Offset,Value)-Pair #1 - { 0x12, 0xBD }, // (Offset,Value)-Pair #2 - { 0x13, 0x90 }, // (Offset,Value)-Pair #3 - { 0x14, 0x03 }, // (Offset,Value)-Pair #4 - - // D3DDevice_SetLight+0x30 : shl eax, 0x04 - { 0x30, 0xC1 }, // (Offset,Value)-Pair #5 - { 0x31, 0xE0 }, // (Offset,Value)-Pair #6 - { 0x32, 0x04 }, // (Offset,Value)-Pair #7 - - // D3DDevice_SetLight+0xBD : rep stosb - { 0xBD, 0xF3 }, // (Offset,Value)-Pair #8 - { 0xBE, 0xAB }, // (Offset,Value)-Pair #9 - - // D3DDevice_SetLight+0xFD : mov ecx, [ebx+0x68] - { 0xFD, 0x8B }, // (Offset,Value)-Pair #10 - { 0xFE, 0x4B }, // (Offset,Value)-Pair #11 - { 0xFF, 0x68 }, // (Offset,Value)-Pair #12 -OOVPA_END; +#define D3DDevice_SetLight_5233 D3DDevice_SetLight_5028 // ****************************************************************** // * D3DDevice_LightEnable // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_LightEnable, 5233, 13) - - // D3DDevice_LightEnable+0x0F : cmp ebx, [esi+0x0390] - { 0x0F, 0x3B }, // (Offset,Value)-Pair #1 - { 0x10, 0x9E }, // (Offset,Value)-Pair #2 - { 0x11, 0x90 }, // (Offset,Value)-Pair #3 - { 0x12, 0x03 }, // (Offset,Value)-Pair #4 - - // D3DDevice_LightEnable+0x6B : test eax, eax - { 0x6B, 0x85 }, // (Offset,Value)-Pair #5 - { 0x6C, 0xC0 }, // (Offset,Value)-Pair #6 - - // D3DDevice_LightEnable+0x9E : mov eax, [eax+0x8C] - { 0x9E, 0x8B }, // (Offset,Value)-Pair #7 - { 0x9F, 0x80 }, // (Offset,Value)-Pair #8 - { 0xA0, 0x8C }, // (Offset,Value)-Pair #9 - - // D3DDevice_LightEnable+0xBC : jz +0x12 - { 0xBC, 0x74 }, // (Offset,Value)-Pair #10 - { 0xBD, 0x12 }, // (Offset,Value)-Pair #11 - - // D3DDevice_LightEnable+0xE1 : retn 0x08 - { 0xE1, 0xC2 }, // (Offset,Value)-Pair #12 - { 0xE2, 0x08 }, // (Offset,Value)-Pair #13 -OOVPA_END; +#define D3DDevice_LightEnable_5233 D3DDevice_LightEnable_5028 // ****************************************************************** // * D3DVertexBuffer_GetDesc // ****************************************************************** -OOVPA_NO_XREF(D3DVertexBuffer_GetDesc, 5233, 7) - - { 0x02, 0x24 }, - { 0x06, 0x74 }, - { 0x0A, 0xC7 }, - { 0x0E, 0x00 }, - { 0x15, 0x89 }, - { 0x16, 0x46 }, - { 0x1A, 0x08 }, -OOVPA_END; +#define D3DVertexBuffer_GetDesc_5233 D3DVertexBuffer_GetDesc_5028 // ****************************************************************** // * D3DDevice_SetVertexShader @@ -678,49 +531,12 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_SetTileNoWait // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_SetTileNoWait, 5233, 11) - - // D3DDevice_SetTileNoWait+0x06 : sub esp, 0x18 - { 0x06, 0x83 }, // (Offset,Value)-Pair #1 - { 0x07, 0xEC }, // (Offset,Value)-Pair #2 - { 0x08, 0x18 }, // (Offset,Value)-Pair #3 - - // D3DDevice_SetTileNoWait+0x15 : cmp [esi+4], eax - { 0x15, 0x39 }, // (Offset,Value)-Pair #4 - { 0x16, 0x46 }, // (Offset,Value)-Pair #5 - { 0x17, 0x04 }, // (Offset,Value)-Pair #6 - - // D3DDevice_SetTileNoWait+0x3D : lea edi, [edx+ecx*8+0x1660] - { 0x3D, 0x8D }, // (Offset,Value)-Pair #7 - { 0x3E, 0xBC }, // (Offset,Value)-Pair #8 - { 0x3F, 0xCA }, // (Offset,Value)-Pair #9 - { 0x40, 0x60 }, // (Offset,Value)-Pair #10 - { 0x41, 0x16 }, // (Offset,Value)-Pair #11 -OOVPA_END; +#define D3DDevice_SetTileNoWait_5233 D3DDevice_SetTileNoWait_5028 // ****************************************************************** // * D3DDevice_AddRef // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_AddRef, 5233, 10) - - // D3DDevice_AddRef+0x00 : mov eax, [addr] - { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 - - // D3DDevice_AddRef+0x05 : mov ecx, [eax+0x04FC] - { 0x05, 0x8B }, // (Offset,Value)-Pair #2 - { 0x06, 0x88 }, // (Offset,Value)-Pair #3 - { 0x07, 0xFC }, // (Offset,Value)-Pair #4 - { 0x08, 0x04 }, // (Offset,Value)-Pair #5 - - // D3DDevice_AddRef+0x0B : inc ecx - { 0x0B, 0x41 }, // (Offset,Value)-Pair #6 - - // D3DDevice_AddRef+0x0C : mov [eax+0x04FC], ecx - { 0x0C, 0x89 }, // (Offset,Value)-Pair #7 - { 0x0D, 0x88 }, // (Offset,Value)-Pair #8 - { 0x0E, 0xFC }, // (Offset,Value)-Pair #9 - { 0x0F, 0x04 }, // (Offset,Value)-Pair #10 -OOVPA_END; +#define D3DDevice_AddRef_5233 D3DDevice_AddRef_5028 // ****************************************************************** // * IDirectD3DDevice8_Release @@ -885,19 +701,7 @@ OOVPA_END; // ****************************************************************** // * D3D::SetFence // ****************************************************************** -OOVPA_XREF(D3D_SetFence, 5233, 7, - - XREF_D3D_SETFENCE, - XRefZero) - - { 0x0E, 0x05 }, - { 0x18, 0xC9 }, - { 0x3E, 0x3F }, - { 0x5E, 0x28 }, - { 0x86, 0x5D }, - { 0x98, 0xE8 }, - { 0xA2, 0x04 }, -OOVPA_END; +#define D3D_SetFence_5233 D3D_SetFence_5028 // ****************************************************************** // * D3DDevice_InsertFence @@ -918,19 +722,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_IsFencePending // ****************************************************************** -OOVPA_XREF(D3DDevice_IsFencePending, 5233, 6, - - XRefNoSaveIndex, - XRefOne) - - XREF_ENTRY( 0x01, XREF_D3DDEVICE ), - - { 0x07, 0x30 }, - { 0x0A, 0x2C }, - { 0x10, 0xD1 }, - { 0x17, 0x1B }, - { 0x1C, 0x04 }, -OOVPA_END; +#define D3DDevice_IsFencePending_5233 D3DDevice_IsFencePending_5028 // ****************************************************************** // * D3D::BlockOnTime @@ -1059,15 +851,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_BeginPush // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_BeginPush, 5233, 6) - - { 0x06, 0x6A }, - { 0x07, 0x00 }, - { 0x0D, 0x8B }, - { 0x0E, 0x44 }, - { 0x12, 0x89 }, - { 0x16, 0xE9 }, -OOVPA_END; +#define D3DDevice_BeginPush_5233 D3DDevice_BeginPush_5028 // ****************************************************************** // * D3DDevice_EndPush @@ -1186,28 +970,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_End // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_End, 5233, 12) - - // D3DDevice_End+0x13 : mov dword ptr [eax], 0x417FC - { 0x13, 0xC7 }, // (Offset,Value)-Pair #1 - { 0x14, 0x00 }, // (Offset,Value)-Pair #2 - { 0x15, 0xFC }, // (Offset,Value)-Pair #3 - { 0x16, 0x17 }, // (Offset,Value)-Pair #4 - { 0x17, 0x04 }, // (Offset,Value)-Pair #5 - { 0x18, 0x00 }, // (Offset,Value)-Pair #6 - - // D3DDevice_End+0x28 : test ah, 0x10 - { 0x28, 0xF6 }, // (Offset,Value)-Pair #7 - { 0x29, 0xC4 }, // (Offset,Value)-Pair #8 - { 0x2A, 0x10 }, // (Offset,Value)-Pair #9 - - // D3DDevice_End+0x2B : jz +0x07 - { 0x2B, 0x74 }, // (Offset,Value)-Pair #10 - { 0x2C, 0x07 }, // (Offset,Value)-Pair #11 - - // D3DDevice_End+0x3C : retn - { 0x3C, 0xC3 }, // (Offset,Value)-Pair #12 -OOVPA_END; +#define D3DDevice_End_5233 D3DDevice_End_5028 // ****************************************************************** // * D3D8_5233 diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5344.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5344.inl index 62fe55201..e98f4db96 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5344.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5344.inl @@ -632,16 +632,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_BlockUntilVerticalBlank // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_BlockUntilVerticalBlank, 5344, 7) - - { 0x05, 0x6A }, - { 0x12, 0x00 }, - { 0x15, 0x6A }, - { 0x16, 0x06 }, - { 0x17, 0x05 }, - { 0x1C, 0x50 }, - { 0x23, 0xC3 }, -OOVPA_END; +#define D3DDevice_BlockUntilVerticalBlank_5344 D3DDevice_BlockUntilVerticalBlank_5028 // ****************************************************************** // * D3DDevice_PersistDisplay @@ -660,18 +651,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_SetVertexShaderConstantNotInline // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_SetVertexShaderConstantNotInline, 5344, 9) - - { 0x0B, 0x10 }, - { 0x10, 0x75 }, - { 0x11, 0x15 }, - { 0x12, 0x56 }, - { 0x13, 0x57 }, - { 0x14, 0x8B }, - { 0x1A, 0xC7 }, - { 0x31, 0xC2 }, - { 0x32, 0x04 }, -OOVPA_END; +#define D3DDevice_SetVertexShaderConstantNotInline_5344 D3DDevice_SetVertexShaderConstantNotInline_5028 // ****************************************************************** // * D3DDevice_DeleteVertexShader diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl index a5726a0ac..f9aea1bce 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl @@ -846,16 +846,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_GetModelView // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_GetModelView, 5558, 7) - - { 0x05, 0x57 }, - { 0x0A, 0x85 }, - { 0x10, 0xB0 }, - { 0x16, 0x10 }, - { 0x1C, 0x5E }, - { 0x22, 0xC1 }, - { 0x28, 0xE0 }, -OOVPA_END; +#define D3DDevice_GetModelView_5558 D3DDevice_GetModelView_4134 // ****************************************************************** // * D3DDevice_SetBackMaterial @@ -1113,16 +1104,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_InsertCallback // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_InsertCallback, 5558, 7) - - { 0x0C, 0x72 }, - { 0x1A, 0x10 }, - { 0x28, 0x85 }, - { 0x36, 0xC7 }, - { 0x44, 0x0C }, - { 0x52, 0x00 }, - { 0x60, 0x00 }, -OOVPA_END; +#define D3DDevice_InsertCallback_5558 D3DDevice_InsertCallback_5028 // ****************************************************************** // * D3DDevice_SetRenderState_LineWidth @@ -1157,19 +1139,7 @@ OOVPA_END; // ****************************************************************** // * D3DDevice_FlushVertexCache // ****************************************************************** -OOVPA_NO_XREF(D3DDevice_FlushVertexCache, 5558, 10) - - { 0x00, 0x56 }, - { 0x07, 0x8B }, - { 0x08, 0x06 }, - { 0x0D, 0x05 }, - { 0x13, 0xC7 }, - { 0x15, 0x10 }, - { 0x17, 0x04 }, - { 0x1C, 0x00 }, - { 0x21, 0xC0 }, - { 0x26, 0xC3 }, -OOVPA_END; +#define D3DDevice_FlushVertexCache_5558 D3DDevice_FlushVertexCache_4134 // ****************************************************************** // * D3DDevice_SetRenderState_LogicOp diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl index d5d3d2042..1a1532b15 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl @@ -557,33 +557,53 @@ OOVPA_XREF(CMcpxVoiceClient_SetVolume, 4134, 13, OOVPA_END; // ****************************************************************** -// * DirectSound_CDirectSoundStream_SetVolume +// * DirectSound_CDirectSoundVoice_SetVolume // ****************************************************************** -OOVPA_XREF(DirectSound_CDirectSoundStream_SetVolume, 4134, 11, +OOVPA_XREF(DirectSound_CDirectSoundVoice_SetVolume, 4134, 11, - XRefNoSaveIndex, + XREF_DirectSound_CDirectSoundVoice_SetVolume, XRefOne) - // DirectSound_CDirectSoundStream_SetVolume+0x15 : call [CMcpxVoiceClient::SetVolume] + // DirectSound_CDirectSoundVoice_SetVolume+0x15 : call [CMcpxVoiceClient::SetVolume] XREF_ENTRY( 0x15, XREF_DSSTREAMSETVOLUME ), // (Offset,Value)-Pair #1 - // DirectSound_CDirectSoundStream_SetVolume+0x00 : mov ecx, [esp+0x04] + // DirectSound_CDirectSoundVoice_SetVolume+0x00 : mov ecx, [esp+0x04] { 0x00, 0x8B }, // (Offset,Value)-Pair #2 { 0x01, 0x4C }, // (Offset,Value)-Pair #3 { 0x02, 0x24 }, // (Offset,Value)-Pair #4 { 0x03, 0x04 }, // (Offset,Value)-Pair #5 - // DirectSound_CDirectSoundStream_SetVolume+0x0B : sub edx, [eax+0x20] + // DirectSound_CDirectSoundVoice_SetVolume+0x0B : sub edx, [eax+0x20] { 0x0B, 0x2B }, // (Offset,Value)-Pair #6 { 0x0C, 0x50 }, // (Offset,Value)-Pair #7 { 0x0D, 0x20 }, // (Offset,Value)-Pair #8 - // DirectSound_CDirectSoundStream_SetVolume+0x11 : mov ecx, [ecx+0x0C] + // DirectSound_CDirectSoundVoice_SetVolume+0x11 : mov ecx, [ecx+0x0C] { 0x11, 0x8B }, // (Offset,Value)-Pair #9 { 0x12, 0x49 }, // (Offset,Value)-Pair #10 { 0x13, 0x0C }, // (Offset,Value)-Pair #11 OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetVolume +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetVolume, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, +OOVPA_END; + // ****************************************************************** // * IDirectSoundBuffer_LockA // ****************************************************************** @@ -1092,6 +1112,7 @@ OOVPA_NO_XREF(DirectSound_CDirectSound_CommitDeferredSettings, 4134, 11) { 0x78, 0xC9 }, // (Offset,Value)-Pair #11 OOVPA_END; +// ****************************************************************** // * DirectSound_CDirectSoundVoice::SetMaxDistance // ****************************************************************** OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMaxDistance, 4134, 9, @@ -1169,6 +1190,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetMaxDistance, 4134, 10, { 0x23, 0x00 } OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetMaxDistance +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetMaxDistance, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x3E, XREF_DSVOICESETMAXDISTANCE ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x3D, 0xE8 }, + { 0x48, 0x68 }, + { 0x53, 0x8B }, +OOVPA_END; + // ****************************************************************** // * DirectSound_CDirectSoundVoice::SetMinDistance // ****************************************************************** @@ -1247,6 +1288,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetMinDistance, 4134, 10, { 0x23, 0x00 } OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetMinDistance +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetMinDistance, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x3E, XREF_DSVOICESETMINDISTANCE ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x3D, 0xE8 }, + { 0x48, 0x68 }, + { 0x53, 0x8B }, +OOVPA_END; + // ****************************************************************** // * DirectSound_CDirectSoundVoice::SetRolloffFactor // ****************************************************************** @@ -1325,6 +1386,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetRolloffFactor, 4134, 10, { 0x23, 0x00 } OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetRolloffFactor +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetRolloffFactor, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x3E, XREF_DSVOICESETROLLOFFFACTOR ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x3D, 0xE8 }, + { 0x48, 0x68 }, + { 0x53, 0x8B }, +OOVPA_END; + // ****************************************************************** // * DirectSound_CDirectSoundVoice::SetDistanceFactor // ****************************************************************** @@ -1557,6 +1638,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetConeOrientation, 4134, 9, { 0x34, 0x00 } OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetConeOrientation +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetConeOrientation, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x4E, XREF_DSVOICESETCONEORIENTATION ), + + { 0x00, 0x55 }, + { 0x0F, 0x00 }, + { 0x17, 0x74 }, + { 0x24, 0xB8 }, + { 0x2A, 0x3B }, + { 0x39, 0xEC }, + { 0x44, 0x24 }, + { 0x4D, 0xE8 }, +OOVPA_END; + // ****************************************************************** // * DirectSound_CDirectSoundVoice::SetConeOutsideVolume // ****************************************************************** @@ -1635,6 +1736,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetConeOutsideVolume, 4134, 9, { 0x1F, 0x00 } OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetConeOutsideVolume +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetConeOutsideVolume, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x3A, XREF_DSVOICESETCONEOUTSIDEVOLUME ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x21, 0xB8 }, + { 0x24, 0x00 }, + { 0x39, 0xE8 }, + { 0x3E, 0x85 }, + { 0x4F, 0x8B }, + { 0x53, 0xC2 }, +OOVPA_END; + // ****************************************************************** // * DirectSound_CDirectSoundVoice::SetPosition // ****************************************************************** @@ -1684,6 +1805,25 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetPosition, 4134, 9, { 0x66, 0x00 } OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetPosition +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetPosition, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x4E, XREF_DSVOICESETPOSITION ), + + { 0x00, 0x55 }, + { 0x0F, 0x00 }, + { 0x17, 0x74 }, + { 0x24, 0xB8 }, + { 0x2A, 0x3B }, + { 0x39, 0xEC }, + { 0x58, 0x68 }, + { 0x63, 0x8B }, +OOVPA_END; // ****************************************************************** // * DirectSound_CDirectSoundVoice::SetVelocity @@ -1734,6 +1874,26 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetVelocity, 4134, 9, { 0x66, 0x00 } OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetVelocity +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetVelocity, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x4E, XREF_DSVOICESETVELOCITY ), + + { 0x00, 0x55 }, + { 0x0F, 0x00 }, + { 0x17, 0x74 }, + { 0x24, 0xB8 }, + { 0x2A, 0x3B }, + { 0x35, 0x83 }, + { 0x40, 0x45 }, + { 0x63, 0x8B }, +OOVPA_END; + // ****************************************************************** // * DirectSound_CDirectSoundVoice::SetDopplerFactor // ****************************************************************** @@ -1893,6 +2053,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetI3DL2Source, 4134, 10, { 0x1F, 0x00 } OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetI3DL2Source +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetI3DL2Source, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x3A, XREF_DSVOICESETI3DL2SOURCE ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0xE8 }, + { 0x44, 0x68 }, + { 0x4F, 0x8B }, +OOVPA_END; + // ****************************************************************** // * IDirectSoundBuffer_Stop // ****************************************************************** @@ -1975,6 +2155,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetAllParameters, 4134, 9, { 0x1E, 0x0C }, OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetAllParameters +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetAllParameters, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x3A, XREF_DirectSound_CDirectSoundVoice_SetAllParameters ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0xE8 }, + { 0x44, 0x68 }, + { 0x4F, 0x8B }, +OOVPA_END; + // ****************************************************************** // * IDirectSoundBuffer_GetStatus // ****************************************************************** @@ -2057,6 +2257,26 @@ OOVPA_XREF(IDirectSoundBuffer_SetMode, 4134, 9, { 0x1E, 0x0C }, OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetMode +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetMode, 4134, 9, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x3A, XREF_DSBUFFERSETMODEB ), + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0xE8 }, + { 0x44, 0x68 }, + { 0x4F, 0x8B }, +OOVPA_END; + // ****************************************************************** // * DirectSound::CMcpxVoiceClient::SetFilter // ****************************************************************** @@ -2288,6 +2508,161 @@ OOVPA_XREF(DirectSoundCreateStream, 4134, 12, { 0x55, 0x08 }, // (Offset,Value)-Pair #12 OOVPA_END; +// ****************************************************************** +// * DirectSound_CDirectSoundVoiceSettings::SetMixBinVolumes +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4134, 10, + + XREF_DSSETMIXBINVOLUMESC, + XRefZero) + + // DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x09 : jbe +0x16 + { 0x09, 0x76 }, // (Offset,Value)-Pair #1 + { 0x0A, 0x16 }, // (Offset,Value)-Pair #2 + + // DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x18 : mov [ecx+edi*4+0x30], eax + { 0x18, 0x89 }, // (Offset,Value)-Pair #3 + { 0x19, 0x44 }, // (Offset,Value)-Pair #4 + { 0x1A, 0xB9 }, // (Offset,Value)-Pair #5 + { 0x1B, 0x30 }, // (Offset,Value)-Pair #6 + + // DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x1E : jb +0xEC + { 0x1E, 0x72 }, // (Offset,Value)-Pair #7 + { 0x1F, 0xEC }, // (Offset,Value)-Pair #8 + + // DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x22 : retn 0x04 + { 0x22, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x23, 0x04 }, // (Offset,Value)-Pair #10 +OOVPA_END; + +// ****************************************************************** +// * DirectSound_CDirectSoundVoice::SetMixBinVolumes +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4134, 17, + + XREF_DSSETMIXBINVOLUMESB, + XRefOne) + + // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x0D : call [CDirectSoundVoiceSettings::SetMixBinVolumes] + XREF_ENTRY( 0x0D, XREF_DSSETMIXBINVOLUMESC ), // (Offset,Value)-Pair #1 + + // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x01 : mov esi, [esp+8] + { 0x01, 0x8B }, // (Offset,Value)-Pair #2 + { 0x02, 0x74 }, // (Offset,Value)-Pair #3 + { 0x03, 0x24 }, // (Offset,Value)-Pair #4 + { 0x04, 0x08 }, // (Offset,Value)-Pair #5 + + // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x05 : push [esp+0x0C] + { 0x05, 0xFF }, // (Offset,Value)-Pair #6 + { 0x06, 0x74 }, // (Offset,Value)-Pair #7 + { 0x07, 0x24 }, // (Offset,Value)-Pair #8 + { 0x08, 0x0C }, // (Offset,Value)-Pair #9 + + // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x09 : mov ecx, [esi+0x10] + { 0x09, 0x8B }, // (Offset,Value)-Pair #10 + { 0x0A, 0x4E }, // (Offset,Value)-Pair #11 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #12 + + // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x11 : mov ecx, [esi+0x0C] + { 0x11, 0x8B }, // (Offset,Value)-Pair #13 + { 0x12, 0x4E }, // (Offset,Value)-Pair #14 + { 0x13, 0x0C }, // (Offset,Value)-Pair #15 + + // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x1A : retn 0x08 + { 0x1A, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x1B, 0x08 }, // (Offset,Value)-Pair #17 +OOVPA_END; + +// ****************************************************************** +// * DirectSound_CDirectSoundBuffer::SetMixBinVolumes +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4134, 17, + + XREF_DSSETMIXBINVOLUMESA, + XRefOne) + + // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x32 : call [CDirectSoundVoice::SetMixBinVolumes] + XREF_ENTRY( 0x32, XREF_DSSETMIXBINVOLUMESB ), // (Offset,Value)-Pair #1 + + // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #2 + { 0x22, 0x05 }, // (Offset,Value)-Pair #3 + { 0x23, 0x40 }, // (Offset,Value)-Pair #4 + { 0x24, 0x00 }, // (Offset,Value)-Pair #5 + { 0x25, 0x80 }, // (Offset,Value)-Pair #6 + + // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x29 : push [esp+0x10]; push [esp+0x10] + { 0x29, 0xFF }, // (Offset,Value)-Pair #7 + { 0x2A, 0x74 }, // (Offset,Value)-Pair #8 + { 0x2B, 0x24 }, // (Offset,Value)-Pair #9 + { 0x2C, 0x10 }, // (Offset,Value)-Pair #10 + { 0x2D, 0xFF }, // (Offset,Value)-Pair #11 + { 0x2E, 0x74 }, // (Offset,Value)-Pair #12 + { 0x2F, 0x24 }, // (Offset,Value)-Pair #13 + { 0x30, 0x10 }, // (Offset,Value)-Pair #14 + + // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x49 : pop edi + { 0x49, 0x5F }, // (Offset,Value)-Pair #15 + + // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x4B : retn 0x08 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x4C, 0x08 }, // (Offset,Value)-Pair #17 +OOVPA_END; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMixBinVolumes +// ****************************************************************** +OOVPA_XREF(IDirectSoundBuffer_SetMixBinVolumes, 4134, 12, + + XRefNoSaveIndex, + XRefOne) + + // IDirectSoundBuffer_SetMixBinVolumes+0x15 : call [CDirectSoundBuffer::SetMixBinVolumes] + XREF_ENTRY( 0x15, XREF_DSSETMIXBINVOLUMESA ), // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer_SetMixBinVolumes+0x04 : push [esp+0x08] + { 0x04, 0xFF }, // (Offset,Value)-Pair #2 + { 0x05, 0x74 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer_SetMixBinVolumes+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer_SetMixBinVolumes+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #9 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #10 + + // IDirectSoundBuffer_SetMixBinVolumes+0x11 : and ecx, eax + { 0x11, 0x23 }, // (Offset,Value)-Pair #11 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #12 +OOVPA_END; + +// ****************************************************************** +// * DirectSound_CDirectSoundStream_SetMixBinVolumes +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBinVolumes, 4134, 12, + + XRefNoSaveIndex, + XRefOne) + + XREF_ENTRY( 0x36, XREF_DSSETMIXBINVOLUMESB ), + + { 0x0D, 0x0F }, + { 0x0E, 0xB6 }, + { 0x0F, 0xF0 }, + { 0x21, 0xB8 }, + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + { 0x4F, 0xC2 }, + { 0x50, 0x08 }, + { 0x51, 0x00 }, +OOVPA_END; + // ****************************************************************** // * Direct, 4134 // ****************************************************************** @@ -2319,6 +2694,9 @@ OOVPATable DSound_4134[] = { REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFrequency, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetFrequency, 4134, PATCH), REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVolume, 4134, PATCH), REGISTER_OOVPA(IDirectSoundBuffer_LockA, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_Lock, 3936, PATCH), @@ -2349,12 +2727,15 @@ OOVPATable DSound_4134[] = { REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMaxDistance, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMaxDistance, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetMaxDistance, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMaxDistance, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMinDistance, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMinDistance, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetMinDistance, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMinDistance, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffFactor, 4134, XREF), // s+ REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetRolloffFactor, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetRolloffFactor, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDistanceFactor, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDistanceFactor, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetDistanceFactor, 4134, PATCH), @@ -2364,40 +2745,49 @@ OOVPATable DSound_4134[] = { REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOrientation, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOrientation, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetConeOrientation, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetConeOrientation, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOutsideVolume, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOutsideVolume, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetConeOutsideVolume, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetConeOutsideVolume, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetPosition, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetPosition, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVelocity, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetVelocity, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVelocity, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDopplerFactor, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetDopplerFactor, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetI3DL2Source, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetI3DL2Source, 4134, PATCH), REGISTER_OOVPA(IDirectSoundBuffer_Stop, 4134, PATCH), REGISTER_OOVPA(IDirectSoundBuffer_Release, 3936, PATCH), // +s REGISTER_OOVPA(IDirectSoundBuffer_AddRef, 3936, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetAllParameters, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetAllParameters, 4134, XREF), REGISTER_OOVPA(IDirectSound_SetAllParameters, 4134, ALIAS, IDirectSoundBuffer_SetAllParameters), // Use that for now. Okay, it's your call pal... + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetAllParameters, 4134, PATCH), REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMode, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMode, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetMode, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMode, 4134, PATCH), REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetFilter, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFilter, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFilter, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetFilter, 4134, PATCH), REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4134, XREF), - REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 4134, XREF), - REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF), - REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetMixBinVolumes, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMixBinVolumes, 4134, PATCH), }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl index 5cce70738..92582e15e 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl @@ -215,13 +215,14 @@ OOVPA_END; // ****************************************************************** // * CMcpxBuffer_PlayA // ****************************************************************** -OOVPA_XREF(CMcpxBuffer_PlayA, 4361, 10, +OOVPA_XREF(CMcpxBuffer_PlayA, 4361, 11, XREF_CMcpxBuffer_PlayA, XRefZero) { 0x03, 0x8B }, { 0x0E, 0xF1 }, + { 0x1B, 0x08 }, { 0x1C, 0x6A }, { 0x1D, 0x03 }, { 0x1E, 0xFF }, @@ -297,16 +298,16 @@ OOVPA_XREF(CMcpxBuffer_Stop, 4361, 9, { 0x0E, 0x3C }, // (Offset,Value)-Pair #1 { 0x0F, 0x03 }, // (Offset,Value)-Pair #2 - // CMcpxBuffer_Stop+0x1C : cmp ax, 0x0203 - { 0x28, 0x66 }, // (Offset,Value)-Pair #3 - { 0x29, 0x3D }, // (Offset,Value)-Pair #4 - { 0x2A, 0x03 }, // (Offset,Value)-Pair #5 - { 0x2B, 0x02 }, // (Offset,Value)-Pair #6 + // CMcpxBuffer_Stop+0x17 : jz +0x2A + { 0x17, 0x74 }, // (Offset,Value)-Pair #3 + { 0x18, 0x2A }, // (Offset,Value)-Pair #4 - // CMcpxBuffer_Stop+0x70 : mov eax, [esi+0x90] - { 0x70, 0x8B }, // (Offset,Value)-Pair #7 - { 0x71, 0x86 }, // (Offset,Value)-Pair #8 - { 0x72, 0x90 }, // (Offset,Value)-Pair #9 + // CMcpxBuffer_Stop+0x19 : test [esp+0Ch+arg_0], 2 + { 0x19, 0xF6 }, // (Offset,Value)-Pair #5 + { 0x1A, 0x44 }, // (Offset,Value)-Pair #6 + { 0x1B, 0x24 }, // (Offset,Value)-Pair #7 + { 0x1C, 0x10 }, // (Offset,Value)-Pair #8 + { 0x1D, 0x02 }, // (Offset,Value)-Pair #9 OOVPA_END; // ****************************************************************** @@ -460,22 +461,23 @@ OOVPA_END; OOVPA_XREF(CMcpxBuffer_Stop2, 4361, 10, XREF_CMcpxBuffer_Stop2, - XRefZero) + XRefOne) - // CMcpxBuffer_Stop2+0x03 : mov eax, [ebp+arg_0] - { 0x03, 0x8B }, - { 0x04, 0x45 }, - { 0x05, 0x08 }, - // CMcpxBuffer_Stop2+0x14 : mov eax, [esi] - { 0x14, 0x8B }, - { 0x15, 0x06 }, - // CMcpxBuffer_Stop2+0x25 : push [ebp+arg_8] - { 0x25, 0xFF }, - { 0x26, 0x75 }, - { 0x27, 0x10 }, - // CMcpxBuffer_Stop2+0x36 : retn 0xC - { 0x36, 0xC2 }, - { 0x37, 0x0C }, + XREF_ENTRY( 0x2B, XREF_DSOUNDSTOP ), + + // CMcpxBuffer_Stop2+0x03 : mov eax, [ebp+arg_0] + { 0x03, 0x8B }, + { 0x04, 0x45 }, + { 0x05, 0x08 }, + // CMcpxBuffer_Stop2+0x14 : mov eax, [esi] + { 0x14, 0x8B }, + { 0x15, 0x06 }, + // CMcpxBuffer_Stop2+0x25 : mov edi, eax + { 0x2F, 0x8B }, + { 0x30, 0xF8 }, + // CMcpxBuffer_Stop2+0x36 : retn 0xC + { 0x36, 0xC2 }, + { 0x37, 0x0C }, OOVPA_END; // ****************************************************************** @@ -660,6 +662,7 @@ OOVPATable DSound_4361[] = { REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4361, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4361, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4361, XREF), + REGISTER_OOVPA(CMcpxBuffer_PlayA, 4361, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 4361, XREF), REGISTER_OOVPA(IDirectSoundBuffer_PlayEx, 4361, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 4361, XREF), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl index ed18dca8e..d2cb39c91 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl @@ -197,134 +197,22 @@ OOVPA_END; // ****************************************************************** // * DirectSound_CDirectSoundVoiceSettings::SetMixBinVolumes // ****************************************************************** -OOVPA_XREF(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4627, 10, - - XREF_DSSETMIXBINVOLUMESC, - XRefZero) - - // DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x09 : jbe +0x16 - { 0x09, 0x76 }, // (Offset,Value)-Pair #1 - { 0x0A, 0x16 }, // (Offset,Value)-Pair #2 - - // DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x18 : mov [ecx+edi*4+0x30], eax - { 0x18, 0x89 }, // (Offset,Value)-Pair #3 - { 0x19, 0x44 }, // (Offset,Value)-Pair #4 - { 0x1A, 0xB9 }, // (Offset,Value)-Pair #5 - { 0x1B, 0x30 }, // (Offset,Value)-Pair #6 - - // DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x1E : jb +0xEC - { 0x1E, 0x72 }, // (Offset,Value)-Pair #7 - { 0x1F, 0xEC }, // (Offset,Value)-Pair #8 - - // DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes+0x22 : retn 0x04 - { 0x22, 0xC2 }, // (Offset,Value)-Pair #9 - { 0x23, 0x04 }, // (Offset,Value)-Pair #10 -OOVPA_END; +#define DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes_4627 DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes_4134 // ****************************************************************** // * DirectSound_CDirectSoundVoice::SetMixBinVolumes // ****************************************************************** -OOVPA_XREF(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4627, 17, - - XREF_DSSETMIXBINVOLUMESB, - XRefOne) - - // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x0D : call [CDirectSoundVoiceSettings::SetMixBinVolumes] - XREF_ENTRY( 0x0D, XREF_DSSETMIXBINVOLUMESC ), // (Offset,Value)-Pair #1 - - // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x01 : mov esi, [esp+8] - { 0x01, 0x8B }, // (Offset,Value)-Pair #2 - { 0x02, 0x74 }, // (Offset,Value)-Pair #3 - { 0x03, 0x24 }, // (Offset,Value)-Pair #4 - { 0x04, 0x08 }, // (Offset,Value)-Pair #5 - - // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x05 : push [esp+0x0C] - { 0x05, 0xFF }, // (Offset,Value)-Pair #6 - { 0x06, 0x74 }, // (Offset,Value)-Pair #7 - { 0x07, 0x24 }, // (Offset,Value)-Pair #8 - { 0x08, 0x0C }, // (Offset,Value)-Pair #9 - - // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x09 : mov ecx, [esi+0x10] - { 0x09, 0x8B }, // (Offset,Value)-Pair #10 - { 0x0A, 0x4E }, // (Offset,Value)-Pair #11 - { 0x0B, 0x10 }, // (Offset,Value)-Pair #12 - - // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x11 : mov ecx, [esi+0x0C] - { 0x11, 0x8B }, // (Offset,Value)-Pair #13 - { 0x12, 0x4E }, // (Offset,Value)-Pair #14 - { 0x13, 0x0C }, // (Offset,Value)-Pair #15 - - // DirectSound_CDirectSoundVoice_SetMixBinVolumes+0x1A : retn 0x08 - { 0x1A, 0xC2 }, // (Offset,Value)-Pair #16 - { 0x1B, 0x08 }, // (Offset,Value)-Pair #17 -OOVPA_END; +#define DirectSound_CDirectSoundVoice_SetMixBinVolumes_4627 DirectSound_CDirectSoundVoice_SetMixBinVolumes_4134 // ****************************************************************** // * DirectSound_CDirectSoundBuffer::SetMixBinVolumes // ****************************************************************** -OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4627, 17, - - XREF_DSSETMIXBINVOLUMESA, - XRefOne) - - // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x32 : call [CDirectSoundVoice::SetMixBinVolumes] - XREF_ENTRY( 0x32, XREF_DSSETMIXBINVOLUMESB ), // (Offset,Value)-Pair #1 - - // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x21 : mov eax, 0x80004005 - { 0x21, 0xB8 }, // (Offset,Value)-Pair #2 - { 0x22, 0x05 }, // (Offset,Value)-Pair #3 - { 0x23, 0x40 }, // (Offset,Value)-Pair #4 - { 0x24, 0x00 }, // (Offset,Value)-Pair #5 - { 0x25, 0x80 }, // (Offset,Value)-Pair #6 - - // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x29 : push [esp+0x10]; push [esp+0x10] - { 0x29, 0xFF }, // (Offset,Value)-Pair #7 - { 0x2A, 0x74 }, // (Offset,Value)-Pair #8 - { 0x2B, 0x24 }, // (Offset,Value)-Pair #9 - { 0x2C, 0x10 }, // (Offset,Value)-Pair #10 - { 0x2D, 0xFF }, // (Offset,Value)-Pair #11 - { 0x2E, 0x74 }, // (Offset,Value)-Pair #12 - { 0x2F, 0x24 }, // (Offset,Value)-Pair #13 - { 0x30, 0x10 }, // (Offset,Value)-Pair #14 - - // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x49 : pop edi - { 0x49, 0x5F }, // (Offset,Value)-Pair #15 - - // DirectSound_CDirectSoundBuffer_SetMixBinVolumes+0x4B : retn 0x08 - { 0x4B, 0xC2 }, // (Offset,Value)-Pair #16 - { 0x4C, 0x08 }, // (Offset,Value)-Pair #17 -OOVPA_END; +#define DirectSound_CDirectSoundBuffer_SetMixBinVolumes_4627 DirectSound_CDirectSoundBuffer_SetMixBinVolumes_4134 // ****************************************************************** // * IDirectSoundBuffer_SetMixBinVolumes // ****************************************************************** -OOVPA_XREF(IDirectSoundBuffer_SetMixBinVolumes, 4627, 12, - - XRefNoSaveIndex, - XRefOne) - - // IDirectSoundBuffer_SetMixBinVolumes+0x15 : call [CDirectSoundBuffer::SetMixBinVolumes] - XREF_ENTRY( 0x15, XREF_DSSETMIXBINVOLUMESA ), // (Offset,Value)-Pair #1 - - // IDirectSoundBuffer_SetMixBinVolumes+0x04 : push [esp+0x08] - { 0x04, 0xFF }, // (Offset,Value)-Pair #2 - { 0x05, 0x74 }, // (Offset,Value)-Pair #3 - { 0x06, 0x24 }, // (Offset,Value)-Pair #4 - { 0x07, 0x08 }, // (Offset,Value)-Pair #5 - - // IDirectSoundBuffer_SetMixBinVolumes+0x0A : add eax, 0xFFFFFFE4 - { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 - { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 - { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 - - // IDirectSoundBuffer_SetMixBinVolumes+0x0F : sbb ecx, ecx - { 0x0F, 0x1B }, // (Offset,Value)-Pair #9 - { 0x10, 0xC9 }, // (Offset,Value)-Pair #10 - - // IDirectSoundBuffer_SetMixBinVolumes+0x11 : and ecx, eax - { 0x11, 0x23 }, // (Offset,Value)-Pair #11 - { 0x12, 0xC8 }, // (Offset,Value)-Pair #12 -OOVPA_END; +#define IDirectSoundBuffer_SetMixBinVolumes_4627 IDirectSoundBuffer_SetMixBinVolumes_4134 // ****************************************************************** // * DirectSound_CDirectSound::SetPositionA @@ -695,27 +583,9 @@ OOVPA_XREF(CMcpxStream_Pause, 4928, 11, OOVPA_END; // ****************************************************************** -// * DirectSound_CDirectSoundStream_SetMixBinVolumes (untested) +// * DirectSound_CDirectSoundStream_SetMixBinVolumes // ****************************************************************** -OOVPA_XREF(DirectSound_CDirectSoundStream_SetMixBinVolumes, 4627, 12, - - XRefNoSaveIndex, - XRefOne) - - XREF_ENTRY( 0x36, XREF_DSSETMIXBINVOLUMESB ), - - { 0x0D, 0x0F }, - { 0x0E, 0xB6 }, - { 0x0F, 0xF0 }, - { 0x21, 0x8B }, - { 0x22, 0x05 }, - { 0x23, 0x40 }, - { 0x24, 0x00 }, - { 0x25, 0x80 }, - { 0x4F, 0xC2 }, - { 0x50, 0x08 }, - { 0x51, 0x00 }, -OOVPA_END; +#define DirectSound_CDirectSoundStream_SetMixBinVolumes_4627 DirectSound_CDirectSoundStream_SetMixBinVolumes_4134 // ****************************************************************** // * DirectSound::CDirectSound::EnableHeadphones (incorrect?) @@ -1438,7 +1308,7 @@ OOVPA_END; // ****************************************************************** // * DirectSound::CDirectSoundBuffer::SetNotificationPositions // ****************************************************************** -OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, 7, +OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, 10, XREF_DirectSound_CDirectSoundBuffer_SetNotificationPositions, XRefZero) @@ -1446,9 +1316,12 @@ OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, 7, { 0x0C, 0x00 }, { 0x1B, 0xFF }, { 0x25, 0x80 }, - { 0x32, 0x74 }, - { 0x3F, 0xF8 }, - { 0x4C, 0x8B }, + { 0x2C, 0x0C }, + { 0x2D, 0x8B }, + { 0x2E, 0x4E }, + { 0x2F, 0x1C }, + { 0x30, 0x57 }, + { 0x47, 0xE8 }, { 0x5D, 0x8B }, OOVPA_END; @@ -1711,7 +1584,7 @@ OOVPATable DSound_4627[] = { REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOutsideVolume, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOutsideVolume, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetConeOutsideVolume, 4134, PATCH), - REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4627, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 4134, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetPosition, 3936, PATCH), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 4134, XREF), @@ -1762,13 +1635,14 @@ OOVPATable DSound_4627[] = { REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFilter, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetFilter, 4627, PATCH), REGISTER_OOVPA(IDirectSoundBuffer_SetFilter, 4134, PATCH), + REGISTER_OOVPA(CMcpxBuffer_PlayA, 4361, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 4361, XREF), REGISTER_OOVPA(IDirectSoundBuffer_PlayEx, 4361, PATCH), + REGISTER_OOVPA(CMcpxBuffer_Stop, 4361, XREF), REGISTER_OOVPA(CMcpxBuffer_Stop2, 4361, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 4361, XREF), REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 4361, PATCH), REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4134, XREF), - REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 4134, XREF), REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 4627, XREF), REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH), diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.h b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.h new file mode 100644 index 000000000..92b7e9499 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.h @@ -0,0 +1,42 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->DSound.1.0.5028.h +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** +#ifndef DSOUND_5028_H +#define DSOUND_5028_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_5028[]; +extern uint32 DSOUND_5028_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl new file mode 100644 index 000000000..1c43d36e6 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5028.inl @@ -0,0 +1,259 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->DSound.1.0.5028.cpp +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetFormat +// ****************************************************************** +OOVPA_XREF(DirectSound_CDirectSoundVoice_SetFormat, 5028, 8, + + XREF_DirectSound_CDirectSoundVoice_SetFormat, + XRefZero) + + { 0x06, 0x4E }, + { 0x0E, 0xE8 }, + { 0x18, 0x4E }, + { 0x25, 0xFF }, + { 0x2E, 0x0C }, + { 0x34, 0x85 }, + { 0x38, 0x8B }, + { 0x43, 0x00 }, +OOVPA_END; + +// ****************************************************************** +// * Direct, 5028 +// ****************************************************************** +OOVPATable DSound_5028[] = { + + REGISTER_OOVPA(DirectSoundCreate, 4134, PATCH), + REGISTER_OOVPA(DirectSoundDoWork, 4134, PATCH), + REGISTER_OOVPA(DirectSoundGetSampleTime, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_CreateSoundBuffer, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPlayRegion, 4361, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPlayRegion, 4361, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLoopRegion, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetLoopRegion, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetI3DL2Listener, 4134, XREF), + REGISTER_OOVPA(IDirectSound_SetI3DL2Listener, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetMixBinHeadroom, 4627, XREF), + REGISTER_OOVPA(IDirectSound_SetMixBinHeadroom, 4627, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_SetHeadroomA, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetHeadroom, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4627, XREF), + REGISTER_OOVPA(IDirectSound_SetVelocity, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParametersA, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParametersA, 4721, XREF), + REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParametersA, 4831, XREF), + REGISTER_OOVPA(DirectSound_CDirectSound_SetAllParameters, 4928, XREF), + REGISTER_OOVPA(IDirectSound_SetAllParameters, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBins, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBins, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBins, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetMixBins, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMixBinVolumes, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMixBinVolumes, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetMixBinVolumes, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMixBinVolumes, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetPositionA, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSound_SetPositionA, 4134, XREF), // TODO: Find a cure for laziness... + REGISTER_OOVPA(IDirectSound_SetPosition, 3936, PATCH), + REGISTER_OOVPA(DirectSoundCreateBuffer, 4627, PATCH), + REGISTER_OOVPA(IDirectSound_CreateSoundBuffer, 4134, PATCH), + REGISTER_OOVPA(IDirectSound_AddRef, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFrequency, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFrequency, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetFrequency, 4134, PATCH), + REGISTER_OOVPA(CMcpxVoiceClient_SetVolume, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVolume, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVolume, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetVolume, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVolume, 4134, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_LockA, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_Lock, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_CreateSoundStream, 4361, XREF), + REGISTER_OOVPA(IDirectSound_CreateSoundStream, 3936, PATCH), + REGISTER_OOVPA(DirectSoundCreateStream, 4361, PATCH), + REGISTER_OOVPA(CMcpxStream_Pause, 4361, XREF), + REGISTER_OOVPA(CMcpxStream_Pause, 4928, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_Pause, 4361, PATCH), + REGISTER_OOVPA(CMcpxBuffer_SetBufferData, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetBufferData, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetBufferData, 4134, PATCH), + REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4134, XREF), + REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4721, XREF), + // REGISTER_OOVPA(CMcpxBuffer_GetStatus, 4928, XREF) + REGISTER_OOVPA(CMcpxBuffer_GetStatusB, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetStatus, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4134, PATCH), + REGISTER_OOVPA(CMcpxBuffer_SetCurrentPosition, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetCurrentPosition, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetCurrentPosition, 4134, PATCH), + REGISTER_OOVPA(CMcpxBuffer_GetCurrentPosition, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_GetCurrentPosition, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_GetCurrentPosition, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_GetSpeakerConfig, 4627, PATCH), + REGISTER_OOVPA(CMcpxBuffer_Play, 4361, XREF), + REGISTER_OOVPA(CMcpxBuffer_Play, 4721, XREF), + REGISTER_OOVPA(CMcpxBuffer_Play, 4928, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Play, 4361, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_Play, 4361, PATCH), + REGISTER_OOVPA(IDirectSound_Release, 3936, PATCH), + REGISTER_OOVPA(IDirectSound_DownloadEffectsImage, 3936, PATCH), + REGISTER_OOVPA(IDirectSound_SetOrientation, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetDistanceFactorA, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSound_SetDistanceFactorA, 4627, XREF), + REGISTER_OOVPA(IDirectSound_SetDistanceFactor, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetRolloffFactor, 4134, XREF), + REGISTER_OOVPA(IDirectSound_SetRolloffFactor, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSound_SetDopplerFactor, 4627, XREF), + REGISTER_OOVPA(IDirectSound_SetDopplerFactor, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_CommitDeferredSettings, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMaxDistance, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMaxDistance, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetMaxDistance, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMaxDistance, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMinDistance, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMinDistance, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetMinDistance, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMinDistance, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffFactor, 4134, XREF), // s+ + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffFactor, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetRolloffFactor, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetRolloffFactor, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDistanceFactor, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDistanceFactor, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetDistanceFactor, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeAngles, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeAngles, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetConeAngles, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOrientation, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOrientation, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetConeOrientation, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetConeOrientation, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetConeOutsideVolume, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetConeOutsideVolume, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetConeOutsideVolume, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetConeOutsideVolume, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPosition, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPosition, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPosition, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetPosition, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetVelocity, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetVelocity, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetVelocity, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetVelocity, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetDopplerFactor, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetDopplerFactor, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetDopplerFactor, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetI3DL2Source, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetI3DL2Source, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetI3DL2Source, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetI3DL2Source, 4134, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_Stop, 4134, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_Release, 3936, PATCH), // +s + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFormat, 5028, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFormat, 4627, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetFormat, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_EnableHeadphones, 4627, XREF), + REGISTER_OOVPA(IDirectSound_EnableHeadphones, 4627, PATCH), + // REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 4627, XREF), + // REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 4627, ALIAS, DirectSound_CDirectSoundStream_SetHeadroom), + REGISTER_OOVPA(IDirectSoundBuffer_AddRef, 3936, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_GetOutputLevels, 4627, XREF), + REGISTER_OOVPA(IDirectSound_GetOutputLevels, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetAllParameters, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetAllParameters, 4134, XREF), + REGISTER_OOVPA(IDirectSound_SetAllParameters, 4134, ALIAS, IDirectSoundBuffer_SetAllParameters), // Use that for now. Okay, it's your call pal... + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetAllParameters, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CMcpxBuffer_Pause, 4928, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_Pause, 4928, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_Pause, 4928, PATCH), + REGISTER_OOVPA(DirectSound_CMcpxBuffer_GetStatus, 4721, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_GetStatus, 4721, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMixBins, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetEG, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetEG, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetEG, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetEG, 4627, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetEG, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_FlushEx, 4627, XREF), + REGISTER_OOVPA(IDirectSoundStream_FlushEx, 4627, PATCH), + REGISTER_OOVPA(XAudioDownloadEffectsImage, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetMode, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetMode, 4134, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetMode, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetMode, 4134, PATCH), + REGISTER_OOVPA(DirectSound_CMcpxVoiceClient_SetFilter, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetFilter, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetFilter, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetFilter, 4627, PATCH), + REGISTER_OOVPA(IDirectSoundBuffer_SetFilter, 4134, PATCH), + REGISTER_OOVPA(CMcpxBuffer_PlayA, 4361, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_PlayEx, 4361, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_PlayEx, 4361, PATCH), + REGISTER_OOVPA(CMcpxBuffer_Stop, 4361, XREF), + REGISTER_OOVPA(CMcpxBuffer_Stop2, 4361, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_StopEx, 4361, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_StopEx, 4361, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSound_SetVelocity, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetPitch, 4134, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetPitch, 4627, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetPitch, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetHeadroom, 4627, XREF), + REGISTER_OOVPA(IDirectSoundStream_SetHeadroom, 4627, ALIAS, DirectSound_CDirectSoundStream_SetHeadroom), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetOutputBuffer, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetOutputBuffer, 4627, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetOutputBuffer, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetOutputBuffer, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetRolloffCurve, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetRolloffCurve, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetRolloffCurve, 4627, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetRolloffCurve, 4627, PATCH), + REGISTER_OOVPA(XFileCreateMediaObjectEx, 4627, PATCH), + REGISTER_OOVPA(XWaveFileCreateMediaObject, 4627, PATCH), + // REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetNotificationPositions, 4627, XREF), + // REGISTER_OOVPA(IDirectSoundBuffer_SetNotificationPositions, 4627, XREF), + REGISTER_OOVPA(CMcpxVoiceClient_SetLFO, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundVoice_SetLFO, 4627, XREF), + REGISTER_OOVPA(DirectSound_CDirectSoundBuffer_SetLFO, 4627, XREF), + REGISTER_OOVPA(IDirectSoundBuffer_SetLFO, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetLFO, 4627, PATCH), + REGISTER_OOVPA(DirectSound_CDirectSoundStream_SetPitch, 4627, PATCH), +}; + +// ****************************************************************** +// * DSound_5028_SIZE +// ****************************************************************** +uint32 DSound_5028_SIZE = sizeof(DSound_5028); diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl index 7d7c7a8e1..fc275e32b 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl @@ -220,20 +220,7 @@ OOVPA_END; // ****************************************************************** // * DirectSound::CDirectSoundVoice::SetFormat // ****************************************************************** -OOVPA_XREF(DirectSound_CDirectSoundVoice_SetFormat, 5233, 8, - - XREF_DirectSound_CDirectSoundVoice_SetFormat, - XRefZero) - - { 0x06, 0x4E }, - { 0x0E, 0xE8 }, - { 0x18, 0x4E }, - { 0x25, 0xFF }, - { 0x2E, 0x0C }, - { 0x34, 0x85 }, - { 0x38, 0x8B }, - { 0x43, 0x00 }, -OOVPA_END; +#define DirectSound_CDirectSoundVoice_SetFormat_5233 DirectSound_CDirectSoundVoice_SetFormat_5028 // ****************************************************************** // DirectSound_CDirectSoundVoice::SetMode diff --git a/src/CxbxKrnl/HLEDataBase/XG.1.0.5028.h b/src/CxbxKrnl/HLEDataBase/XG.1.0.5028.h new file mode 100644 index 000000000..8f3347aff --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/XG.1.0.5028.h @@ -0,0 +1,42 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->XG.1.0.5028.h +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** +#ifndef XG_5028_H +#define XG_5028_H + +#include "OOVPA.h" + +extern OOVPATable XG_5028[]; +extern uint32 XG_5028_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase/XG.1.0.5028.inl b/src/CxbxKrnl/HLEDataBase/XG.1.0.5028.inl new file mode 100644 index 000000000..9c6a11a60 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/XG.1.0.5028.inl @@ -0,0 +1,50 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->XG.1.0.5028.cpp +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** + +// ****************************************************************** +// * XG_5028 +// ****************************************************************** +OOVPATable XG_5028[] = { + + REGISTER_OOVPA(XGIsSwizzledFormat, 4361, DISABLED), + // REGISTER_OOVPA(XGSwizzleRect, 4361, PATCH), // Leave unpatched + // REGISTER_OOVPA(XGUnswizzleRect, 4627, PATCH), // Leave unpatched + REGISTER_OOVPA(XGSwizzleBox, 4627, PATCH), + REGISTER_OOVPA(XGWriteSurfaceOrTextureToXPR, 4627, PATCH), +}; + +// ****************************************************************** +// * XG_5028_SIZE +// ****************************************************************** +uint32 XG_5028_SIZE = sizeof(XG_5028); diff --git a/src/CxbxKrnl/HLEDataBase/XOnline.1.0.5028.h b/src/CxbxKrnl/HLEDataBase/XOnline.1.0.5028.h new file mode 100644 index 000000000..76976640e --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/XOnline.1.0.5028.h @@ -0,0 +1,42 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->XOnline.1.0.5028.h +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** +#ifndef XONLINE_5028_H +#define XONLINE_5028_H + +#include "OOVPA.h" + +extern OOVPATable XOnline_5028[]; +extern uint32 XOnline_5028_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase/XOnline.1.0.5028.inl b/src/CxbxKrnl/HLEDataBase/XOnline.1.0.5028.inl new file mode 100644 index 000000000..d5f16f21d --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/XOnline.1.0.5028.inl @@ -0,0 +1,54 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->XOnline.1.0.5028.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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** + +// ****************************************************************** +// * XOnline_5028 +// ****************************************************************** +OOVPATable XOnline_5028[] ={ + + REGISTER_OOVPA(XNetStartup, 4361, PATCH), + REGISTER_OOVPA(WSAStartup, 4361, PATCH), + REGISTER_OOVPA(XnInit, 4627, XREF), + REGISTER_OOVPA(socket, 4361, EMUTHIS), + REGISTER_OOVPA(bind, 4361, EMUTHIS), + REGISTER_OOVPA(listen, 4361, EMUTHIS), + REGISTER_OOVPA(ioctlsocket, 4361, EMUTHIS), + REGISTER_OOVPA(XNetGetEthernetLinkStatus, 4627, PATCH), + REGISTER_OOVPA(XoUpdateLaunchNewImageInternal, 4627, XREF), +}; + +// ****************************************************************** +// * XOnline_5028_SIZE +// ****************************************************************** +uint32 XOnline_5028_SIZE = sizeof(XOnline_5028); diff --git a/src/CxbxKrnl/HLEDataBase/Xapi.1.0.5028.h b/src/CxbxKrnl/HLEDataBase/Xapi.1.0.5028.h new file mode 100644 index 000000000..13a687bd0 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/Xapi.1.0.5028.h @@ -0,0 +1,42 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->Xapi.1.0.5028.h +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** +#ifndef XAPI_5028_H +#define XAPI_5028_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_5028[]; +extern uint32 XAPI_5028_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase/Xapi.1.0.5028.inl b/src/CxbxKrnl/HLEDataBase/Xapi.1.0.5028.inl new file mode 100644 index 000000000..f1e2c34c5 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase/Xapi.1.0.5028.inl @@ -0,0 +1,101 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->Xapi.1.0.5028.cpp +// * +// * 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) 2002-2003 Aaron Robinson +// * +// * All rights reserved +// * +// ****************************************************************** + +// ****************************************************************** +// * XAPI_5028 +// ****************************************************************** +OOVPATable XAPI_5028[] = { + + REGISTER_OOVPA(XFormatUtilityDrive, 4627, PATCH), + REGISTER_OOVPA(SetThreadPriorityBoost, 4627, PATCH), + REGISTER_OOVPA(SetThreadPriority, 3911, PATCH), + REGISTER_OOVPA(GetThreadPriority, 4627, PATCH), + REGISTER_OOVPA(XRegisterThreadNotifyRoutine, 3911, PATCH), + REGISTER_OOVPA(XMountUtilityDrive, 4432, PATCH), + REGISTER_OOVPA(XInitDevices, 3911, PATCH), + REGISTER_OOVPA(XGetDevices, 4134, PATCH), + REGISTER_OOVPA(XInputOpen, 4361, PATCH), + REGISTER_OOVPA(XInputPoll, 4134, PATCH), + REGISTER_OOVPA(XID_fCloseDevice, 4627, XREF), + REGISTER_OOVPA(XID_fCloseDevice, 4928, XREF), + REGISTER_OOVPA(XInputClose, 4928, PATCH), + REGISTER_OOVPA(XInputGetCapabilities, 4361, PATCH), + REGISTER_OOVPA(XInputGetState, 4361, PATCH), + REGISTER_OOVPA(XInputGetState, 4928, PATCH), + REGISTER_OOVPA(XInputGetCapabilities, 4928, PATCH), + REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities2), + REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities3), + REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities4), + REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities5), + REGISTER_OOVPA(XInputSetState, 4361, PATCH), + REGISTER_OOVPA(XInputSetState, 4928, PATCH), + // REGISTER_OOVPA(XapiThreadStartup, 4361, PATCH), // obsolete? + REGISTER_OOVPA(XInputGetCapabilities, 4831, PATCH), + REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities2), + REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities3), + REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities4), + REGISTER_OOVPA(XInputGetCapabilities, 4831, ALIAS, XInputGetCapabilities5), + REGISTER_OOVPA(XInputGetCapabilities, 4928, ALIAS, XInputGetCapabilities6), + // REGISTER_OOVPA(XCalculateSignatureBeginEx, 4627, PATCH), // +s, not necessary? + // REGISTER_OOVPA(XCalculateSignatureBegin, 4627, PATCH), + // REGISTER_OOVPA(XCalculateSignatureUpdate, 4627, PATCH), + // REGISTER_OOVPA(XCalculateSignatureEnd, 4627, PATCH), // s+ + REGISTER_OOVPA(CreateFiber, 3911, DISABLED), + REGISTER_OOVPA(DeleteFiber, 3911, DISABLED), + REGISTER_OOVPA(SwitchToFiber, 3911, DISABLED), + REGISTER_OOVPA(ConvertThreadToFiber, 3911, DISABLED), + REGISTER_OOVPA(GetTimeZoneInformation, 3911, DISABLED), + REGISTER_OOVPA(GetExitCodeThread, 3911, PATCH), + REGISTER_OOVPA(GetOverlappedResult, 4627, PATCH), + REGISTER_OOVPA(XLaunchNewImage, 4627, ALIAS, XLaunchNewImageA), + REGISTER_OOVPA(XLaunchNewImage, 4928, ALIAS, XLaunchNewImageA), + REGISTER_OOVPA(XGetLaunchInfo, 4627, DISABLED), + REGISTER_OOVPA(XSetProcessQuantumLength, 4627, PATCH), + REGISTER_OOVPA(SignalObjectAndWait, 3911, PATCH), + REGISTER_OOVPA(timeSetEvent, 4627, PATCH), + REGISTER_OOVPA(timeKillEvent, 4627, PATCH), + REGISTER_OOVPA(RaiseException, 4627, PATCH), + REGISTER_OOVPA(QueueUserAPC, 3911, PATCH), + REGISTER_OOVPA(XMountAlternateTitle, 4627, ALIAS, XMountAlternateTitleA), + REGISTER_OOVPA(XMountAlternateTitle, 4928, ALIAS, XMountAlternateTitleA), + REGISTER_OOVPA(XUnmountAlternateTitle, 4627, ALIAS, XUnmountAlternateTitleA), + REGISTER_OOVPA(XInputGetDeviceDescription, 4831, PATCH), + REGISTER_OOVPA(OutputDebugStringA, 3911, PATCH), + // REGISTER_OOVPA(MoveFileA, 4627, PATCH), +}; + +// ****************************************************************** +// * XAPI_5028_SIZE +// ****************************************************************** +uint32 XAPI_5028_SIZE = sizeof(XAPI_5028); diff --git a/src/CxbxKrnl/HLEIntercept.cpp b/src/CxbxKrnl/HLEIntercept.cpp index 7d7d2483d..b9ac98445 100644 --- a/src/CxbxKrnl/HLEIntercept.cpp +++ b/src/CxbxKrnl/HLEIntercept.cpp @@ -202,7 +202,6 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader) if(BuildVersion == 4928) { BuildVersion = 4627; } if(BuildVersion == 5455) { BuildVersion = 5558; } if(BuildVersion == 5659) { BuildVersion = 5558; } - if(BuildVersion == 5028) { BuildVersion = 4627; } if(BuildVersion == 5120) { BuildVersion = 5233; } if(BuildVersion == 5933) { BuildVersion = 5849; } // These XDK versions are pretty much the same /* @@ -314,16 +313,16 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader) { if(strcmp(Lib_XAPILIB, szLibraryName) == 0 && (BuildVersion == 3911 || BuildVersion == 4034 || BuildVersion == 4134 || BuildVersion == 4361 - || BuildVersion == 4432 || BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5344 - || BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849)) + || BuildVersion == 4432 || BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 + || BuildVersion == 5344 || BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849)) { xbaddr lower = pXbeHeader->dwBaseAddr; xbaddr upper = pXbeHeader->dwBaseAddr + pXbeHeader->dwSizeofImage; } else if(strcmp(Lib_D3D8, szLibraryName) == 0 /*&& strcmp(Lib_D3D8LTCG, szOrigLibraryName)*/ && (BuildVersion == 3925 || BuildVersion == 4134 || BuildVersion == 4361 || BuildVersion == 4432 - || BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5344 || BuildVersion == 5558 - || BuildVersion == 5788 || BuildVersion == 5849)) + || BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 || BuildVersion == 5344 + || BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849)) { // Save D3D8 build version g_BuildVersion = BuildVersion; @@ -369,8 +368,8 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader) XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x2B) - 0x204 + 83*4); patchOffset = 143*4 - 83*4; } - else if(BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5344 || BuildVersion == 5558 - || BuildVersion == 5788 || BuildVersion == 5849) + else if(BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 || BuildVersion == 5344 + || BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849) { // WARNING: Not thoroughly tested (just seemed very correct right away) XTL::EmuD3DDeferredRenderState = (DWORD*)(*(DWORD*)(pFunc + 0x2B) - 0x24C + 92*4); @@ -409,8 +408,8 @@ void EmuHLEIntercept(Xbe::Header *pXbeHeader) pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4134, lower, upper); else if(BuildVersion == 4361 || BuildVersion == 4432) pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4361, lower, upper); - else if(BuildVersion == 4627 || BuildVersion == 5233 || BuildVersion == 5344 || BuildVersion == 5558 - || BuildVersion == 5788 || BuildVersion == 5849) + else if(BuildVersion == 4627 || BuildVersion == 5028 || BuildVersion == 5233 || BuildVersion == 5344 + || BuildVersion == 5558 || BuildVersion == 5788 || BuildVersion == 5849) pFunc = EmuLocateFunction((OOVPA*)&D3DDevice_SetTextureState_TexCoordIndex_4627, lower, upper); if(pFunc != (xbaddr)nullptr)